private async Task CreateContractorAsync(ContractorCreateOrUpdateInput input) { var nationalCode = input.NationalCode.Replace("-", ""); var user = new User { IsActive = true, ShouldChangePasswordOnNextLogin = true, UserName = input.UserName, EmailAddress = input.UserName + "@mgnsys.ir", Name = input.Name, Surname = input.Family }; user.Password = _passwordHasher.HashPassword(user, nationalCode); CheckErrors(await UserManager.CreateAsync(user)); await CurrentUnitOfWork.SaveChangesAsync(); var officerRole = _roleManager.GetRoleByName(StaticRoleNames.Host.CityAdmin); long userId = user.ToUserIdentifier().UserId; user.Roles = new List <UserRole>(); user.Roles.Add(new UserRole(null, user.Id, officerRole.Id)); if (userId > 0) { var contractor = ObjectMapper.Map <Contractor>(input); contractor.UserId = userId; await _contractorRepository.InsertAsync(contractor);; } else { throw new UserFriendlyException(L("AnErrorOccurred")); } }
public async Task CreateOrUpdateContractor(ContractorCreateOrUpdateInput input) { if (input.Id.HasValue) { await UpdateContractorAsync(input); } else { await CreateContractorAsync(input); } }
private async Task UpdateContractorAsync(ContractorCreateOrUpdateInput input) { var user = await UserManager.GetUserByIdAsync(input.UserId); user.Name = input.Name; user.Surname = input.Family; user.UserName = input.UserName; user.EmailAddress = input.UserName + "@mgnsys.ir"; CheckErrors(await UserManager.UpdateAsync(user)); await CurrentUnitOfWork.SaveChangesAsync(); var contractor = ObjectMapper.Map <Contractor>(input); await _contractorRepository.UpdateAsync(contractor); }