예제 #1
0
 /// <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);
     }
 }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }