public DbRole Map(CreateRoleRequest request) { if (request == null) { return(null); } var roleId = Guid.NewGuid(); var createdAtUtc = DateTime.UtcNow; var creatorId = _httpContextAccessor.HttpContext.GetUserId(); return(new DbRole { Id = roleId, CreatedBy = creatorId, CreatedAtUtc = createdAtUtc, IsActive = true, RoleLocalizations = request.Localizations.Select(rl => _localizationMapper.Map(rl, roleId)).ToList(), RoleRights = request.Rights?.Select(x => new DbRoleRight { Id = Guid.NewGuid(), RoleId = roleId, CreatedBy = creatorId, CreatedAtUtc = createdAtUtc, RightId = x, }).ToList() }); }
public async Task <OperationResultResponse <Guid?> > ExecuteAsync(CreateRoleLocalizationRequest request) { if (!await _accessValidator.IsAdminAsync()) { return(_responseCreator.CreateFailureResponse <Guid?>(HttpStatusCode.Forbidden)); } if (!request.RoleId.HasValue) { return(_responseCreator.CreateFailureResponse <Guid?>( HttpStatusCode.BadRequest, new List <string> { "RoleId can't be empty." })); } ValidationResult validationResult = await _requestValidator.ValidateAsync(request); if (!validationResult.IsValid) { return(_responseCreator.CreateFailureResponse <Guid?>( HttpStatusCode.BadRequest, validationResult.Errors.Select(validationFailure => validationFailure.ErrorMessage).ToList())); } OperationResultResponse <Guid?> response = new(); response.Body = await _roleLocalizationRepository.CreateAsync(_roleLocalizationMapper.Map(request)); response.Status = response.Body != null ? OperationResultStatusType.FullSuccess : OperationResultStatusType.Failed; _httpContextAccessor.HttpContext.Response.StatusCode = response.Body != null ? (int)HttpStatusCode.Created : (int)HttpStatusCode.BadRequest; return(response); }