/// <summary> /// Called when the action is executing. /// </summary> /// <param name="actionContext">The action context.</param> public override void OnActionExecuting(ActionExecutingContext actionContext) { if (actionContext.ActionArguments.Any(x => x.Value == null)) { actionContext.Result = new BadRequestObjectResult("Arguments cannot be null."); } else if (!actionContext.ModelState.IsValid) { var response = new ServiceErrorResult(actionContext.ModelState); actionContext.Result = new BadRequestObjectResult(response); } }
public ServiceResult <Usuario> Create(CreateUsuarioDto createUsuario) { ServiceResult <Usuario> result; try { IdentityResult idenityResult = null; Usuario usuario = null; var user = new BitUser { UserName = createUsuario.Email, Email = createUsuario.Email, EmailConfirmed = createUsuario.EmailConfirmed }; //adding roles if (createUsuario.RolesIds.Length > 0) { foreach (var roleId in createUsuario.RolesIds) { user.Roles.Add(new BitUserRole { RoleId = roleId }); } } var securityContext = new BitSecurityContext(); BitUserManager userManager = new BitUserManager(new BitUserStore(securityContext)); using (var scope = new TransactionScope(TransactionScopeOption.Required)) { idenityResult = userManager.Create(user, createUsuario.Password); if (idenityResult.Succeeded) { usuario = new Usuario { Id = user.Id, Email = user.Email }; _usuarioRepository.Insert(usuario); _context.SaveChanges(); } else { result = new ServiceErrorResult <Usuario>(new OperationError(ErrorType.Validation, string.Join(",", idenityResult.Errors))); } scope.Complete(); } result = new ServiceSucceedResult <Usuario>(usuario); } catch (Exception ex) { OperationError error = new OperationError(ErrorType.Exception, "No se realizó la inserción", ex); result = new ServiceErrorResult <Usuario>(ErrorType.Exception, "No se insertó", ex); } return(result); }
public override void OnActionExecuting(HttpActionContext actionContext) { if (actionContext.ModelState.IsValid) { return; } var response = new ServiceErrorResult(actionContext.ModelState); actionContext.Response = actionContext.Request.CreateResponse( HttpStatusCode.BadRequest, response); //var errorList = actionContext.ModelState.ToDictionary( // kvp => kvp.Key, // kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray()); //actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest, errorList); }