Esempio n. 1
0
        public IActionResult Post([FromBody] Phase phase)
        {
            if (!_accessService.AllowPostPhase(User, phase.EngagementId))
            {
                return(StatusCode(403));
            }

            var validationResult = _phaseValidator.Validate(phase);

            if (!validationResult.IsValid)
            {
                ModelState.AddValidationResult(validationResult);
                return(BadRequest(ModelState));
            }

            if (phase.Id > 0)
            {
                _phaseService.Update(phase);
            }
            else
            {
                _phaseService.Add(phase);
            }

            return(Ok(phase));
        }
Esempio n. 2
0
        protected IActionResult ProcessViewModel <TViewModel>(
            IValidator <TViewModel> validator,
            IProcessor <TViewModel> processor,
            TViewModel viewModel,
            Func <TViewModel, IActionResult> successAction,
            Func <TViewModel, IActionResult> failureAction)
            where TViewModel : class, IBaseViewModel
        {
            try
            {
                var validationResult = validator.Validate(viewModel);

                ModelState.AddValidationResult(validationResult);

                if (!ModelState.IsValid)
                {
                    return(failureAction(viewModel));
                }

                processor.Process(viewModel);

                return(successAction(viewModel));
            }
            catch (Exception e)
            {
                return(failureAction(viewModel));
            }
        }
Esempio n. 3
0
        protected async Task <IActionResult> ProcessViewModel <TViewModel>(
            TViewModel viewModel,
            Func <TViewModel, Task> customFunc,
            Func <IActionResult> successAction,
            Func <IActionResult> failureAction)
            where TViewModel : class, IBaseViewModel
        {
            try
            {
                var validator        = GetValidator <TViewModel>();
                var validationResult = validator.Validate(viewModel);

                ModelState.AddValidationResult(validationResult);

                if (!ModelState.IsValid)
                {
                    return(failureAction());
                }

                await customFunc(viewModel);

                return(successAction());
            }
            catch (Exception)
            {
                return(failureAction());
            }
        }
Esempio n. 4
0
        public IActionResult SignIn(SignInViewModel viewModel)
        {
            var result = ProcessViewModel(
                viewModel,
                async vm =>
            {
                var validationResult = new ValidationResult <SignInViewModel>();

                try
                {
                    var principal = authentication.SignIn(vm.Username, vm.Password);
                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);
                }
                catch (DeactivatedException)
                {
                    validationResult.AddError(
                        x => x.Username,
                        translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:Deactivated"));

                    ModelState.AddValidationResult(validationResult);

                    throw;
                }
                catch (Exception)
                {
                    validationResult.AddError(
                        x => x.Username,
                        translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:WrongLogin"));

                    validationResult.AddError(
                        x => x.Password,
                        translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:WrongLogin"));

                    ModelState.AddValidationResult(validationResult);

                    throw;
                }
            },
                () => RedirectToAction("Index", "Dashboard"),
                () =>
            {
                var reloader = GetReloader <SignInViewModel>();
                return(View("SignIn", reloader.Reload(viewModel)));
            });

            return(result.Result);
        }
Esempio n. 5
0
        public IActionResult Delete(int id)
        {
            var role = roleProvider.GetEntity(x => x.Id == id);

            if (role.IsNullOrDefault())
            {
                return(RedirectToAction("List", "Role"));
            }

            try
            {
                var rolePermissions = rolePermissionProvider.Where(x => x.Role_Id == role.Id);
                var userRoles       = userRoleProvider.Where(x => x.Role_Id == role.Id);

                using (var transaction = new TransactionScope(TransactionScopeOption.Required))
                {
                    rolePermissionService.DeleteRange(rolePermissions);
                    userRoleService.DeleteRange(userRoles);
                    roleService.Delete(role);

                    transaction.Complete();
                }

                return(RedirectToAction("List", "Role"));
            }
            catch (Exception)
            {
                var validationResult = new ValidationResult <UserViewModel>();
                var loader           = GetLoader <RoleViewModel, int>();
                var viewModel        = loader.Load(role.Id);

                validationResult.AddError(
                    m => m.Id,
                    translationManager.GetTranslationLabel(LanguageId, "Dashboard:Role:NotDeleted"));

                ModelState.Clear();
                ModelState.AddValidationResult(validationResult);

                return(View("Details", viewModel));
            }
        }