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)); }
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")); } }
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; } } }
public async Task <OperationDetails> Register(RegisDTO userDto) { var opDetail = await _authMng.Register(userDto); return(opDetail); }