public IActionResult UpdateCitizen(RegisterCitizen registerCitizen) { var logged_user_id = signInManager.UserManager.GetUserId(User); var logged_user_citizen = userManager.Users .Where(usr => usr.Id == logged_user_id) .FirstOrDefault(); var user = userManager.Users.Where(u => u.Id == logged_user_id).FirstOrDefault(); user.Name = registerCitizen.Name; user.BirthDate = registerCitizen.BirthDate; user.Address = registerCitizen.Address; user.City = registerCitizen.City; user.State = registerCitizen.State; user.Height = registerCitizen.Height; user.Weight = registerCitizen.Weight; user.Gender = registerCitizen.Gender; user.CheckupData = registerCitizen.CheckupData; user.Bloodgroup = registerCitizen.Bloodgroup; user.Mobile = registerCitizen.Mobile; user.hid = userManager.Users.Where(us => us.HospitalId == registerCitizen.Hospital_id_select).FirstOrDefault().Id; CitizenHospital ch = new CitizenHospital() { CitizenId = logged_user_citizen.CitizenId, Hospital = userManager.Users.Where(us => us.HospitalId == registerCitizen.Hospital_id_select).FirstOrDefault(), }; var ch_changes = context.CitizenHospitals.Attach(ch); ch_changes.State = Microsoft.EntityFrameworkCore.EntityState.Modified; context.SaveChanges(); _citizenRepository.Update(user); TempData["SuccessMessage"] = "Profile Updated Successfully."; return(RedirectToAction("Dashboard", "Citizen")); }
public async Task <IActionResult> RegisterCitizenAsPatient(RegisterCitizen registerCitizen) { ApplicationUser Citizen_with_max_ID = citizenRepository.GetMaxCitizen(); if (ModelState.IsValid) { //copy data from registerviewmodel to identityuser var user = new ApplicationUser { //CitizenId = 0, CitizenId = Citizen_with_max_ID.CitizenId + 1, UserName = registerCitizen.Email, Email = registerCitizen.Email, Name = registerCitizen.Name, Gender = registerCitizen.Gender, Mobile = registerCitizen.Mobile, IsCitizen = true, BirthDate = DateTime.Now, Bloodgroup = registerCitizen.Bloodgroup, Height = registerCitizen.Height, Weight = registerCitizen.Weight, CheckupData = registerCitizen.CheckupData, State = registerCitizen.State, City = registerCitizen.City, Address = registerCitizen.Address, }; CitizenHospital citizenHospital = new CitizenHospital(); citizenHospital.Hospital = userManager.Users .Where(user => user.IsHospital == true) .Where(us => us.HospitalId == registerCitizen.Hospital_id_select) .FirstOrDefault(); citizenHospital.CitizenId = Citizen_with_max_ID.CitizenId + 1; using (var transaction = context.Database.BeginTransaction()) { context.CitizenHospitals.Add(citizenHospital); context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.CitizenHospitals ON;"); context.SaveChanges(); context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.CitizenHospitals OFF;"); transaction.Commit(); } var result = await userManager.CreateAsync(user, registerCitizen.Password); if (result.Succeeded) { await userManager.AddToRoleAsync(user, "Citizen"); var max_patient = patientRepository.GetMaxPatient(); Patient patient = new Patient(); patient.PatientId = max_patient.PatientId + 1; patient.CitizenId = user.CitizenId; patient.Hospital = userManager.Users .Where(user => user.IsHospital == true) .Where(us => us.HospitalId == registerCitizen.Hospital_id_select) .FirstOrDefault(); using (var transaction = context.Database.BeginTransaction()) { context.Patients.Add(patient); context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.Patients ON;"); context.SaveChanges(); context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.Patients OFF;"); transaction.Commit(); } TempData["SuccessMessage"] = "Citizen Registered & Hospitalized Successfully!"; return(RedirectToAction("Index", "Patient")); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } return(View(registerCitizen)); }