Ejemplo n.º 1
0
        public async Task <CommandResult> ExecuteSocialAsync(SaveCustomerSocialViewModel model)
        {
            try
            {
                if (model.Id == default)
                {
                    CsmsUser user = new CsmsUser()
                    {
                        Id         = 0,
                        RoleId     = 1,
                        FirstName  = model.Name,
                        MiddleName = "",
                        LastName   = "",
                        Email      = model.Email,
                    };

                    await _userRepository.InsertAsync(user);

                    return(GetUserDataSuccess(user));
                }
                else
                {
                    var user = await _userRepository.GetByIdAsync(model.Id);

                    if (user == null)
                    {
                        return(CommandResult.Failed(new CommandResultError()
                        {
                            Code = (int)HttpStatusCode.NotFound,
                            Description = MessageErrors.NotFound
                        }));
                    }
                    else
                    {
                        user.FirstName = model.Name;
                        user.Email     = model.Email;
                        await _userRepository.UpdateAsync(user);

                        return(GetUserDataSuccess(user));
                    }
                }
            }
            catch (Exception ex)
            {
                return(CommandResult.Failed(new CommandResultError()
                {
                    Code = (int)HttpStatusCode.InternalServerError,
                    Description = MessageErrors.InternalServerError
                }));
            }
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> RegisterSocialAsync([FromBody] SaveCustomerSocialViewModel model)
        {
            var result = await _saveCustomerCommand.ExecuteSocialAsync(model);

            if (!result.Succeeded)
            {
                return(new ObjectResult(result));
            }

            CustomerViewModel user = result.Data as CustomerViewModel;

            if (user != null)
            {
                var jwtOptions = _jwtConfiguration.Value;
                jwtOptions.ValidFor = TimeSpan.FromHours(JwtValidTime.FOR_CUSTOMER_BY_HOURS);

                var jwtUserAccount = new JwtUserAccount
                {
                    UserId    = user.Id,
                    Email     = user.Email,
                    FirstName = user.FirstName
                };

                TokenViewModel tokenVM = new TokenViewModel()
                {
                    Id          = user.Id,
                    Email       = user.Email,
                    FirstName   = user.FirstName,
                    CreatedDate = user.CreatedDate,
                    AccessToken = jwtUserAccount.GenerateToken(jwtOptions)
                };

                return(new ObjectResult(CommandResult.SuccessWithData(tokenVM)));
            }

            return(new ObjectResult(CommandResult.Failed(new CommandResultError()
            {
                Code = (int)HttpStatusCode.InternalServerError,
                Description = MessageConstant.SYSTEM_ERROR
            })));
        }