Example #1
0
        public async Task <IActionResult> PostRoleRouteAsync([FromBody] RoleForCreationUiModel roleForCreationUiModel)
        {
            var userAudit = await _inquiryUserProcessor.GetUserByLoginAsync(GetEmailFromClaims());

            if (userAudit == null)
            {
                return(BadRequest());
            }

            var newCreatedRole = await _createRoleProcessor.CreateRoleAsync(userAudit.Id, roleForCreationUiModel);

            switch (newCreatedRole.Message)
            {
            case ("SUCCESS_CREATION"):
            {
                Log.Information(
                    $"--Method:PostRoleRouteAsync -- Message:ROLE_CREATION_SUCCESFULLY -- Datetime:{DateTime.Now} -- RoleInfo:{roleForCreationUiModel.Name}");
                return(Created(nameof(PostRoleRouteAsync), newCreatedRole));
            }

            case ("ERRR_ERROR_ALREADY_EXISTS"):
            {
                Log.Error(
                    $"--Method:PostRoleRouteAsync -- Message:ERROR_ROLE_ALREADY_EXISTS -- Datetime:{DateTime.UtcNow} -- RoleInfo:{roleForCreationUiModel.Name}");
                return(BadRequest(new { errorMessage = "ROLE_ALREADY_EXISTS" }));
            }

            case ("ERROR_ROLE_NOT_MADE_PERSISTENT"):
            {
                Log.Error(
                    $"--Method:PostRoleRouteAsync -- Message:ERROR_ROLE_NOT_MADE_PERSISTENT -- Datetime:{DateTime.UtcNow} -- RoleInfo:{roleForCreationUiModel.Name}");
                return(BadRequest(new { errorMessage = "ERROR_CREATION_NEW_ROLE" }));
            }

            case ("UNKNOWN_ERROR"):
            {
                Log.Error(
                    $"--Method:PostRoleRouteAsync -- Message:ERROR_CREATION_NEW_ROLE -- Datetime:{DateTime.UtcNow} -- RoleInfo:{roleForCreationUiModel.Name}");
                return(BadRequest(new { errorMessage = "ERROR_CREATION_NEW_ROLE" }));
            }
            }
            return(NotFound());
        }
        public Task <RoleCreationUiModel> CreateRoleAsync(Guid accountIdToCreateThisRole, RoleForCreationUiModel newRoleUiModel)
        {
            var response =
                new RoleCreationUiModel()
            {
                Message = "START_CREATION"
            };

            if (newRoleUiModel == null)
            {
                response.Message = "ERROR_INVALID_ROLE_MODEL";
                return(Task.Run(() => response));
            }

            try
            {
                var roleToBeCreated = new Role();

                roleToBeCreated.InjectWithInitialAttributes(newRoleUiModel);
                roleToBeCreated.InjectWithAudit(accountIdToCreateThisRole);

                ThrowExcIfRoleCannotBeCreated(roleToBeCreated);
                ThrowExcIfThisRoleAlreadyExist(roleToBeCreated);

                Log.Debug(
                    $"Create Role: {newRoleUiModel.Name}" +
                    "--CreateRole--  @NotComplete@ [CreateRoleProcessor]. " +
                    "Message: Just Before MakeItPersistence");

                MakeRolePersistent(roleToBeCreated);

                Log.Debug(
                    $"Create Role: {newRoleUiModel.Name}" +
                    "--CreateRole--  @NotComplete@ [CreateRoleProcessor]. " +
                    "Message: Just After MakeItPersistence");
                response         = ThrowExcIfRoleWasNotBeMadePersistent(roleToBeCreated);
                response.Message = "SUCCESS_CREATION";
            }
            catch (InvalidRoleException e)
            {
                response.Message = "ERROR_INVALID_ROLE_MODEL";
                Log.Error(
                    $"Create Role: {newRoleUiModel.Name}" +
                    $"Error Message:{response.Message}" +
                    "--CreateRole--  @NotComplete@ [CreateRoleProcessor]. " +
                    $"Broken rules: {e.BrokenRules}");
            }
            catch (RoleAlreadyExistsException ex)
            {
                response.Message = "ERRR_ROLE_ALREADY_EXISTS";
                Log.Error(
                    $"Create Role: {newRoleUiModel.Name}" +
                    $"Error Message:{response.Message}" +
                    "--CreateRole--  @fail@ [CreateRoleProcessor]. " +
                    $"@innerfault:{ex?.Message} and {ex?.InnerException}");
            }
            catch (RoleDoesNotExistAfterMadePersistentException exx)
            {
                response.Message = "ERROR_ROLE_NOT_MADE_PERSISTENT";
                Log.Error(
                    $"Create Role: {newRoleUiModel.Name}" +
                    $"Error Message:{response.Message}" +
                    "--CreateRole--  @fail@ [CreateRoleProcessor]." +
                    $" @innerfault:{exx?.Message} and {exx?.InnerException}");
            }
            catch (Exception exxx)
            {
                response.Message = "UNKNOWN_ERROR";
                Log.Error(
                    $"Create Role: {newRoleUiModel.Name}" +
                    $"Error Message:{response.Message}" +
                    $"--CreateRole--  @fail@ [CreateRoleProcessor]. " +
                    $"@innerfault:{exxx.Message} and {exxx.InnerException}");
            }

            return(Task.Run(() => response));
        }
Example #3
0
 public virtual void InjectWithInitialAttributes(RoleForCreationUiModel newRoleUiModel)
 {
     this.Name = newRoleUiModel.Name;
 }