Example #1
0
        protected async void Login(object obj, EventArgs args)
        {
            //Проверка наличия соединения
            var connectivityManager = (ConnectivityManager)GetSystemService(ConnectivityService);
            var activeConnection    = connectivityManager.ActiveNetworkInfo;
            var isOnline            = (activeConnection != null) && activeConnection.IsConnected;
            var wifiInfo            = connectivityManager.GetNetworkInfo(ConnectivityType.Wifi);
            var isWiFi = wifiInfo.IsConnected;

            if (!isOnline && !isWiFi)
            {
                MessageHelper.ShowMessage(this, Resource.String.Attention, Resource.String.NoConnection);
                return;
            }

            //Пустышка логинки
            //var userid = "123asd";
            //var mainMenuAciviy = new Intent(this, typeof(MainMenuActivity));
            //mainMenuAciviy.PutExtra("UserId", userid);
            //StartActivity(mainMenuAciviy);

            var name     = FindViewById <EditText>(Resource.Id.EtName).Text;
            var password = FindViewById <EditText>(Resource.Id.EtPassword).Text;

            if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(password))
            {
                MessageHelper.ShowMessage(this, Resource.String.Warning, Resource.String.WrongInput);
                return;
            }

            var progressDialog = new ProgressDialog(this);

            progressDialog.SetProgressStyle(ProgressDialogStyle.Spinner);
            progressDialog.SetMessage(Resources.GetString(Resource.String.SigningIn));
            progressDialog.SetCancelable(false);
            progressDialog.Show();
            try
            {
                var userId = await WebRequestHelper.FetchWebResult <string>($"/Login/ApiLogin?userName={name}&password={password}");

                if (userId != null)
                {
                    //Обновляем данные
                    var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), $"{userId}.txt");

                    //Загрузка данных
                    var eventsList = await WebRequestHelper.FetchWebResult <RequestData <List <EventInfo> > >($"/Main/GetUserScheduleMobilesByUserId?UserId={userId}");

                    //Сохранение данных
                    using (var writer = new StreamWriter(File.Create(filePath)))
                    {
                        writer.Write(JsonConvert.SerializeObject(eventsList.data));
                    }

                    var activity = new Intent(this, typeof(MainMenuActivity));
                    activity.PutExtra("UserId", userId);
                    StartActivity(activity);
                    progressDialog.Hide();
                }
                else
                {
                    MessageHelper.ShowMessage(this, Resource.String.Warning, Resource.String.WrongInput);
                    progressDialog.Hide();
                }
            }
            catch (Exception e)
            {
                progressDialog.Hide();
                MessageHelper.ShowMessage(this, Resource.String.Warning, Resource.String.ServerUnavailable);
            }
        }