public async Task <IActionResult> Register(CancellationToken cancellationToken, [System.Web.Http.FromBody] CreateTenantBinding binding, [FromServices] TenantManager manager, [FromServices] ITenantRepository repository) { var tenant = await repository.Get(binding.Name, binding.Surname, binding.Password, cancellationToken); if (tenant != null) { return(BadRequest(new { errorText = "Invalid username or password." })); } try { tenant = await manager.Create(binding.Name, binding.Surname, binding.Password, binding.DateOfBirth, binding.Address, binding.EntranceNumber, binding.FlatNumber, cancellationToken); } catch (BuildingWithSuchAddressNotRegisteredException e) { return(NotFound()); } if (binding.Avatar != null) { byte[] avatarData = null; using (var binaryReader = new BinaryReader(binding.Avatar.OpenReadStream())) { avatarData = binaryReader.ReadBytes((int)binding.Avatar.Length); } tenant.PutAvatar(avatarData); } await repository.Save(tenant); return(await GetToken(tenant.TenatId)); }
public static async Task <bool> Register(CreateTenantBinding binding) { HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Add("Accept", "application/json"); client.DefaultRequestHeaders.Add("User-Agent", "ServiceForWorking"); HttpResponseMessage response = await client.PostAsJsonAsync("https://localhost:44303/Register", binding); if (response.StatusCode == System.Net.HttpStatusCode.OK) { return(true); } else { return(false); } }
private async void btnSaveNewTenant_Click(object sender, RoutedEventArgs e) { lbErrorMessage.Content = String.Empty; if (String.IsNullOrEmpty(tbName.Text)) { lbErrorMessage.Content = "Введите имя!"; return; } else if (String.IsNullOrEmpty(tbSurname.Text)) { lbErrorMessage.Content = "Введите фамилию!"; return; } else if (!(tbBirthDate.SelectedDate < DateTime.Today)) { lbErrorMessage.Content = "Выберите дату рождения!"; return; } else if (cmbAddress.SelectedItem == null) { lbErrorMessage.Content = "Укажите адрес!"; return; } else if (String.IsNullOrEmpty(tbEntranceNumber.Text)) { lbErrorMessage.Content = "Укажите подъезд!"; return; } else if (FieldsValidation.NumberCheck(tbEntranceNumber.Text) == null) { lbErrorMessage.Content = "Укажите корректный подъезд!"; return; } else if (String.IsNullOrEmpty(tbFlatNumber.Text)) { lbErrorMessage.Content = "Укажите квартиру!"; return; } else if (FieldsValidation.NumberCheck(tbFlatNumber.Text) == null) { lbErrorMessage.Content = "Укажите корректный подъезд!"; return; } else if (FieldsValidation.PasswordCheck(psbNewPassword.Password) == null) { lbErrorMessage.Content = "Введите корректный пароль!\n" + "Он должен содержать хотя бы одну цифру, однин символ нижнего (A-Z) и верхнего регистров (a-z).\n" + "Минимальная длина равна 8."; return; } else if (FieldsValidation.PasswordCheck(psbRepeatPassword.Password) == null) { lbErrorMessage.Content = "Повторите корректный пароль!"; return; } else if (psbNewPassword.Password != psbRepeatPassword.Password) { lbErrorMessage.Content = "Пароли не совпадают!"; return; } var cmi = (ComboBoxItem)cmbAddress.SelectedItem; string hashPassword = SHA256Realization.ComputeSha256Hash(psbNewPassword.Password); var NewTenant = new CreateTenantBinding() { Name = tbName.Text, Surname = tbSurname.Text, DateOfBirth = tbBirthDate.SelectedDate.Value, Address = cmi.Content.ToString(), EntranceNumber = int.Parse(tbEntranceNumber.Text), FlatNumber = int.Parse(tbFlatNumber.Text), Password = hashPassword }; bool isRegistrated = await Server.Register(NewTenant); if (!isRegistrated) { MessageBox.Show("Жилец с такими именем и паролем уже зарегистрирован!"); return; } else { var tenantWindow = new TenantWindow(); tenantWindow.Show(tbName.Text, tbSurname.Text, hashPassword); this.Close(); } }