public async Task <JsonResult> CreateEditWorker(WorkerVM worker) { try { if (worker.Id > 0) { var curWorker = _unitOfWork.Workers.FindById(worker.Id); curWorker.Name = worker.Name; curWorker.Type = (int)worker.WorkerType; } else { var newWroker = new Worker() { Name = worker.Name, Type = (int)worker.WorkerType }; _unitOfWork.Workers.Create(newWroker); } await _unitOfWork.SaveAsync(); return(Json(new { success = true, message = "Данные сотрудника изменены." }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { Response.StatusCode = (int)HttpStatusCode.BadRequest; ModelState.AddModelError("", $"Произошла ошибка, обратитесь за помощью к администратору. {ex.Message}"); return(Json(new { success = false, errors = ModelState.Errors() }, JsonRequestBehavior.AllowGet)); } }
public ActionResult Create(Worker worker) { if (!ModelState.IsValid) { var viewModel = new WorkerVM { worker = worker, List = context.States.ToList(), List1 = context.Countries.ToList() }; return(View("Create", viewModel)); } if (worker.ID == 0) { context.Workers.Add(worker); } else { State m1 = new State(); Country m2 = new Country(); var workerInDb = context.Workers.Single(c => c.ID == worker.ID); workerInDb.Name = worker.Name; workerInDb.Birthdate = worker.Birthdate; worker.State = m1.state; workerInDb.State = worker.State; worker.Country = m2.country; workerInDb.Country = worker.Country; } context.SaveChanges(); return(RedirectToAction("Index")); }
public IActionResult Create() { WorkerVM workerModel = new WorkerVM { Shops = _context.Shops.ToList(), Departments = _context.Departments.ToList(), Employees = _context.Employees.Where(x => x.Worker == null).ToList(), }; return(View(workerModel)); }
public ActionResult Create() { var states = context.States.ToList(); var countries = context.Countries.ToList(); var viewModel = new WorkerVM { worker = new Worker(), List = states, List1 = countries }; return(View("Create", viewModel)); }
public ActionResult CreateEditWorker(int id = 0) { WorkerVM model = new WorkerVM(); var worker = _unitOfWork.Workers.FindById(id); if (id > 0) { model.Id = worker.Id; model.Name = worker.Name; model.Type = worker.Type; model.WorkerType = (WorkerTypes)worker.Type; } return(PartialView("_CreateEditWorker", model)); }
public async Task <IActionResult> Create(WorkerVM workerVM) { if (!ModelState.IsValid) { workerVM.Shops = _context.Shops.ToList(); workerVM.Employees = _context.Employees.Where(x => x.Worker == null).ToList(); workerVM.Departments = _context.Departments.ToList(); return(View(workerVM)); } Worker worker = new Worker(); if (workerVM.SelectedShop == 0) { worker.ShopId = null; } worker.ShopId = workerVM.SelectedShop; workerVM.Password = $"{Path.GetRandomFileName().ToUpper()}_{Path.GetRandomFileName().ToLower()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}"; worker.Email = workerVM.Email; worker.EmployeeId = workerVM.SelectedEmployee; worker.PositionId = workerVM.SelectedPosition; worker.UserName = workerVM.Email; worker.Account = _context.Employees.Where(x => x.ID == workerVM.SelectedEmployee).Select(x => x.Name).FirstOrDefault() + " " + _context.Employees.Where(x => x.ID == workerVM.SelectedEmployee).Select(x => x.Surname).FirstOrDefault(); worker.PassText = workerVM.Password; worker.BeginDate = workerVM.StartDate; worker.Worked = true; IdentityResult result = await _userManager.CreateAsync(worker, workerVM.Password); if (!result.Succeeded) { foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } workerVM.Employees = _context.Employees.ToList(); workerVM.Departments = _context.Departments.ToList(); return(View(workerVM)); } await _userManager.AddToRoleAsync(worker, Roles.Worker.ToString()); return(RedirectToAction(nameof(List))); }
public async Task <IActionResult> Edit(string id) { if (id == null) { return(NotFound()); } var worker = await _userManager.FindByIdAsync(id); WorkerVM workersView = new WorkerVM { Departments = _context.Departments.ToList(), Employees = _context.Employees.ToList(), Name = _context.Employees.Where(x => x.ID == worker.EmployeeId).Select(x => x.Name).FirstOrDefault(), Surname = _context.Employees.Where(x => x.ID == worker.EmployeeId).Select(x => x.Surname).FirstOrDefault(), Position = _context.Positions.Where(x => x.ID == worker.PositionId).Select(x => x.Name).FirstOrDefault(), Email = worker.Email, Department = _context.Positions.Include(m => m.Department).Where(x => x.ID == worker.PositionId).Select(m => m.Department.Name).FirstOrDefault() }; return(View(workersView)); }
public async Task <IActionResult> Edit(string id, WorkerVM workersView) { var workers = await _userManager.FindByIdAsync(id); string companyWorkPlaceId = $"{Path.GetRandomFileName()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}"; string companyWorkPlaceBonusId = $"{Path.GetRandomFileName().ToLower()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}"; string companyWorkPlaceAbsensId = $"{Path.GetRandomFileName().ToUpper()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}"; workersView.Departments = _context.Departments.ToList(); workersView.Employees = _context.Employees.ToList(); workersView.Name = _context.Employees.Where(x => x.ID == workers.EmployeeId).Select(x => x.Name).FirstOrDefault(); workersView.Surname = _context.Employees.Where(x => x.ID == workers.EmployeeId).Select(x => x.Surname).FirstOrDefault(); workersView.Position = _context.Positions.Where(x => x.ID == workers.PositionId).Select(x => x.Name).FirstOrDefault(); workersView.Email = workers.Email; workersView.Department = _context.Positions.Include(m => m.Department).Where(x => x.ID == workers.PositionId).Select(m => m.Department.Name).FirstOrDefault(); workersView.Password = workers.PassText; if (!ModelState.IsValid) { return(View(workersView)); } if (workersView.SelectedPosition == workers.PositionId) { return(View(workersView)); } CompanyWorkPlace companyWorkPlace = new CompanyWorkPlace { ID = companyWorkPlaceId, EmployeeId = workers.EmployeeId, ChangedDate = DateTime.Now, PositionId = workersView.SelectedPosition }; _context.CompanyWorkPlaces.Add(companyWorkPlace); CompanyWorkPlaceBonus companyWorkPlaceBonus = new CompanyWorkPlaceBonus { ID = companyWorkPlaceBonusId, CompanyWorkPlaceId = companyWorkPlaceId, BonusSalary = _context.WorkerBonus.Where(x => x.WorkerId == workers.Id).Select(x => x.BonusSalary).Sum() }; _context.CompanyWorkPlaceBonus.Add(companyWorkPlaceBonus); CompanyWorkPlaceAbsence cwpa = new CompanyWorkPlaceAbsence { ID = companyWorkPlaceAbsensId, CompanyWorkPlaceId = companyWorkPlaceId, ExcusableAbsens = _context.WorkerAbsens.Where(x => x.WorkerId == workers.Id && x.AbsenceId == 1).Count(), UnExcusableAbsens = _context.WorkerAbsens.Where(x => x.WorkerId == workers.Id && x.AbsenceId == 2).Count() }; _context.CompanyWorkPlaceAbsences.Add(cwpa); Worker worker = new Worker { BeginDate = DateTime.Now, Account = workers.Account, Email = workers.Email, EmployeeId = workers.EmployeeId, PassText = workers.PassText, UserName = workers.UserName, PositionId = workersView.SelectedPosition }; _context.WorkerBonus.RemoveRange(_context.WorkerBonus.Where(x => x.WorkerId == workers.Id).ToList()); _context.WorkerAbsens.RemoveRange(_context.WorkerAbsens.Where(x => x.WorkerId == workers.Id).ToList()); await _userManager.DeleteAsync(workers); IdentityResult result = await _userManager.CreateAsync(worker, workers.PassText); if (!result.Succeeded) { foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } } await _userManager.AddToRoleAsync(worker, Roles.Worker.ToString()); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(List))); }