コード例 #1
0
        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"));
            }
        }
コード例 #2
0
 public async Task CreateOrUpdateContractor(ContractorCreateOrUpdateInput input)
 {
     if (input.Id.HasValue)
     {
         await UpdateContractorAsync(input);
     }
     else
     {
         await CreateContractorAsync(input);
     }
 }
コード例 #3
0
        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);
        }