예제 #1
0
        public IActionResult ChangeLateFlag(long id)
        {
            var specifiedReturn = dataRepository.Get <Return>(id);

            var viewModel = new AdminReturnLateFlagViewModel {
                Return = specifiedReturn, NewLateFlag = !specifiedReturn.IsLateSubmission
            };

            return(View("ChangeLateFlag", viewModel));
        }
        public IActionResult ChangeLateFlag(long id, AdminReturnLateFlagViewModel viewModel)
        {
            var specifiedReturn = _adminService.SharedBusinessLogic.DataRepository.Get <Return>(id);

            viewModel.ParseAndValidateParameters(Request, m => m.Reason);

            if (viewModel.HasAnyErrors())
            {
                viewModel.Return = specifiedReturn;

                // If there are any errors, return the user back to the same page to correct the mistakes
                return(View("ChangeLateFlag", viewModel));
            }

            if (viewModel.NewLateFlag is null)
            {
                throw new ArgumentNullException(nameof(viewModel.NewLateFlag));
            }

            specifiedReturn.IsLateSubmission = viewModel.NewLateFlag.Value;

            _adminService.SharedBusinessLogic.DataRepository.SaveChangesAsync().Wait();

            auditLogger.AuditChangeToOrganisation(
                this,
                AuditedAction.AdminChangeLateFlag,
                specifiedReturn.Organisation,
                new
            {
                ReturnId          = id,
                LateFlagChangedTo = viewModel.NewLateFlag,
                viewModel.Reason
            });

            return(RedirectToAction("ViewOrganisation", "AdminViewOrganisation",
                                    new { id = specifiedReturn.OrganisationId }));
        }