public void Post([FromBody] SaveCustomerViewModel sCustomer)
        {
            var customer = new CustomerViewModel
            {
                FirstName   = sCustomer.FirstName,
                LastName    = sCustomer.LastName,
                MemberSince = sCustomer.MemberSince,
                Wallet      = sCustomer.Wallet
            };

            _repository.Add(customer.ToModel());
        }
Пример #2
0
        public async Task <ActionResult> SaveCustomer([FromForm] SaveCustomerViewModel model, CancellationToken cancellationToken)
        {
            EnsureModalStateIsValid();

            var request = Mapper.Map <SaveCustomerViewModel, SaveCustomerRequest>(model);

            var response = await Mediator.Send(request, cancellationToken);

            return(await HandleResponse(response, cancellationToken, async (response, ct) => await Mediator
                                        .Publish(new CustomerSavedNotification {
                SavedCustomer = response.Result
            }, ct)));
        }
Пример #3
0
        public async Task <ActionResult> RegisterAsync([FromBody] SaveCustomerViewModel model)
        {
            var result = await _saveCustomerCommand.ExecuteAsync(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,
                    PhoneNumber = user.PhoneNumber,
                    LastName    = user.LastName,
                    MiddleName  = user.MiddleName,
                    FirstName   = user.FirstName
                };

                TokenViewModel tokenVM = new TokenViewModel()
                {
                    Id          = user.Id,
                    Email       = user.Email,
                    PhoneNumber = user.PhoneNumber,
                    LastName    = user.LastName,
                    MiddleName  = user.MiddleName,
                    FirstName   = user.FirstName,
                    Birthday    = user.Birthday,
                    Gender      = user.Gender,
                    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
            })));
        }
Пример #4
0
        private CommandResult CheckValidData(SaveCustomerViewModel model)
        {
            if (model == default ||
                model.FirstName == default ||
                model.LastName == default ||
                model.Email == default ||
                model.PhoneNumber == default ||
                (model.Id == default && model.Password.IsEmpty()))
            {
                return(CommandResult.Failed(new CommandResultError()
                {
                    Code = (int)HttpStatusCode.BadRequest,
                    Description = MessageErrors.SomeDataEmptyOrInvalid
                }));
            }

            if (CheckEmailExist(model.Email, model.Id))
            {
                return(CommandResult.Failed(new CommandResultError()
                {
                    Code = (int)HttpStatusCode.NotAcceptable,
                    Description = MessageErrors.DataIsExists.Replace("{0}", "Email")
                }));
            }

            if (CheckPhoneNumberExist(model.PhoneNumber, model.Id))
            {
                return(CommandResult.Failed(new CommandResultError()
                {
                    Code = (int)HttpStatusCode.NotAcceptable,
                    Description = MessageErrors.DataIsExists.Replace("{0}", "Phone number")
                }));
            }

            return(null);
        }
Пример #5
0
        public async Task <IActionResult> UpdateInfoAsync([FromBody] SaveCustomerViewModel model)
        {
            var result = await _saveCustomerCommand.ExecuteAsync(model);

            return(new ObjectResult(result));
        }
Пример #6
0
        public async Task <CommandResult> ExecuteAsync(SaveCustomerViewModel model)
        {
            try
            {
                CommandResult isNotValidDate = CheckValidData(model);

                if (isNotValidDate != null)
                {
                    return(isNotValidDate);
                }

                if (model.Id == default)
                {
                    CsmsUser user = new CsmsUser()
                    {
                        Id          = 0,
                        RoleId      = 1,
                        FirstName   = model.FirstName,
                        MiddleName  = model.MiddleName,
                        LastName    = model.LastName,
                        PhoneNumber = model.PhoneNumber,
                        Email       = model.Email,
                        Birthday    = model.Birthday,
                        Gender      = model.Gender,
                        Password    = BCrypt.HashPassword(model.Password, BCrypt.GenerateSalt())
                    };

                    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.FirstName;
                        user.MiddleName  = model.MiddleName;
                        user.LastName    = model.LastName;
                        user.PhoneNumber = model.PhoneNumber;
                        user.Email       = model.Email;
                        user.Birthday    = model.Birthday;
                        user.Gender      = model.Gender;

                        await _userRepository.UpdateAsync(user);

                        return(GetUserDataSuccess(user));
                    }
                }
            }
            catch (Exception)
            {
                return(CommandResult.Failed(new CommandResultError()
                {
                    Code = (int)HttpStatusCode.InternalServerError,
                    Description = MessageErrors.InternalServerError
                }));
            }
        }