private void ChangeStatus(AdminChangeStatusViewModel viewModel, long organisationId) { var organisation = dataRepository.Get <Organisation>(organisationId); User currentUser = ControllerHelper.GetGpgUserFromAspNetUser(User, dataRepository); OrganisationStatuses previousStatus = organisation.Status; OrganisationStatuses newStatus = viewModel.NewStatus ?? OrganisationStatuses.Unknown; // Update the status organisation.SetStatus( newStatus, currentUser.UserId, viewModel.Reason); // [In]Activate users of the organisation if (newStatus == OrganisationStatuses.Active) { ActivateUsersOfOrganisation(organisation); } if (previousStatus == OrganisationStatuses.Active) { InactivateUsersOfOrganisation(organisation); } dataRepository.SaveChanges(); // Audit log auditLogger.AuditChangeToOrganisation( AuditedAction.AdminChangeOrganisationStatus, organisation, new { PreviousStatus = previousStatus, NewStatus = newStatus, viewModel.Reason }, User); }
private void UpdateAdminChangeStatusViewModelFromOrganisation(AdminChangeStatusViewModel viewModel, long organisationId) { viewModel.Organisation = dataRepository.Get <Organisation>(organisationId); viewModel.InactiveUserOrganisations = dataRepository.GetAll <InactiveUserOrganisation>() .Where(m => m.OrganisationId == organisationId).ToList(); }
public IActionResult ChangeStatusGet(long id) { var viewModel = new AdminChangeStatusViewModel(); UpdateAdminChangeStatusViewModelFromOrganisation(viewModel, id); return(View("ChangeStatus", viewModel)); }
private void ValidateAdminChangeStatusViewModel(AdminChangeStatusViewModel viewModel) { if (!viewModel.NewStatus.HasValue) { viewModel.AddErrorFor(m => m.NewStatus, "Please select a new status"); } viewModel.ParseAndValidateParameters(Request, m => m.Reason); }
public IActionResult ChangeStatusPost(long id, AdminChangeStatusViewModel viewModel) { switch (viewModel.Action) { case ChangeOrganisationStatusViewModelActions.OfferNewStatusAndReason: UpdateAdminChangeStatusViewModelFromOrganisation(viewModel, id); ValidateAdminChangeStatusViewModel(viewModel); if (viewModel.HasAnyErrors()) { return(View("ChangeStatus", viewModel)); } return(View("ConfirmStatusChange", viewModel)); case ChangeOrganisationStatusViewModelActions.ConfirmStatusChange: ChangeStatus(viewModel, id); return(RedirectToAction("ViewStatusHistory", "AdminOrganisationStatus", new { id })); default: throw new ArgumentException("Unknown action in AdminOrganisationStatusController.ChangeStatusPost"); } }