private async Task LoadReports()
        {
            IsBusy = true;

            // Проверяем доступно ли API
            if (!AntiCounterfeitApiService.getInstance().IsAvailable())
            {
                await page.DisplayAlert(null, "Нет подключения к сети", "Принять");

                return;
            }
            var api = AntiCounterfeitApiService.getInstance().Api;

            Reports.Clear();

            var token       = User.GetUser().Token;
            var identifiers = await api.GetComplaintIdentifiers(token, 100, 1);

            foreach (var identifier in identifiers)
            {
                var data = await api.GetComplaintData(token, identifier.Id);

                if (data.Type == "product")
                {
                    Reports.Add(new Report {
                        TitleName   = "Товар",
                        Address     = data.Address,
                        State       = data.Status == "На рассмотрении" ? ReportStatus.inProcessing : ReportStatus.ready,
                        Description = data.Description
                    });
                }
                else if (data.Type == "sale-point")
                {
                    Reports.Add(new Report
                    {
                        TitleName   = "Торговая точка",
                        Address     = data.Address,
                        State       = data.Status == "На рассмотрении" ? ReportStatus.inProcessing : ReportStatus.ready,
                        Description = data.Description
                    });
                }
            }

            IsBusy = false;
        }
        private async void LogIn()
        {
            //var props = Application.Current.Properties;
            //if (props.ContainsKey("__test"))
            //{
            //    await page.DisplayAlert(null, props["__test"] as string, "OK");
            //    return;
            //}
            //Application.Current.Properties["__test"] = "test";
            //return;

            // Проверяем доступно ли API
            if (!AntiCounterfeitApiService.getInstance().IsAvailable())
            {
                await page.DisplayAlert(null, "Нет подключения к сети", "Принять");

                return;
            }
            var api = AntiCounterfeitApiService.getInstance().Api;

            // Валидация полей
            if (string.IsNullOrEmpty(UserName) || string.IsNullOrEmpty(Password))
            {
                await page.DisplayAlert(null, "Заполните все текстовые поля", "Принять");

                return;
            }

            // Авторизация
            var logInInfo = await api.LogIn(UserName, Password);

            if (string.IsNullOrEmpty(logInInfo.Token))
            {
                await page.DisplayAlert(null, "Пользователь с указанными данными не существует", "Принять");

                return;
            }
            User.GetUser().Email = UserName;
            User.GetUser().Token = logInInfo.Token;
            ToMainMenu();
        }
        private async void CreateAcc()
        {
            // Проверяем доступно ли API
            if (!AntiCounterfeitApiService.getInstance().IsAvailable())
            {
                await page.DisplayAlert(null, "Нет подключения к сети", "Принять");

                return;
            }
            var api = AntiCounterfeitApiService.getInstance().Api;

            // Валидация введенных значений
            if (string.IsNullOrEmpty(UserName) || string.IsNullOrEmpty(Password) || string.IsNullOrEmpty(DoublePassword))
            {
                await page.DisplayAlert(null, "Заполните все текстовые поля", "Принять");

                return;
            }
            if (!Password.Equals(DoublePassword))
            {
                await page.DisplayAlert("", "Указанные вами пароли не совпадают", "Принять");

                return;
            }

            // Регистрация пользователя
            var signUpInfo = await api.RequestCode(UserName);

            if (!signUpInfo.Success)
            {
                await page.DisplayAlert("", signUpInfo.Reason, "Принять");

                return;
            }
            var code = await page.DisplayPromptAsync("", "Введите код подтверждения, отправленный на указанный вами адрес электронной почты", "Принять", "Отмена");

            if (string.IsNullOrEmpty(code))
            {
                return;
            }
            var registrationInfo = await api.SignUp(UserName, Password, code);

            if (!registrationInfo.Success)
            {
                await page.DisplayAlert("", registrationInfo.Reason, "Принять");

                return;
            }

            // Авторизация
            var logInInfo = await api.LogIn(UserName, Password);

            if (string.IsNullOrEmpty(logInInfo.Token))
            {
                await page.DisplayAlert("", "Пользователь с указанными данными не существует", "Принять");

                return;
            }
            User.GetUser().Email = UserName;
            User.GetUser().Token = logInInfo.Token;
            ToMainMenu();
        }