public virtual IActionResult Edit(ResearcherModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageResearchers)) { return(AccessDeniedView()); } //try to get a researcher with the specified id var researcher = _researcherService.GetResearcherById(model.Id); bool active = researcher.IsActive; bool completed = researcher.IsCompleted; if (researcher == null) { return(RedirectToAction("List")); } if (ModelState.IsValid) { researcher = model.ToEntity(researcher); researcher.IsActive = active; researcher.IsCompleted = completed; if (model.ParseDateOfBirth() != null) { researcher.Birthdate = model.ParseDateOfBirth(); } _researcherService.UpdateResearcher(researcher); var address = model.AddressModel.ToEntity <Address>(); SaveAddress(model.AddressModel, address); if (address.Id != 0) { researcher.AddressId = address.Id; _researcherService.UpdateResearcher(researcher); } SuccessNotification("Researcher Updated"); //activity log //_userActivityService.InsertActivity("EditResearcher", "ActivityLog EditResearcher", researcher); if (!continueEditing) { return(RedirectToAction("List")); } //selected tab SaveSelectedTabName(); return(RedirectToAction("Edit", new { id = researcher.Id })); } //prepare model model = _researcherModelFactory.PrepareResearcherModel(model, researcher, true); //if we got this far, something failed, redisplay form return(View(model)); }
public virtual IActionResult Create(ResearcherModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageResearchers)) { return(AccessDeniedView()); } if (ModelState.IsValid) { var researcher = model.ToEntity <Researcher>(); if (model.ParseDateOfBirth() != null) { researcher.Birthdate = model.ParseDateOfBirth(); } researcher.IsActive = true; _researcherService.InsertResearcher(researcher); var address = model.AddressModel.ToEntity <Address>(); SaveAddress(model.AddressModel, address); if (address.Id != 0) { researcher.AddressId = address.Id; _researcherService.UpdateResearcher(researcher); } SuccessNotification("Admin.ContentManagement.Researchers.Added"); //activity log //_userActivityService.InsertActivity("AddNewResearcher", "ActivityLog.AddNewResearcher", researcher); if (!continueEditing) { return(RedirectToAction("List")); } //selected tab SaveSelectedTabName(); return(RedirectToAction("Edit", new { id = researcher.Id })); } //prepare model model = _researcherModelFactory.PrepareResearcherModel(model, null, true); //if we got this far, something failed, redisplay form return(View(model)); }