Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Data.SqlClient;
- using System.Linq;
- using System.Threading.Tasks;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Identity;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Mvc.Rendering;
- using Microsoft.EntityFrameworkCore;
- using mis.applicationcore.Interfaces;
- using mis.applicationcore.Interfaces.Repositories;
- using mis.common.Models;
- namespace mis.web.Controllers
- {
- public class EmployeeDetailsController : AuthenticatedController<EmployeeDetails>
- {
- private readonly IAsyncRepository _asyncRepository;
- private readonly IAsyncRepository<EmployeeDetails> _employeeDetailsRepository;
- private readonly IAsyncRepository<EmployeeGroupDetails> _employeeGroupDetailsRepository;
- private readonly IAsyncRepository<EmployeeLevelDetails> _employeeLevelDetailsRepository;
- private readonly IAsyncRepository<EmployeeSectorDetails> _employeeSectorDetailsRepository;
- private readonly IAsyncRepository<EmployeeDesignationDetails> _employeeDesignationDetailsRepository;
- private readonly IAsyncRepository<OfficeDetails> _officeDetailsRepository;
- private readonly IAsyncRepository<BloodGroup> _bloodGroupRepository;
- private readonly UserManager<IdentityUser> _userManager;
- private readonly IEmployeeRepository _employeeRepository;
- public EmployeeDetailsController(
- IAsyncRepository asyncRepository,
- UserManager<IdentityUser> userManager,
- IAsyncRepository<EmployeeDetails> employeeDetailsRepository,
- IAsyncRepository<EmployeeGroupDetails> employeeGroupDetailsRepository,
- IAsyncRepository<EmployeeLevelDetails> employeeLevelDetailsRepository,
- IAsyncRepository<EmployeeSectorDetails> employeeSectorDetailsRepository,
- IAsyncRepository<EmployeeDesignationDetails> employeeDesignationDetailsRepository,
- IAsyncRepository<OfficeDetails> officeDetailsRepository,
- IAsyncRepository<BloodGroup> bloodGroupRepository,
- IEmployeeRepository employeeRepository,
- IAppLogger<EmployeeDetails> appLogger) : base(appLogger,asyncRepository)
- {
- _asyncRepository = asyncRepository;
- _employeeDetailsRepository = employeeDetailsRepository;
- _employeeDesignationDetailsRepository = employeeDesignationDetailsRepository;
- _employeeGroupDetailsRepository = employeeGroupDetailsRepository;
- _employeeLevelDetailsRepository = employeeLevelDetailsRepository;
- _employeeSectorDetailsRepository = employeeSectorDetailsRepository;
- _bloodGroupRepository = bloodGroupRepository;
- _employeeRepository = employeeRepository;
- _officeDetailsRepository = officeDetailsRepository;
- _userManager = userManager;
- }
- // GET: EmployeeDetails
- [Authorize(Roles = AuthConst.VIEW_EMPLOYEE)]
- public async Task<IActionResult> Index()
- {
- ViewBag.OfficeId = new SelectList(await _officeDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.BloodGroupId = new SelectList(await _bloodGroupRepository.ListAllAsync(), "Id", "Type");
- ViewBag.EmployeeDesignationId = new SelectList(await _employeeDesignationDetailsRepository.ListAllAsync(), "Id", "DesignationName");
- ViewBag.EmployeeGroupId = new SelectList(await _employeeGroupDetailsRepository.ListAllAsync(), "Id", "GroupName");
- ViewBag.EmployeeLevelId = new SelectList(await _employeeLevelDetailsRepository.ListAllAsync(), "Id", "LevelName");
- ViewBag.EmployeeSectorId = new SelectList(await _employeeSectorDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.Pradesh = new SelectList(await _asyncRepository.ToListAsync<StateInfo>(), "Id", "StateNameUniCode");
- ViewBag.DistrictId = new SelectList(await _asyncRepository.ToListAsync<DistrictInfo>(), "Id", "DistrictNameUniCode");
- ViewBag.MunicipalId = new SelectList(await _asyncRepository.ToListAsync<MunicipalInfo>(), "Id", "MunicipalNameUnicode");
- return View(await _employeeDetailsRepository.ListAllAsync());
- }
- [HttpGet]
- [Route("/EmployeeDetails/EmployeeGetList")]
- public JsonResult EmployeeGetList(EmployeeDetailsViewModel employeeDetailsViewModel)
- {
- var newindexlist = _asyncRepository.FromSqlViewModel<EmployeeDetailsViewModel>($"usp_EmployeeList").ToList();
- return Json(newindexlist);
- }
- public JsonResult GetPradeshDistrict(int record)
- {
- var DistrictList = _asyncRepository.Where<DistrictInfo>(p => p.StateId == record).ToList();
- return Json(DistrictList);
- }
- public IActionResult Search(EmployeeDetails employee)
- {
- var employeename = _asyncRepository.FromSqlModel<EmployeeDetails>($"usp_EmployeeSearch @FullName", new SqlParameter("@StoreId", employee.FullName)).SingleOrDefault();
- //ViewBag.employee = employeename;
- return View(nameof(Index), employee);
- }
- // GET: EmployeeDetails/Create
- public async Task<IActionResult> Create()
- {
- ViewBag.OfficeId = new SelectList(await _officeDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.BloodGroupId = new SelectList(await _bloodGroupRepository.ListAllAsync(), "Id", "Type");
- ViewBag.EmployeeDesignationId = new SelectList(await _employeeDesignationDetailsRepository.ListAllAsync(), "Id", "DesignationName");
- ViewBag.EmployeeGroupId = new SelectList(await _employeeGroupDetailsRepository.ListAllAsync(), "Id", "GroupName");
- ViewBag.EmployeeLevelId = new SelectList(await _employeeLevelDetailsRepository.ListAllAsync(), "Id", "LevelName");
- ViewBag.EmployeeSectorId = new SelectList(await _employeeSectorDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.Pradesh = new SelectList(await _asyncRepository.ToListAsync<StateInfo>(), "Id", "StateNameUniCode");
- ViewBag.DistrictId = new SelectList(await _asyncRepository.ToListAsync<DistrictInfo>(), "Id", "DistrictNameUniCode");
- ViewBag.MunicipalId = new SelectList(await _asyncRepository.ToListAsync<MunicipalInfo>(), "Id", "MunicipalNameUnicode");
- ViewData["Type"] = "Create";
- return View("AddEdit");
- }
- // POST: EmployeeDetails/Create
- // To protect from overposting attacks, please enable the specific properties you want to bind to, for
- // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
- [HttpPost]
- [Authorize(Roles = AuthConst.ADD_EDIT_EMPLOYEE)]
- [ValidateAntiForgeryToken]
- public async Task<IActionResult> Create([Bind("FullName,CitizenshipNo,EmployeeDesignationId,EmployeeSectorId,EmployeeGroupId," +
- "EmployeeLevelId,OfficeId,EmployeeCode,AppointedDate,EnrolledDate,EmploymentDuration,DateOfBirth,TemporaryAddress," +
- "PermanentAddress,PhoneNumber1,PhoneNumber2,Pradesh,DistrictId,MunicipalId,WardNumber,StreetName,BloodGroupId,EmailAddress,Id,IsActive,OldOfficeId")] EmployeeDetails employeeDetails)
- {
- if (ModelState.IsValid)
- {
- try
- {
- employeeDetails.CreatedBy = _userManager.GetUserId(HttpContext.User) ?? "ADMIN";
- employeeDetails.AccountStatus = true;
- await _employeeDetailsRepository.AddAsync(employeeDetails);
- }
- catch(Exception ex)
- {
- if (ex.InnerException.ToString().Contains("EmployeeDetails_FullName_DateOfBirth_CitizenshipNo"))
- {
- ViewBag.OfficeId = new SelectList(await _officeDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.BloodGroupId = new SelectList(await _bloodGroupRepository.ListAllAsync(), "Id", "Type");
- ViewBag.EmployeeDesignationId = new SelectList(await _employeeDesignationDetailsRepository.ListAllAsync(), "Id", "DesignationName");
- ViewBag.EmployeeGroupId = new SelectList(await _employeeGroupDetailsRepository.ListAllAsync(), "Id", "GroupName");
- ViewBag.EmployeeLevelId = new SelectList(await _employeeLevelDetailsRepository.ListAllAsync(), "Id", "LevelName");
- ViewBag.EmployeeSectorId = new SelectList(await _employeeSectorDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.Pradesh = new SelectList(await _asyncRepository.ToListAsync<StateInfo>(), "Id", "StateNameUniCode");
- ViewBag.DistrictId = new SelectList(await _asyncRepository.ToListAsync<DistrictInfo>(), "Id", "DistrictNameUniCode");
- ViewBag.MunicipalId = new SelectList(await _asyncRepository.ToListAsync<MunicipalInfo>(), "Id", "MunicipalNameUnicode");
- ViewBag.Message = "कर्मचारीको विवरण पहिले राखिसक्नु भयो";
- return View("AddEdit", employeeDetails);
- }
- else if (ex.InnerException.ToString().Contains("EmployeeDetails_CitizenshipNo"))
- {
- ViewBag.OfficeId = new SelectList(await _officeDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.BloodGroupId = new SelectList(await _bloodGroupRepository.ListAllAsync(), "Id", "Type");
- ViewBag.EmployeeDesignationId = new SelectList(await _employeeDesignationDetailsRepository.ListAllAsync(), "Id", "DesignationName");
- ViewBag.EmployeeGroupId = new SelectList(await _employeeGroupDetailsRepository.ListAllAsync(), "Id", "GroupName");
- ViewBag.EmployeeLevelId = new SelectList(await _employeeLevelDetailsRepository.ListAllAsync(), "Id", "LevelName");
- ViewBag.EmployeeSectorId = new SelectList(await _employeeSectorDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.Pradesh = new SelectList(await _asyncRepository.ToListAsync<StateInfo>(), "Id", "StateNameUniCode");
- ViewBag.DistrictId = new SelectList(await _asyncRepository.ToListAsync<DistrictInfo>(), "Id", "DistrictNameUniCode");
- ViewBag.MunicipalId = new SelectList(await _asyncRepository.ToListAsync<MunicipalInfo>(), "Id", "MunicipalNameUnicode");
- ViewBag.Message = "यो नागरिकता नं पहिले राखिसक्नु भयो";
- return View("AddEdit", employeeDetails);
- }
- else
- {
- throw ex;
- }
- }
- return RedirectToAction(nameof(Index));
- }
- return View("AddEdit", employeeDetails);
- }
- // GET: EmployeeDetails/Edit/5
- [Authorize(Roles = AuthConst.VIEW_EMPLOYEE)]
- public async Task<IActionResult> Edit(int id)
- {
- if (id == 0)
- {
- return NotFound();
- }
- var employeeDetails = await _employeeDetailsRepository.GetByIdAsync(id);
- if (employeeDetails == null)
- {
- return NotFound();
- }
- ViewBag.OfficeId = new SelectList(await _officeDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.BloodGroupId = new SelectList(await _bloodGroupRepository.ListAllAsync(), "Id", "Type");
- ViewBag.EmployeeDesignationId = new SelectList(await _employeeDesignationDetailsRepository.ListAllAsync(), "Id", "DesignationName");
- ViewBag.EmployeeGroupId = new SelectList(await _employeeGroupDetailsRepository.ListAllAsync(), "Id", "GroupName");
- ViewBag.EmployeeLevelId = new SelectList(await _employeeLevelDetailsRepository.ListAllAsync(), "Id", "LevelName");
- ViewBag.EmployeeSectorId = new SelectList(await _employeeSectorDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.Pradesh = new SelectList(await _asyncRepository.ToListAsync<StateInfo>(), "Id", "StateNameUniCode");
- ViewBag.DistrictId = new SelectList(await _asyncRepository.ToListAsync<DistrictInfo>(), "Id", "DistrictNameUniCode");
- ViewBag.MunicipalId = new SelectList(await _asyncRepository.ToListAsync<MunicipalInfo>(), "Id", "MunicipalNameUnicode");
- var roleGroups = _asyncRepository.Where<RoleGroup>(r => r.IsActive);
- ViewBag.RoleGroups = new SelectList(roleGroups,"Id","Name");
- ViewBag.RoleGroup = roleGroups.Where(r => r.Id == employeeDetails.RoleGroupId).FirstOrDefault()?.Name;
- ViewData["Type"] = "Edit";
- return View("AddEdit", employeeDetails);
- }
- // POST: EmployeeDetails/Edit/5
- // To protect from overposting attacks, please enable the specific properties you want to bind to, for
- // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
- [HttpPost]
- [Authorize(Roles = AuthConst.ADD_EDIT_EMPLOYEE)]
- [ValidateAntiForgeryToken]
- public async Task<IActionResult> Edit(int id, [Bind("FullName,CitizenshipNo,EmployeeDesignationId,EmployeeSectorId,EmployeeGroupId," +
- "EmployeeLevelId,OfficeId,EmployeeCode,AppointedDate,EnrolledDate,EmploymentDuration,DateOfBirth,TemporaryAddress," +
- "PermanentAddress,PhoneNumber1,PhoneNumber2,BloodGroupId,EmailAddress,Pradesh,DistrictId,RoleGroupId,Username,MunicipalId,WardNumber,StreetName,CreatedBy,CreatedDate,Id,IsActive,OldOfficeId")] EmployeeDetails employeeDetails)
- {
- if (id != employeeDetails.Id)
- {
- return NotFound();
- }
- if (ModelState.IsValid)
- {
- try
- {
- employeeDetails.ModifiedBy = _userManager.GetUserId(HttpContext.User) ?? "ADMIN";
- employeeDetails.ModifiedDate = DateTime.Now;
- await _employeeDetailsRepository.UpdateAsync(employeeDetails);
- }
- catch (Exception ex)
- {
- if (ex.InnerException.ToString().Contains("EmployeeDetails_FullName_DateOfBirth_CitizenshipNo"))
- {
- ViewBag.OfficeId = new SelectList(await _officeDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.BloodGroupId = new SelectList(await _bloodGroupRepository.ListAllAsync(), "Id", "Type");
- ViewBag.EmployeeDesignationId = new SelectList(await _employeeDesignationDetailsRepository.ListAllAsync(), "Id", "DesignationName");
- ViewBag.EmployeeGroupId = new SelectList(await _employeeGroupDetailsRepository.ListAllAsync(), "Id", "GroupName");
- ViewBag.EmployeeLevelId = new SelectList(await _employeeLevelDetailsRepository.ListAllAsync(), "Id", "LevelName");
- ViewBag.EmployeeSectorId = new SelectList(await _employeeSectorDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.Pradesh = new SelectList(await _asyncRepository.ToListAsync<StateInfo>(), "Id", "StateNameUniCode");
- ViewBag.DistrictId = new SelectList(await _asyncRepository.ToListAsync<DistrictInfo>(), "Id", "DistrictNameUniCode");
- ViewBag.MunicipalId = new SelectList(await _asyncRepository.ToListAsync<MunicipalInfo>(), "Id", "MunicipalNameUnicode");
- ViewBag.Message = "कर्मचारीको विवरण पहिले राखिसक्नु भयो";
- return View("AddEdit", employeeDetails);
- }
- else if (ex.InnerException.ToString().Contains("EmployeeDetails_CitizenshipNo"))
- {
- ViewBag.OfficeId = new SelectList(await _officeDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.BloodGroupId = new SelectList(await _bloodGroupRepository.ListAllAsync(), "Id", "Type");
- ViewBag.EmployeeDesignationId = new SelectList(await _employeeDesignationDetailsRepository.ListAllAsync(), "Id", "DesignationName");
- ViewBag.EmployeeGroupId = new SelectList(await _employeeGroupDetailsRepository.ListAllAsync(), "Id", "GroupName");
- ViewBag.EmployeeLevelId = new SelectList(await _employeeLevelDetailsRepository.ListAllAsync(), "Id", "LevelName");
- ViewBag.EmployeeSectorId = new SelectList(await _employeeSectorDetailsRepository.ListAllAsync(), "Id", "Name");
- ViewBag.Pradesh = new SelectList(await _asyncRepository.ToListAsync<StateInfo>(), "Id", "StateNameUniCode");
- ViewBag.DistrictId = new SelectList(await _asyncRepository.ToListAsync<DistrictInfo>(), "Id", "DistrictNameUniCode");
- ViewBag.MunicipalId = new SelectList(await _asyncRepository.ToListAsync<MunicipalInfo>(), "Id", "MunicipalNameUnicode");
- ViewBag.Message = "यो नागरिकता नं पहिले राखिसक्नु भयो";
- return View("AddEdit", employeeDetails);
- }
- else
- {
- throw ex;
- }
- }
- return RedirectToAction(nameof(Index));
- }
- return View("AddEdit", employeeDetails);
- }
- public async Task<List<EmployeeSearchResult>> SearchEmployee(int id)
- {
- return await _employeeRepository.SearchEmployee(id);
- }
- [HttpPost]
- [Route("/EmployeeDetails/CheckAccountStatus")]
- public async Task<IActionResult> CheckAccountStatus(int id, bool accountstatus)
- {
- try
- {
- var employee = await _asyncRepository.FindAsync<EmployeeDetails>(id);
- if (accountstatus)
- {
- employee.AccountStatus = false;
- }
- else
- {
- employee.AccountStatus = true;
- }
- await _asyncRepository.UpdateAsync(employee);
- return RedirectToAction("Index", "EmployeeDetails");
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- [HttpPost]
- [Route("/EmployeeDetails/CheckLockedStatus")]
- public async Task<IActionResult> CheckLockedStatus(string userName)
- {
- try
- {
- var user = _userManager.FindByNameAsync(userName).Result;
- user.LockoutEnd = null;
- await _userManager.UpdateAsync(user);
- return RedirectToAction("Index", "EmployeeDetails");
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- private bool EmployeeDetailsExists(int id)
- {
- var record = _employeeDetailsRepository.GetByIdAsync(id);
- return record == null ? false : true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement