public IActionResult Update(ContractorModelForm model) { var Srf = Service.GetById(model.SrfId); if (ModelState.IsValid && Srf != null) { var Candidate = _contractor.GetById(Srf.CandidateId); var UserProfile = _userProfile.GetById(Candidate.AccountId.Value); if (model.IdNumber.Length != 16) { TempData["Error"] = "Invalid ID Number / (KTP) " + model.IdNumber + " must be 16 digits and numeric"; return(RedirectToAction("Edit", new { id = Srf.Id })); } //else //{ // if(UserProfile!=null && User.IsInRole("Administrator")) // { // var CheckNumber = _userProfile.GetAll().Where(x => !string.IsNullOrWhiteSpace(x.IdNumber) && x.IdNumber == model.IdNumber && x.Id != Candidate.AccountId.Value).FirstOrDefault(); // if (CheckNumber != null) // { // TempData["Error"] = "Invalid ID Number / (KTP) " + model.IdNumber + " has exists with other resource !!"; // return RedirectToAction("Edit", new { id = Srf.Id }); // } // } //} UserProfile.AhId = model.AhID; UserProfile.Name = model.ContrctorName; UserProfile.MobilePhoneNumber = model.MobilePhoneNumber; UserProfile.HomePhoneNumber = model.HomePhoneNumber; UserProfile.IdNumber = model.IdNumber; UserProfile.Email = model.Email; UserProfile.Birthplace = model.PlaceOfBirth; UserProfile.Birthdate = model.DateOfBirth; UserProfile.Address = model.Address; UserProfile.UserName = model.Username; UserProfile.Description = model.Notes; _userProfile.Update(UserProfile); Candidate.Name = model.ContrctorName; Candidate.HomeBaseId = model.HomeBaseId; Candidate.HomePhoneNumber = model.HomePhoneNumber; Candidate.MobilePhoneNumber = model.MobilePhoneNumber; Candidate.IdNumber = model.IdNumber; Candidate.Email = model.Email; Candidate.Nationality = model.Nationality; Candidate.PlaceOfBirth = model.PlaceOfBirth; Candidate.DateOfBirth = model.DateOfBirth; Candidate.Address = model.Address; Candidate.Gender = model.Gender; Candidate.Martial = model.Martial; Candidate.Email = model.Email; Candidate.Description = model.Notes; _contractor.Update(Candidate); // Update Vacancy Status var Vacancy = _vacancy.GetById(Candidate.VacancyId); Vacancy.ServicePackId = model.ServicePackId; Vacancy.ApproverOneId = model.LineManagerId; if (model.PricelistType == PackageTypes.A) { Vacancy.PackageType = _packageType.GetAll().Where(x => x.Name.Trim().ToLower().Equals("A".Trim().ToLower())).FirstOrDefault(); } else if (model.PricelistType == PackageTypes.B) { Vacancy.PackageType = _packageType.GetAll().Where(x => x.Name.Trim().ToLower().Equals("B".Trim().ToLower())).FirstOrDefault(); } else { Vacancy.PackageType = _packageType.GetAll().Where(x => x.Name.Trim().ToLower().Equals("FSO".Trim().ToLower())).FirstOrDefault(); } _vacancy.Update(Vacancy); // Update SRF Srf.Number = model.SrfNumber; Srf.ServicePackId = model.ServicePackId; Srf.SrfBegin = model.SrfBegin; Srf.SrfEnd = model.SrfEnd; Srf.LineManagerId = model.LineManagerId; Srf.ProjectManagerId = model.ProjectManagerId; var NewAnnual = (Srf.SrfEnd.Value.Month - Srf.SrfBegin.Value.Month) <= 0 ? 0 : (Srf.SrfEnd.Value.Month - Srf.SrfBegin.Value.Month); if (Srf.Type == SrfType.Extension) { Srf.AnnualLeave = Srf.AnnualLeave + NewAnnual; } else { Srf.AnnualLeave = NewAnnual; } Service.Update(Srf); // Update ASP NET USERS var CurrentUser = _userManager.FindByIdAsync(model.ApplicationUserId).Result; CurrentUser.Email = model.Email; CurrentUser.UserName = model.Username; var Result = _userManager.UpdateAsync(CurrentUser).Result; if (!Result.Succeeded) { TempData["Error"] = JsonConvert.SerializeObject(Result.Errors); return(RedirectToAction("Edit", new { id = Srf.Id })); } if (!string.IsNullOrWhiteSpace(model.Password)) { var Code = _userManager.GeneratePasswordResetTokenAsync(CurrentUser).Result; var resetPassword = _userManager.ResetPasswordAsync(CurrentUser, Code, model.Password).Result; if (!resetPassword.Succeeded) { TempData["Error"] = JsonConvert.SerializeObject(resetPassword.Errors); return(RedirectToAction("Edit", new { id = Srf.Id })); } } TempData["Success"] = "OK"; return(RedirectToAction("Details", new { id = Srf.Id })); } return(RedirectToAction("Edit", new { id = Srf.Id })); }
public override IActionResult Edit(Guid id) { try { var item = Service.GetById(id); var Contractor = _contractor.GetById(item.CandidateId); var Vacancy = _vacancy.GetById(Contractor.VacancyId); var PackageType = _packageType.GetById(Vacancy.PackageTypeId); var Ssow = _servicePack.GetById(item.ServicePackId); var UserProfile = _userProfile.GetById(Contractor.AccountId); if (item == null) { return(NotFound()); } else { var GenderOption = from Gender g in Enum.GetValues(typeof(Gender)) select new { Id = (int)g, Name = g.ToString() }; var MartialOpt = from Martial g in Enum.GetValues(typeof(Martial)) select new { Id = (int)g, Name = g.ToString() }; var PricelistType = from PackageTypes g in Enum.GetValues(typeof(PackageTypes)) select new { Id = (int)g, Name = g.ToString() }; var User = _userManager.FindByIdAsync(UserProfile.ApplicationUserId).Result; // Dropdown List ViewBag.ServiceWorkPackage = _servicePackCategory.GetAll().ToList(); ViewBag.HomeBase = _city.GetAll().ToList(); ViewBag.LineManager = _userHelper.GetByRoleName("Line Manager").ToList(); ViewBag.ProjectManager = _userHelper.GetByRoleName("Project Manager").ToList(); ViewBag.Gender = GenderOption.ToList(); ViewBag.Martial = MartialOpt.ToList(); ViewBag.PricelistType = PricelistType.ToList(); ViewBag.ContractorId = item.CandidateId; ViewBag.UserProfile = UserProfile; // Set Data var PackageTy = (PackageTypes)Enum.Parse(typeof(PackageTypes), PackageType.Name); ContractorModelForm model = new ContractorModelForm(); model.AhID = UserProfile.AhId; model.SrfNumber = item.Number; model.ContrctorName = Contractor.Name; model.PricelistType = PackageTy; model.ServicePackId = item.ServicePackId; model.ServicePackCategoryId = Ssow.ServicePackCategoryId; model.SrfBegin = item.SrfBegin.Value; model.SrfEnd = item.SrfEnd.Value; if (Contractor.HomeBaseId.HasValue) { model.HomeBaseId = Contractor.HomeBaseId.Value; } model.LineManagerId = item.ApproveOneId.Value; model.ProjectManagerId = item.ProjectManagerId; model.HomePhoneNumber = Contractor.HomePhoneNumber; model.MobilePhoneNumber = Contractor.MobilePhoneNumber; model.IdNumber = Contractor.IdNumber; model.Email = User.Email; model.Nationality = Contractor.Nationality; model.DateOfBirth = Contractor.DateOfBirth; model.PlaceOfBirth = Contractor.PlaceOfBirth; model.Address = Contractor.Address; model.Gender = Contractor.Gender; model.Martial = Contractor.Martial.Value; model.ApplicationUserId = User.Id; model.Username = User.UserName; model.Notes = UserProfile.Description; model.SrfId = id; return(View(model)); } } catch (Exception e) { return(Content(e.ToString())); } }
public override IActionResult Details(Guid id) { var item = Service.GetById(id); if (item == null) { return(NotFound()); } else { var Contractor = _contractor.GetById(item.CandidateId); var Vacancy = _vacancy.GetById(Contractor.VacancyId); var PackageType = _packageType.GetById(Vacancy.PackageTypeId); var Ssow = _servicePack.GetById(item.ServicePackId); var UserProfile = _userProfile.GetById(Contractor.AccountId); var PackageTy = (PackageTypes)Enum.Parse(typeof(PackageTypes), PackageType.Name); var User = _userManager.FindByIdAsync(UserProfile.ApplicationUserId).Result; ViewBag.ContractorId = item.CandidateId; ViewBag.ServiceCategory = _servicePackCategory.GetById(Ssow.ServicePackCategoryId).Name; ViewBag.ServicePack = Ssow.Name; ViewBag.ProjectManager = _userProfile.GetById(item.ProjectManagerId).Name; ViewBag.LineManager = _userProfile.GetById(item.ApproveOneId).Name; // Set Data ContractorModelForm model = new ContractorModelForm(); model.AhID = UserProfile.AhId; model.SrfNumber = "e-EID/KI-" + (item.CreatedAt.Value).ToString("yy") + ":SRF: " + item.Number + " UEN"; model.ContrctorName = Contractor.Name; model.PricelistType = PackageTy; model.ServicePackId = item.ServicePackId; model.ServicePackCategoryId = Ssow.ServicePackCategoryId; model.SrfBegin = item.SrfBegin.Value; model.SrfEnd = item.SrfEnd.Value; if (Contractor.HomeBaseId.HasValue) { model.HomeBaseId = Contractor.HomeBaseId.Value; ViewBag.HomeBase = _city.GetById(Contractor.HomeBaseId).Name; } else { ViewBag.HomeBase = null; } model.LineManagerId = item.ApproveOneId.Value; model.ProjectManagerId = item.ProjectManagerId; model.HomePhoneNumber = Contractor.HomePhoneNumber; model.MobilePhoneNumber = Contractor.MobilePhoneNumber; model.IdNumber = Contractor.IdNumber; model.Email = User.Email; model.Nationality = Contractor.Nationality; model.DateOfBirth = Contractor.DateOfBirth; model.PlaceOfBirth = Contractor.PlaceOfBirth; model.Address = Contractor.Address; model.Gender = Contractor.Gender; model.Martial = Contractor.Martial.Value; model.ApplicationUserId = User.Id; model.Username = User.UserName; model.Notes = UserProfile.Description; model.SrfId = id; return(View(model)); } }