public ActionResult Edit(int?id) { if (id == null) { //return new HttpStatusCodeResult(HttpStatusCode.BadRequest); return(RedirectToAction("Index", "Home")); } Assistant assistant = db.Assistants.Find(id); if (assistant == null) { return(HttpNotFound()); } AssistantEditVM assistantEditVM = new AssistantEditVM(); CareCompany company = db.CareCompanies.Find(assistant.CareCompanyId); if (company != null) { assistantEditVM.CompanyName = company.CompanyName; } assistantEditVM.FirstName = assistant.FirstName; assistantEditVM.LastName = assistant.LastName; assistantEditVM.AssistantSSN = assistant.AssistantSSN; assistantEditVM.PhoneNumber = assistant.PhoneNumber; assistantEditVM.Email = assistant.Email; assistantEditVM.HourlySalary = assistant.HourlySalary; assistantEditVM.HolidayPayRate = assistant.HolidayPayRate; assistantEditVM.PayrollTaxRate = assistant.PayrollTaxRate; assistantEditVM.PensionAndInsuranceRate = assistant.PensionAndInsuranceRate; assistantEditVM.Id = (int)id; return(View(assistantEditVM)); }
public ActionResult Create(CareCompanyCreateVM model) { if (db.CareCompanies.Where(c => c.OrganisationNumber == model.OrganisationNumber).Any()) { ModelState.AddModelError("OrganisationNumber", "Det finns redan ett bolag med det organisationsnumret."); } if (ModelState.IsValid) { CareCompany company = new CareCompany() { IsActive = true, CompanyPhoneNumber = model.CompanyPhoneNumber, Postcode = model.Postcode, City = model.City, OrganisationNumber = model.OrganisationNumber, StreetAddress = model.StreetAddress, SelectedCollectiveAgreementId = model.SelectedCollectiveAgreementId, CollectiveAgreementSpecName = model.CollectiveAgreementSpecName, AccountNumber = model.AccountNumber, CompanyName = model.CompanyName }; db.CareCompanies.Add(company); db.SaveChanges(); return(RedirectToAction("Index")); } List <SelectListItem> collectiveAgreements = new List <SelectListItem>(); collectiveAgreements = new ApplicationDbContext().CollectiveAgreementHeaders.ToList().ConvertAll(c => new SelectListItem { Value = $"{c.Id}", Text = c.Name }); model.CollectiveAgreements = new SelectList(collectiveAgreements, "Value", "Text"); // If we got this far, something failed, redisplay form return(View(model)); /* * ModelState.Remove(nameof(CareCompany.CollectiveAgreementSpecName)); * if (ModelState.IsValid) * { * db.CareCompanies.Add(careCompany); * db.SaveChanges(); * return RedirectToAction("Index"); * } * * return View(careCompany); */ }
public ActionResult Delete(int?id) { if (id == null) { //return new HttpStatusCodeResult(HttpStatusCode.BadRequest); return(RedirectToAction("Index", "Home")); } CareCompany careCompany = db.CareCompanies.Find(id); if (careCompany == null) { return(HttpNotFound()); } // It should not be possible to delete passive Companies if (careCompany.IsActive == false) { return(RedirectToAction("Index")); } CareCompanyDeleteVM deleteVM = new CareCompanyDeleteVM(); deleteVM.CareCompanyId = careCompany.Id; deleteVM.CompanyName = careCompany.CompanyName; deleteVM.OrganisationNumber = careCompany.OrganisationNumber; deleteVM.StreetAddress = careCompany.StreetAddress; deleteVM.Postcode = careCompany.Postcode; deleteVM.City = careCompany.City; deleteVM.AccountNumber = careCompany.AccountNumber; deleteVM.CompanyPhoneNumber = careCompany.CompanyPhoneNumber; CollectiveAgreementHeader collectiveAgreement = db.CollectiveAgreementHeaders.Where(c => c.Id == careCompany.SelectedCollectiveAgreementId).SingleOrDefault(); if (collectiveAgreement != null) { deleteVM.CollectiveAgreementName = collectiveAgreement.Name; } deleteVM.CollectiveAgreementSpecName = careCompany.CollectiveAgreementSpecName; return(View(deleteVM)); }
public ActionResult Edit(int?id) { if (id == null) { //return new HttpStatusCodeResult(HttpStatusCode.BadRequest); return(RedirectToAction("Index", "Home")); } CareCompany careCompany = db.CareCompanies.Find(id); if (careCompany == null) { return(HttpNotFound()); } // It should not be possible to update passive Companies if (User.IsInRole("Admin") && careCompany.IsActive == false) { return(RedirectToAction("Index")); } CareCompanyEditVM careCompanyEditVM = new CareCompanyEditVM(); careCompanyEditVM.CareCompany = careCompany; careCompanyEditVM.CareCompanyId = (int)id; List <SelectListItem> collectiveAgreements = new List <SelectListItem>(); collectiveAgreements = db.CollectiveAgreementHeaders.ToList().ConvertAll(c => new SelectListItem { Value = $"{c.Id}", Text = c.Name }); careCompanyEditVM.CollectiveAgreement = new SelectList(collectiveAgreements, "Value", "Text"); careCompanyEditVM.SelectedCollectiveAgreementId = careCompany.SelectedCollectiveAgreementId; return(View(careCompanyEditVM)); }
public ActionResult DeleteConfirmed(int id, string submitButton) { if (submitButton == "Bekräfta") { // All Assistants connected to this CareCompany will be automatically deleted // because of Cascade Delete in table dbo.Assistants // All Users connected to this CareCompany should be deleted var usersToDelete = db.Users.Where(u => u.CareCompanyId == id).ToList(); foreach (ApplicationUser user in usersToDelete) { db.Users.Remove(user); } // All Unsent Claims(Claims with StatusId == 2) and connected to this company should be deleted var unsentClaims = db.Claims.Where(c => (c.CareCompanyId == id && c.ClaimStatusId == 2)).ToList(); foreach (var claim in unsentClaims) { if (claim.CompletionStage > 1) { db.ClaimDays.RemoveRange(db.ClaimDays.Where(c => c.ReferenceNumber == claim.ReferenceNumber)); } if (claim.CompletionStage >= 2) { db.ClaimCalculations.RemoveRange(db.ClaimCalculations.Where(c => c.ReferenceNumber == claim.ReferenceNumber)); } if (claim.CompletionStage >= 4) { if (claim.Documents.Count() > 0) { db.Documents.RemoveRange(db.Documents.Where(d => d.ReferenceNumber == claim.ReferenceNumber)); } } } db.SaveChanges(); // We don't want sent Claims to be deleted when the Company is deleted // Because of that we create a new CareCompany with status Passive, and copy all the other properties // to this passive Company from the Company that will be deleted CareCompany companyToDelete = db.CareCompanies.Find(id); CareCompany passiveCompany = new CareCompany() { IsActive = false, CompanyPhoneNumber = companyToDelete.CompanyPhoneNumber, Postcode = companyToDelete.Postcode, City = companyToDelete.City, OrganisationNumber = companyToDelete.OrganisationNumber, StreetAddress = companyToDelete.StreetAddress, SelectedCollectiveAgreementId = companyToDelete.SelectedCollectiveAgreementId, CollectiveAgreementName = companyToDelete.CollectiveAgreementName, CollectiveAgreementSpecName = companyToDelete.CollectiveAgreementSpecName, AccountNumber = companyToDelete.AccountNumber, CompanyName = companyToDelete.CompanyName }; db.CareCompanies.Add(passiveCompany); db.SaveChanges(); // All the Claims that has been sent should point to the passive Company when the active Company has been deleted var sentClaims = db.Claims.Where(c => (c.CareCompanyId == id && c.ClaimStatusId != 2)).ToList(); foreach (var claim in sentClaims) { claim.CareCompanyId = passiveCompany.Id; db.Entry(claim).State = EntityState.Modified; db.SaveChanges(); } db.CareCompanies.Remove(companyToDelete); db.SaveChanges(); } return(RedirectToAction("Index")); }