public async Task <User> CreateExternalUserAsync(User user, UserLoginInfo login) { ValidateUser(user); using (IUnitOfWork uow = RepositoryFactory.CreateUnitOfWork()) { Task result = identityUserRepository.CreateAsync(user); if (result.Exception != null) { if (result.Exception.InnerException != null) { throw new RepositoryException(nameof(User), ErrorTypeEnum.DatabaseError, result.Exception.InnerException.Message, result.Exception.InnerException); } else { throw new RepositoryException(nameof(User), ErrorTypeEnum.DatabaseError, result.Exception.Message, result.Exception); } } user = FindByName(user.UserName); await AddLoginAsync(user.Id, login); uow.Complete(); return(user); } }