Example #1
0
        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));
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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();
            }
        }