public async Task <ActionResult> Edit(int?id) { if (id == null) { return(HttpNotFound()); } var response = await WepApiMethod.SendApiAsync <DetailsIndividualModel>(HttpVerbs.Get, $"Administration/Individual?id={id}"); if (!response.isSuccess) { return(HttpNotFound()); } var model = new EditIndividualModel { Id = response.Data.Id, IsMalaysian = response.Data.IsMalaysian, CitizenshipId = response.Data.Citizenship != null ? response.Data.Citizenship.Id : (int?)null, Name = response.Data.Name, ICNo = response.Data.ICNo, PassportNo = response.Data.PassportNo, Email = response.Data.Email, MobileNo = response.Data.MobileNo, CountryCode = response.Data.CountryCode, Address1 = response.Data.Address1, Address2 = response.Data.Address2, PostCodeMalaysian = response.Data.PostCodeMalaysian, PostCodeNonMalaysian = response.Data.PostCodeNonMalaysian, City = response.Data.City, StateId = response.Data.State.Id, State = response.Data.State.Name, CountryId = response.Data.Country.Id, RoleIds = response.Data.Roles.Select(s => s.Id).ToArray(), Status = response.Data.Status }; var countries = await GetCountries(); model.MalaysiaCountryId = countries.Where(c => c.Name == "Malaysia").Select(s => s.Id).FirstOrDefault(); model.States = new SelectList(await GetStates(), "Id", "Name", 0); model.Countries = new SelectList(countries.Where(c => c.Name != "Malaysia"), "Id", "Name", 0); model.Citizenships = new SelectList(countries.Where(c => c.Name != "Malaysia"), "Id", "Name", 0); model.Roles = new SelectList(await GetRoles(), "Id", "Name", 0); return(View(model)); }
public async Task <ActionResult> Edit(EditIndividualModel model) { if (model.IsMalaysian) { ModelState.Remove("PassportNo"); ModelState.Remove("CitizenshipId"); ModelState.Remove("PostCodeNonMalaysian"); ModelState.Remove("State"); ModelState.Remove("CountryId"); model.CountryId = model.MalaysiaCountryId; } else { ModelState.Remove("ICNo"); ModelState.Remove("PostCodeMalaysian"); ModelState.Remove("StateId"); model.StateId = null; } var emailResponse = await WepApiMethod.SendApiAsync <bool>(HttpVerbs.Get, $"Administration/User/IsEmailExist?id={model.Id}&email={model.Email}"); if (emailResponse.isSuccess) { ModelState.AddModelError("Email", Language.Administrator.Individual.ValidIsExistEmail); } var icno = model.ICNo; if (!model.IsMalaysian) { icno = model.PassportNo; } var icnoResponse = await WepApiMethod.SendApiAsync <bool>(HttpVerbs.Get, $"Administration/User/IsICNoExist?id={model.Id}&icno={icno}"); if (icnoResponse.isSuccess) { if (model.IsMalaysian) { ModelState.AddModelError("ICNo", Language.Administrator.Individual.ValidIsExistICNo); } else { ModelState.AddModelError("PassportNo", Language.Administrator.Individual.ValidIsExistPassportNo); } } if (ModelState.IsValid) { var response = await WepApiMethod.SendApiAsync <bool>(HttpVerbs.Put, $"Administration/Individual?id={model.Id}", model); if (response.isSuccess) { await LogActivity(Modules.Setting, "Update Individual User", model); TempData["SuccessMessage"] = Language.Administrator.Individual.AlertEditSuccess; return(RedirectToAction("Details", "Individual", new { area = "Administrator", @id = model.Id })); } else { TempData["ErrorMessage"] = Language.Administrator.Individual.AlertEditFail; return(RedirectToAction("Details", "Individual", new { area = "Administrator", @id = model.Id })); } } var countries = await GetCountries(); model.MalaysiaCountryId = countries.Where(c => c.Name == "Malaysia").Select(s => s.Id).FirstOrDefault(); model.States = new SelectList(await GetStates(), "Id", "Name", 0); model.Countries = new SelectList(countries.Where(c => c.Name != "Malaysia"), "Id", "Name", 0); model.Citizenships = new SelectList(countries.Where(c => c.Name != "Malaysia"), "Id", "Name", 0); model.Roles = new SelectList(await GetRoles(), "Id", "Name", 0); return(View(model)); }
public IHttpActionResult Put(int id, [FromBody] EditIndividualModel model) { var user = db.User.Where(u => u.Id == id && u.Display && u.UserType == UserType.Individual).FirstOrDefault(); var individual = db.IndividualProfile.Where(i => i.UserId == id).FirstOrDefault(); var useraccount = db.UserAccount.Where(u => u.UserId == id).FirstOrDefault(); if (user == null || individual == null || useraccount == null) { return(NotFound()); } if (model.IsMalaysian) { ModelState.Remove("model.PassportNo"); ModelState.Remove("model.CitizenshipId"); ModelState.Remove("model.PostCodeNonMalaysian"); ModelState.Remove("model.State"); } else { ModelState.Remove("model.ICNo"); ModelState.Remove("model.PostCodeMalaysian"); ModelState.Remove("model.StateId"); } if (ModelState.IsValid) { var countryCode = db.Country.Where(c => c.Id == model.CountryId && c.Display).FirstOrDefault(); if (countryCode == null) { return(InternalServerError()); } user.Name = model.Name; user.ICNo = model.IsMalaysian ? model.ICNo : model.PassportNo; user.Email = model.Email; user.MobileNo = model.MobileNo; user.CountryCode = countryCode.CountryCode1; useraccount.LoginId = model.Email; individual.IsMalaysian = model.IsMalaysian; individual.CitizenshipId = model.CitizenshipId; individual.Address1 = model.Address1; individual.Address2 = model.Address2; individual.PostCode = model.IsMalaysian ? model.PostCodeMalaysian : model.PostCodeNonMalaysian; individual.City = model.City; individual.StateId = model.IsMalaysian ? model.StateId : null; individual.StateName = model.IsMalaysian ? "" : model.State; individual.CountryId = model.CountryId; db.User.Attach(user); db.Entry(user).Property(x => x.Name).IsModified = true; db.Entry(user).Property(x => x.ICNo).IsModified = true; db.Entry(user).Property(x => x.Email).IsModified = true; db.Entry(user).Property(x => x.MobileNo).IsModified = true; db.Entry(user).Property(x => x.CountryCode).IsModified = true; db.UserAccount.Attach(useraccount); db.Entry(useraccount).Property(x => x.LoginId).IsModified = true; db.Entry(individual).State = EntityState.Modified; db.UserRole.RemoveRange(db.UserRole.Where(u => u.UserId == id));//remove all foreach (var roleid in model.RoleIds) { var userrole = new UserRole { RoleId = roleid, UserId = id, }; db.UserRole.Add(userrole); } db.Configuration.ValidateOnSaveEnabled = true; db.SaveChanges(); return(Ok(true)); } return(BadRequest(ModelState)); }