Exemplo n.º 1
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (AuthServiceClient client = new AuthServiceClient())
                {
                    RegisDTO regisDTO = new RegisDTO
                    {
                        Email           = model.Email,
                        Password        = model.Password,
                        Role            = "customer",
                        Address         = model.Address,
                        City            = model.City,
                        PostalCode      = model.PostalCode,
                        FirstName       = model.FirstName,
                        LastName        = model.LastName,
                        StateProvinceID = model.State
                    };
                    OperationDetails operationDetails = await Task.Run(() => client.Register(regisDTO));

                    if (operationDetails.Status == OperationDetails.Statuses.Success)
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        ModelState.AddModelError(operationDetails.Status.ToString(), operationDetails.Message);
                    }
                }
            }

            return(View(model));
        }
Exemplo n.º 2
0
        public async Task <OperationDetails> Register(RegisDTO userDto)
        {
            try
            {
                AppUser user = await _userMng.FindByEmailAsync(userDto.Email);

                if (user == null)
                {
                    var entityId = await CreateClient(userDto);

                    user = new AppUser {
                        UserName = userDto.Email, Email = userDto.Email, BusinessEntityID = entityId
                    };
                    var result = await _userMng.CreateAsync(user, userDto.Password);

                    if (result.Errors.Count() > 0)
                    {
                        return(new OperationDetails(OperationDetails.Statuses.Error, result.Errors.FirstOrDefault(), ""));
                    }

                    await _userMng.AddToRoleAsync(user.Id, userDto.Role);

                    _userMng.Dispose();

                    return(new OperationDetails(OperationDetails.Statuses.Success, "Registration was successful!", ""));
                }
                else
                {
                    return(new OperationDetails(OperationDetails.Statuses.Error, "User with this login exists", "Email"));
                }
            }
            catch (Exception e)
            {
                return(new OperationDetails(OperationDetails.Statuses.Error, $"{e.Message}", "Exception"));
            }
        }
Exemplo n.º 3
0
        private async Task <int> CreateClient(RegisDTO registerDto)
        {
            using (DbContextTransaction transaction = _uow.Context.Database.BeginTransaction())
            {
                try
                {
                    var bEntity = new BusinessEntity()
                    {
                        ModifiedDate = DateTime.Now, rowguid = Guid.NewGuid()
                    };
                    _uow.BusinessEntity.Create(bEntity);
                    await _uow.Save();

                    var person = new Person {
                        BusinessEntityID = bEntity.BusinessEntityID,
                        PersonType       = "GC",
                        FirstName        = registerDto.FirstName,
                        LastName         = registerDto.LastName,
                        rowguid          = Guid.NewGuid(),
                        ModifiedDate     = DateTime.Now
                    };
                    _uow.Person.Create(person);
                    await _uow.Save();

                    var address = new Address {
                        AddressLine1    = registerDto.Address,
                        City            = registerDto.City,
                        StateProvinceID = registerDto.StateProvinceID,
                        PostalCode      = registerDto.PostalCode,
                        rowguid         = Guid.NewGuid(),
                        ModifiedDate    = DateTime.Now
                    };
                    _uow.Address.Create(address);
                    await _uow.Save();

                    var bEntityAddress = new BusinessEntityAddress
                    {
                        BusinessEntityID = bEntity.BusinessEntityID,
                        AddressTypeID    = 2,
                        AddressID        = address.AddressID,
                        ModifiedDate     = DateTime.Now,
                        rowguid          = Guid.NewGuid()
                    };
                    _uow.BusinessEntityAddress.Create(bEntityAddress);
                    await _uow.Save();

                    _uow.Customer.Create(new Customer {
                        PersonID     = person.BusinessEntityID,
                        TerritoryID  = registerDto.StateProvinceID,
                        rowguid      = Guid.NewGuid(),
                        ModifiedDate = DateTime.Now
                    });;
                    await _uow.Save();

                    transaction.Commit();

                    return(bEntity.BusinessEntityID);
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw ex;
                }
            }
        }
Exemplo n.º 4
0
        public async Task <OperationDetails> Register(RegisDTO userDto)
        {
            var opDetail = await _authMng.Register(userDto);

            return(opDetail);
        }