Beispiel #1
0
        public async Task <ResponseEntity <CustomerOutputDTO> > Register(RegisterInputDTO input)
        {
            var response = new ResponseEntity <CustomerOutputDTO>();

            try
            {
                var customer = await _customerRepository.FirstAsync(x => x.Email == input.Email);

                if (customer?.IsActive == false)
                {
                    customer.IsActive    = true;
                    customer.Password    = input.Password;
                    customer.Name        = input.Name;
                    customer.Surname     = input.Surname;
                    customer.PhoneNumber = input.PhoneNumber;
                    await _customerRepository.UpdateAsync(customer);

                    response.Result = new CustomerOutputDTO
                    {
                        CustomerId  = customer.Id,
                        Name        = customer.Name,
                        Surname     = customer.Surname,
                        Email       = customer.Email,
                        PhoneNumber = customer.PhoneNumber
                    };
                }
                else if (customer?.IsActive == true)
                {
                    response.Messages.Add("Bu email adresi ile daha önce kullanıcı oluşturulmuştur.");
                    response.HttpCode = HttpStatusCode.BadRequest;
                }
                else if (customer == null)
                {
                    customer = new Customer
                    {
                        Email       = input.Email,
                        Name        = input.Name,
                        Surname     = input.Surname,
                        CreateDate  = DateTime.Now,
                        IsActive    = true,
                        Password    = input.Password,
                        PhoneNumber = input.PhoneNumber
                    };
                    await _customerRepository.InsertAsync(customer);

                    response.Result = new CustomerOutputDTO
                    {
                        CustomerId  = customer.Id,
                        Name        = customer.Name,
                        Surname     = customer.Surname,
                        Email       = customer.Email,
                        PhoneNumber = customer.PhoneNumber
                    };
                }
            }
            catch (Exception ex)
            {
                response.Exception    = ex;
                response.ErrorMessage = ex.Message;
                response.HttpCode     = HttpStatusCode.InternalServerError;
            }
            return(response);
        }
 public async Task <IActionResult> Register(RegisterInputDTO input)
 {
     return(HttpEntity(await _customerService.Register(input)));
 }