public async Task <DownloadImageInput> DownloadImage(DownloadImageInput input) { var output = new DownloadImageInput(); var inputJson = new StringContent(JsonSerializer.Serialize(input, new JsonSerializerOptions()), Encoding.UTF8, "application/json"); var client = _clientFactory.CreateClient(); var response = await client.PostAsync(_appConfiguration["Machine:downloadImageAPI"], inputJson); if (response.IsSuccessStatusCode) { using (var responseStream = await response.Content.ReadAsStreamAsync()) { output = await JsonSerializer.DeserializeAsync <DownloadImageInput>(responseStream); } } return(output); }
public async Task <bool> UploadUsers([FromBody] List <UploadMachineUserInput> input) { try { foreach (var item in input) { //item.Person.UserCode = 22; //item.Person.PName = "test move22"; var inputJson = new StringContent( JsonSerializer.Serialize(item, new JsonSerializerOptions()), Encoding.UTF8, "application/json"); var client = _clientFactory.CreateClient(); var response = await client.PostAsync(_appConfiguration["Machine:uploadUserAPI"], inputJson); if (response.IsSuccessStatusCode) { using (var responseStream = await response.Content.ReadAsStreamAsync()) { await JsonSerializer.DeserializeAsync <string>(responseStream); } //download image var downloadImageInput = new DownloadImageInput(); downloadImageInput.UserCode = item.Person.UserCode; downloadImageInput.MachineData = item.MachineData; var uploadImageResponse = await DownloadImage(downloadImageInput); downloadImageInput.Image = Convert.ToBase64String(uploadImageResponse.Datas); uploadImageResponse.MachineData = item.MachineData; uploadImageResponse.UserCode = item.Person.UserCode; await UploadImage(uploadImageResponse); } } } catch (Exception) { return(false); } return(true); }
protected virtual async Task CreateUserAsync(CreateOrUpdateUserInput input) { if (AbpSession.TenantId.HasValue) { await _userPolicy.CheckMaxUserCountAsync(AbpSession.GetTenantId()); } var fingerCode = Convert.ToInt32(input.User.FingerCode); var machineId = input.User.MachineId; var uploadUser = input.User.UploadUser; var userImage = input.User.UserImage; var user = ObjectMapper.Map <User>(input.User); //Passwords is not mapped (see mapping configuration) user.TenantId = AbpSession.TenantId; //Set password if (input.SetRandomPassword) { var randomPassword = await _userManager.CreateRandomPassword(); user.MobilePassword = EnryptString(randomPassword); user.Password = _passwordHasher.HashPassword(user, randomPassword); input.User.Password = randomPassword; } else if (!input.User.Password.IsNullOrEmpty()) { await UserManager.InitializeOptionsAsync(AbpSession.TenantId); foreach (var validator in _passwordValidators) { CheckErrors(await validator.ValidateAsync(UserManager, user, input.User.Password)); } user.MobilePassword = EnryptString(input.User.Password); user.Password = _passwordHasher.HashPassword(user, input.User.Password); } user.ShouldChangePasswordOnNextLogin = input.User.ShouldChangePasswordOnNextLogin; //Assign roles user.Roles = new Collection <UserRole>(); foreach (var roleName in input.AssignedRoleNames) { var role = await _roleManager.GetRoleByNameAsync(roleName); user.Roles.Add(new UserRole(AbpSession.TenantId, user.Id, role.Id)); } //Assign Locations user.Locations = new Collection <UserLocation>(); foreach (var assignedLocation in input.AssignedLocations) { var locationToAdd = await _locationRepository.FirstOrDefaultAsync(x => x.Id == assignedLocation.LocationId); user.Locations.Add(new UserLocation(user.Id, locationToAdd.Id, assignedLocation.FromDate, assignedLocation.ToDate)); } CheckErrors(await UserManager.CreateAsync(user)); await CurrentUnitOfWork.SaveChangesAsync(); //To get new user's Id. //Notifications await _notificationSubscriptionManager.SubscribeToAllAvailableNotificationsAsync(user.ToUserIdentifier()); await _appNotifier.WelcomeToTheApplicationAsync(user); //Organization Units await UserManager.SetOrganizationUnitsAsync(user, input.OrganizationUnits.ToArray()); //Send activation email if (input.SendActivationEmail) { user.SetNewEmailConfirmationCode(); await _userEmailer.SendEmailActivationLinkAsync( user, AppUrlService.CreateEmailActivationUrlFormat(AbpSession.TenantId), input.User.Password ); } //add user shifts //foreach (var userShiftModel in input.User.UserShifts) //{ // //add user shift // await _userShiftRepository.InsertAsync(ObjectMapper.Map<UserShift>(userShiftModel.UserShift)); //} foreach (var userShiftModel in input.User.OverrideShifts) { //add user shift await _overrideShiftRepository.InsertAsync(ObjectMapper.Map <OverrideShift>(userShiftModel.OverrideShift)); } //add user to machine var userToUpload = new UploadMachineUserInput(); userToUpload.Person = new Person(); userToUpload.MachineData = new MachineData(); userToUpload.Person.UserCode = fingerCode; var machine = await _machineRepository.FirstOrDefaultAsync(x => x.Id == machineId); userToUpload.MachineData.IP = machine.IpAddress; userToUpload.MachineData.SN = machine.SubNet; userToUpload.MachineData.Port = machine.Port; var inputJson = new StringContent( System.Text.Json.JsonSerializer.Serialize(userToUpload, new System.Text.Json.JsonSerializerOptions()), System.Text.Encoding.UTF8, "application/json"); var client = _clientFactory.CreateClient(); var response = await client.PostAsync(_appConfiguration["Machine:uploadUserAPI"], inputJson); if (response.IsSuccessStatusCode) { using (var responseStream = await response.Content.ReadAsStreamAsync()) { await System.Text.Json.JsonSerializer.DeserializeAsync <string>(responseStream); } var downloadImageInput = new DownloadImageInput(); var clearImage = userImage.Split(",").ToList <string>(); downloadImageInput.Datas = Convert.FromBase64String(clearImage[1]); downloadImageInput.MachineData = userToUpload.MachineData; downloadImageInput.UserCode = userToUpload.Person.UserCode; await UploadImage(downloadImageInput); } }