public async Task <InteractorResult <ApplicationUser> > Call(LoggedInRequest request)
 {
     return(await PerformCall(async() =>
     {
         ApplicationUser user = null;
         _unitOfWork.Worker(() =>
         {
             user = _userRepository.FindComplete(request.UserId);
         });
         return InteractorResult <ApplicationUser> .ForSuccess(user);
     }));
 }
예제 #2
0
        public InteractorResult <Monster> Call(CreateMonsterRequest request)
        {
            return(PerformCall(() =>
            {
                var monster = _monsterFactory.For(request);

                var monsterValidation = monster.Validate();
                if (!monsterValidation.IsValid)
                {
                    return InteractorResult <Monster> .ForFailure(monsterValidation.Messages);
                }

                var result = _monsterRepository.Add(monster);
                return InteractorResult <Monster> .ForSuccess(result);
            }));
        }
        protected JsonResult Result <T>(HttpStatusCode status, InteractorResult <T> interactorResult)
            where T : class
        {
            var response = new
            {
                ActionSuccess = !interactorResult.Messages.Any(),
                Messages      = interactorResult.Messages,
                Data          = interactorResult.Data
            };
            var result = new JsonResult(response)
            {
                StatusCode = (int)status
            };

            return(result);
        }
 protected JsonResult Result <T>(InteractorResult <T> interactorResult)
     where T : class
 {
     return(Result(HttpStatusCode.OK, interactorResult));
 }