예제 #1
0
        private async Task <AuthApiData <GetBoxIdResponse> > GetRandomBox()
        {
            string dir_path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);

            var         myHttpClient = new HttpClient();
            WebRequest  request      = WebRequest.Create("http://iot-tmc-cen.1gb.ru/api/container/getrandombox");
            WebResponse response     = request.GetResponse();
            // HttpWebRequest
            var    uri      = new Uri("http://iot-tmc-cen.1gb.ru/api/container/getrandombox");
            string s_result = "";

            using (Stream stream = response.GetResponseStream())
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    string line = "";
                    while ((line = reader.ReadLine()) != null)
                    {
                        s_result += line;
                    }
                }
            }
            response.Close();

            AuthApiData <GetBoxIdResponse> o_data = JsonConvert.DeserializeObject <AuthApiData <GetBoxIdResponse> >(s_result);

            //ClearField();

            return(o_data);
        }
예제 #2
0
        private async Task SearchPhotoRequest()
        {
            try
            {
                var myHttpClient = new HttpClient();

                var uri = new Uri("http://iot.tmc-centert.ru/api/container/SearchCommandPhoto?name=" + StaticBox.DeviceId);
                HttpResponseMessage response = await myHttpClient.GetAsync(uri.ToString());

                string s_result;
                using (HttpContent responseContent = response.Content)
                {
                    s_result = await responseContent.ReadAsStringAsync();
                }

                AuthApiData <BaseResponseObject> o_data = new AuthApiData <BaseResponseObject>();
                o_data = JsonConvert.DeserializeObject <AuthApiData <BaseResponseObject> >(s_result);
                StaticBox.IsAvalableRequest = o_data.Status;
            }
            catch (Exception ex)
            {
                Log.Debug(TAG, ex.Message);
                Toast.MakeText(Application.Context, TAG + ex.Message, ToastLength.Short).Show();
            }
        }
예제 #3
0
        public async void SaveInfoBox()
        {
            CreateBoxModel model = new CreateBoxModel
            {
                id = StaticBox.DeviceId
            };

            var myHttpClient = GetClient();
            var id1          = StaticBox.DeviceId;
            //var id1 = CrossSettings.Current.GetValueOrDefault("id", "");
            // var uri = new Uri("http://iot.tmc-centert.ru/api/container/getbox?id=" + id1);
            var uri2 = new Uri("http://smartboxcity.ru:8003/imitator/status?id=" + StaticBox.DeviceId);
            HttpResponseMessage response = await myHttpClient.PostAsync(uri2.ToString(), new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"));

            string s_result;

            using (HttpContent responseContent = response.Content)
            {
                s_result = await responseContent.ReadAsStringAsync();
            }
            AuthApiData <ListResponse <BoxDataResponse> > o_data = new AuthApiData <ListResponse <BoxDataResponse> >();

            //string result = await myHttpClient.GetStringAsync(uri.ToString());

            //AuthApiData<ListResponse<BoxDataResponse>> o_data = new AuthApiData<ListResponse<BoxDataResponse>>();

            //string s_result;
            //using (HttpContent responseContent = response.Content)
            //{
            //    s_result = await responseContent.ReadAsStringAsync();
            //}

            o_data.ResponseData = new ListResponse <BoxDataResponse>();
            o_data = JsonConvert.DeserializeObject <AuthApiData <ListResponse <BoxDataResponse> > >(s_result);
            if (o_data.Status == "0")
            {
                ListResponse <BoxDataResponse> o_boxes_data = new ListResponse <BoxDataResponse>();
                o_boxes_data.Objects = o_data.ResponseData.Objects;// !!!

                //StaticBox.AddInfoObjects(o_boxes_data);
                //В статик бокс закомментируй 9 свойств
                StaticBox.Sensors["Температура"]  = o_data.ResponseData.Objects.Where(f => f.SensorName == "Температура").Select(s => s.Value).FirstOrDefault();
                StaticBox.Sensors["Влажность"]    = o_data.ResponseData.Objects.Where(f => f.SensorName == "Влажность").Select(s => s.Value).FirstOrDefault();
                StaticBox.Sensors["Освещенность"] = o_data.ResponseData.Objects.Where(f => f.SensorName == "Освещенность").Select(s => s.Value).FirstOrDefault();
                StaticBox.Sensors["Вес груза"]    = o_data.ResponseData.Objects.Where(f => f.SensorName == "Вес груза").Select(s => s.Value).FirstOrDefault();
                StaticBox.Sensors["Уровень заряда аккумулятора"] = o_data.ResponseData.Objects.Where(f => f.SensorName == "Уровень заряда аккумулятора").Select(s => s.Value).FirstOrDefault();
                StaticBox.Sensors["Уровень сигнала"]             = o_data.ResponseData.Objects.Where(f => f.SensorName == "Уровень сигнала").Select(s => s.Value).FirstOrDefault();
                StaticBox.Sensors["Состояние дверей"]            = o_data.ResponseData.Objects.Where(f => f.SensorName == "Состояние дверей").Select(s => s.Value).FirstOrDefault();
                StaticBox.Sensors["Состояние контейнера"]        = o_data.ResponseData.Objects.Where(f => f.SensorName == "Состояние контейнера").Select(s => s.Value).FirstOrDefault();
                StaticBox.Sensors["Местоположение контейнера"]   = o_data.ResponseData.Objects.Where(f => f.SensorName == "Местоположение контейнера").Select(s => s.Value).FirstOrDefault();
            }
        }
예제 #4
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.activity_register);

            btn_register = FindViewById <Button>(Resource.Id.btn_register);
            s_first_name = FindViewById <EditText>(Resource.Id.s_first_name);
            s_last_name  = FindViewById <EditText>(Resource.Id.s_last_name);
            s_pass       = FindViewById <EditText>(Resource.Id.s_pass);
            s_pass_check = FindViewById <EditText>(Resource.Id.s_pass_check);
            s_email      = FindViewById <EditText>(Resource.Id.s_email);

            preloader = FindViewById <ProgressBar>(Resource.Id.loader);

            btn_back_a = FindViewById <ImageButton>(Resource.Id.btn_back_a);

            btn_back_a.Click += (s, e) =>
            {
                Finish();
            };

            string dir_path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);

            btn_register.Click += async delegate
            {
                try
                {
                    preloader.Visibility = Android.Views.ViewStates.Visible;

                    RegisterModel register = new RegisterModel
                    {
                        FirstName       = s_first_name.Text,
                        LastName        = s_last_name.Text,
                        Email           = s_email.Text,
                        Password        = s_pass.Text,
                        PasswordConfirm = s_pass_check.Text,
                        RoleName        = "user",
                    };

                    var myHttpClient = new HttpClient();
                    var uri          = new Uri(" http://iot-tmc-cen.1gb.ru/api/auth/register?email=" + register.Email + "&firstname=" + register.FirstName + "&lastname=" + register.LastName + "&password="******"&passwordconfirm=" + register.PasswordConfirm + "&rolename=" + register.RoleName);
                    var _authHeader  = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", register.FirstName, register.LastName, register.Password, register.PasswordConfirm, register.Email, register.RoleName))));


                    HttpResponseMessage response = await myHttpClient.PostAsync(uri.ToString(), new StringContent(JsonConvert.SerializeObject(register), Encoding.UTF8, "application/json"));

                    string s_result;
                    using (HttpContent responseContent = response.Content)
                    {
                        s_result = await responseContent.ReadAsStringAsync();
                    }

                    AuthApiData <AuthResponseData> o_data = JsonConvert.DeserializeObject <AuthApiData <AuthResponseData> >(s_result);

                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        if (o_data.Status == "0")
                        {
                            Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();

                            AuthResponseData o_user_data = new AuthResponseData();
                            o_user_data = o_data.ResponseData;

                            StaticUser.AddInfoAuth(o_user_data);

                            using (FileStream file = new FileStream(dir_path + "user_data.txt", FileMode.OpenOrCreate, FileAccess.Write))
                            {
                                // преобразуем строку в байты
                                byte[] array = Encoding.Default.GetBytes(JsonConvert.SerializeObject(o_user_data));
                                // запись массива байтов в файл
                                file.Write(array, 0, array.Length);
                            }


                            Intent Driver = new Intent(this, typeof(Auth.SensorParameters));
                            StartActivity(Driver);
                            this.Finish();

                            preloader.Visibility = Android.Views.ViewStates.Invisible;
                        }
                        else
                        {
                            Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Toast.MakeText(this, "" + ex.Message, ToastLength.Long).Show();
                }
            };
        }
예제 #5
0
            public override async void OnLocationResult(LocationResult result)
            {
                base.OnLocationResult(result);

                try
                {
                    StaticBox.Latitude  = result.LastLocation.Latitude;
                    StaticBox.Longitude = result.LastLocation.Longitude;
                    StaticBox.Signal    = 0;
                    StaticBox.Date      = DateTime.Now;



                    // Получаю информацию о клиенте.
                    BoxLocation gpsLocation = new BoxLocation
                    {
                        id     = StaticBox.SmartBoxId,
                        lat1   = StaticBox.Latitude,
                        lon1   = StaticBox.Longitude,
                        signal = StaticBox.Signal,
                        date   = StaticBox.Date
                    };



                    var myHttpClient = new HttpClient();
                    var uri          = new Uri("http://iot-tmc-cen.1gb.ru/api/container/setcontainerlocation?id=" + gpsLocation.id + "&lat1=" + gpsLocation.lat1 + "&lon1=" + gpsLocation.lon1 + "&signal=" + gpsLocation.signal + "&date=" + gpsLocation.date);
                    var uri2         = new Uri("http://81.177.136.11:8003/geo?id=" + gpsLocation.id + "&lat1=" + gpsLocation.lat1 + "&lon1=" + gpsLocation.lon1 + "&signal=" + gpsLocation.signal + "&date=" + gpsLocation.date);
                    //json структура.
                    var formContent = new FormUrlEncodedContent(new Dictionary <string, string>
                    {
                        { "Id", gpsLocation.id },
                        { "Lon1", gpsLocation.lon1.ToString() },
                        { "Lat1", gpsLocation.lat1.ToString() },
                        { "Signal", "0" },
                        { "Date", DateTime.Now.ToString() }
                    });

                    HttpResponseMessage response = await myHttpClient.PostAsync(uri.ToString(), formContent);// !!!!

                    HttpResponseMessage responseFromAnotherServer = await myHttpClient.PostAsync(uri2.ToString(), new StringContent(JsonConvert.SerializeObject(gpsLocation), Encoding.UTF8, "application/json"));

                    AuthApiData <BaseResponseObject> o_data = new AuthApiData <BaseResponseObject>();

                    string s_result;
                    using (HttpContent responseContent = response.Content)
                    {
                        s_result = await responseContent.ReadAsStringAsync();
                    }

                    string s_result_from_another_server;
                    using (HttpContent responseContent = responseFromAnotherServer.Content)
                    {
                        s_result_from_another_server = await responseContent.ReadAsStringAsync();
                    }

                    o_data = JsonConvert.DeserializeObject <AuthApiData <BaseResponseObject> >(s_result);
                }
                catch (Exception ex)
                {
                    throw;
                }
            }
예제 #6
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.activity_register);

            btn_register = FindViewById <Button>(Resource.Id.btn_register);
            s_first_name = FindViewById <EditText>(Resource.Id.s_first_name);
            s_last_name  = FindViewById <EditText>(Resource.Id.s_last_name);
            s_pass       = FindViewById <EditText>(Resource.Id.s_pass);
            s_pass_check = FindViewById <EditText>(Resource.Id.s_pass_check);
            s_email      = FindViewById <EditText>(Resource.Id.s_email);
            s_role_name  = FindViewById <Spinner>(Resource.Id.s_role_name);

            preloader = FindViewById <ProgressBar>(Resource.Id.loader);

            btn_back_a = FindViewById <ImageButton>(Resource.Id.btn_back_a);

            btn_back_a.Click += (s, e) =>
            {
                Finish();
            };

            s_role_name.Prompt        = "Выбор роли";
            s_role_name.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs>(Spinner_ItemSelected);
            var adapter = ArrayAdapter.CreateFromResource(this, Resource.Array.a_role, Android.Resource.Layout.SimpleSpinnerItem);

            adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            s_role_name.Adapter = adapter;


            string dir_path = "/storage/emulated/0/Android/data/GeoGeometry.GeoGeometry/files/";

            btn_register.Click += async delegate
            {
                try
                {
                    preloader.Visibility = Android.Views.ViewStates.Visible;

                    RegisterModel register = new RegisterModel
                    {
                        FirstName       = s_first_name.Text,
                        LastName        = s_last_name.Text,
                        Email           = s_email.Text,
                        Password        = s_pass.Text,
                        PasswordConfirm = s_pass_check.Text,
                    };
                    if (s_section_role == "Водитель")
                    {
                        register.RoleName = "driver";
                    }
                    else if (s_section_role == "Пользователь")
                    {
                        register.RoleName = "user";
                    }
                    var myHttpClient = new HttpClient();
                    var uri          = new Uri(" http://iot-tmc-cen.1gb.ru/api/auth/register?email=" + register.Email + "&firstname=" + register.FirstName + "&lastname=" + register.LastName + "&password="******"&passwordconfirm=" + register.PasswordConfirm + "&rolename=" + register.RoleName);
                    //var uri = "../register?email="+register.Email+"&firstname="+register.FirstName+"&lastname="+register.LastName+"&password="******"&passwordconfirm=" + register.PasswordConfirm +"&rolename=" + register.RoleName;
                    var _authHeader = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", register.FirstName, register.LastName, register.Password, register.PasswordConfirm, register.Email, register.RoleName))));

                    /*
                     * //json структура.
                     * var formContent = new FormUrlEncodedContent(new Dictionary<string, string>
                     * {
                     *  { "FirstName", register.FirstName },
                     *  { "LastName", register.LastName },
                     *  { "Email", register.Email },
                     *  { "Password", register.Password },
                     *  { "PasswordConfirm", register.PasswordConfirm }
                     * });
                     */

                    HttpResponseMessage response = await myHttpClient.PostAsync(uri.ToString(), new StringContent(JsonConvert.SerializeObject(register), Encoding.UTF8, "application/json"));

                    string s_result;
                    using (HttpContent responseContent = response.Content)
                    {
                        s_result = await responseContent.ReadAsStringAsync();
                    }

                    AuthApiData <AuthResponseData> o_data = JsonConvert.DeserializeObject <AuthApiData <AuthResponseData> >(s_result);

                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        if (o_data.Status == "0")
                        {
                            Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();

                            AuthResponseData o_user_data = new AuthResponseData();
                            o_user_data = o_data.ResponseData;

                            StaticUser.AddInfoAuth(o_user_data);

                            using (FileStream file = new FileStream(dir_path + "user_data.txt", FileMode.Create, FileAccess.Write))
                            {
                                // преобразуем строку в байты
                                byte[] array = Encoding.Default.GetBytes("0" + JsonConvert.SerializeObject(o_user_data));
                                // запись массива байтов в файл
                                file.Write(array, 0, array.Length);
                            }
                            if (register.RoleName == "driver")
                            {
                                Intent Driver = new Intent(this, typeof(Auth.DriverActivity));
                                StartActivity(Driver);
                                this.Finish();
                            }

                            /*else if(register.RoleName == "user")
                             *  {
                             *      Intent User = new Intent(this, typeof(Auth.UserActivity));
                             *      StartActivity(User);
                             *      this.Finish();
                             *  }
                             */
                            preloader.Visibility = Android.Views.ViewStates.Invisible;
                            // Переход на страницу выбора контейнера.
                            //Intent ContainerSelectionActivity = new Intent(this, typeof(Auth.ContainerSelection));
                            //StartActivity(ContainerSelectionActivity);
                            //this.Finish();
                        }
                        else
                        {
                            Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Toast.MakeText(this, "" + ex.Message, ToastLength.Long).Show();
                }
            };
        }
예제 #7
0
        /// <summary>
        /// Mobile Box New
        /// </summary>
        /// <param name="savedInstanceState"></param>
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.activity_auth);

            btn_register = FindViewById <Button>(Resource.Id.btn_register);
            btn_auth     = FindViewById <Button>(Resource.Id.btn_auth);
            btn_back_a   = FindViewById <ImageButton>(Resource.Id.btn_back_a);

            s_login     = FindViewById <EditText>(Resource.Id.s_login);
            s_pass      = FindViewById <EditText>(Resource.Id.s_pass);
            is_remember = FindViewById <CheckBox>(Resource.Id.is_remember);
            preloader   = FindViewById <ProgressBar>(Resource.Id.loader);


            btn_back_a.Click += (s, e) =>
            {
                Finish();
            };



            string dir_path           = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            string file_data_remember = "";
            // Проверяю запомнил ли пользователя.
            string check = CrossSettings.Current.GetValueOrDefault("check", "");

            if (check == "1")
            {
                s_login.Text = CrossSettings.Current.GetValueOrDefault("login", "");
                s_pass.Text  = CrossSettings.Current.GetValueOrDefault("password", "");
            }

            is_remember.Checked = true;



            //        if (file_data_remember.Substring(0, 1) == "1")
            //        {
            //preloader.Visibility = Android.Views.ViewStates.Visible;
            //file_data_remember = file_data_remember.Remove(0, 1);
            //            AuthResponseData o_data = JsonConvert.DeserializeObject<AuthResponseData>(file_data_remember);

            //            StaticUser.AddInfoAuth(o_data);

            //preloader.Visibility = Android.Views.ViewStates.Gone;

            //// Переход на главную страницу.
            //Intent homeActivity = new Intent(this, typeof(Home.HomeActivity));
            //            StartActivity(homeActivity);
            //            //this.Finish();
            //        }
            //        else
            //        {
            // Переход к форме регистрации.
            btn_register.Click += (s, e) =>
            {
                Intent registerActivity = new Intent(this, typeof(Auth.RegisterActivity));
                StartActivity(registerActivity);
            };

            btn_auth.Click += async delegate
            {
                try
                {
                    preloader.Visibility = Android.Views.ViewStates.Visible;
                    // Авторизируюсь клиентом.

                    AuthModel auth = new AuthModel
                    {
                        Email    = s_login.Text,
                        Password = s_pass.Text,
                    };



                    var myHttpClient = new HttpClient();
                    var _authHeader  = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", auth.Email, auth.Password))));

                    myHttpClient.DefaultRequestHeaders.Authorization = _authHeader;

                    var uri = new Uri("http://iot.tmc-centert.ru/api/auth/login?email=" + auth.Email + "&password="******"Email", auth.Email },
                     *  { "Password", auth.Password }
                     * });
                     */
                    // Поучаю ответ об авторизации [успех или нет]
                    HttpResponseMessage response = await myHttpClient.PostAsync(uri.ToString(), new StringContent(JsonConvert.SerializeObject(auth), Encoding.UTF8, "application/json"));

                    string s_result;
                    using (HttpContent responseContent = response.Content)
                    {
                        s_result = await responseContent.ReadAsStringAsync();
                    }

                    AuthApiData <AuthResponseData> o_data = JsonConvert.DeserializeObject <AuthApiData <AuthResponseData> >(s_result);


                    //ClearField();
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        if (o_data.Status == "0")
                        {
                            Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();

                            AuthResponseData o_user_data = new AuthResponseData();
                            o_user_data = o_data.ResponseData;

                            if (is_remember.Checked == true)
                            {
                                CrossSettings.Current.AddOrUpdateValue("check", "1");
                                CrossSettings.Current.AddOrUpdateValue("login", s_login.Text);
                                CrossSettings.Current.AddOrUpdateValue("password", s_pass.Text);
                            }
                            else
                            {
                                CrossSettings.Current.AddOrUpdateValue("check", "0");
                            }

                            StaticUser.Email = s_login.Text;
                            StaticUser.AddInfoAuth(o_user_data);

                            //пример ContainerSelection

                            //using (FileStream fs = new FileStream(dir_path + "user_data.txt", FileMode.OpenOrCreate))
                            //{
                            //    await System.Text.Json.JsonSerializer.SerializeAsync<AuthResponseData>(fs, o_user_data);
                            //}

                            using (FileStream file = new FileStream(dir_path + "user_data.txt", FileMode.OpenOrCreate, FileAccess.Write))
                            {
                                // преобразуем строку в байты
                                byte[] array = Encoding.Default.GetBytes(JsonConvert.SerializeObject(o_user_data));    // 0 связан с запоминанием
                                // запись массива байтов в файл
                                file.Write(array, 0, array.Length);
                            }

                            //var role = o_data.ResponseData.Role;
                            //Начинаю собирать информацию о клиенте
                            preloader.Visibility = Android.Views.ViewStates.Invisible;
                            // Переход на страницу водителя.
                            if (o_data.ResponseData.Role == "driver")
                            {
                                Intent Driver = new Intent(this, typeof(Auth.DriverActivity));
                                StartActivity(Driver);
                                this.Finish();
                            }
                            else if (o_data.ResponseData.Role == "user")
                            {
                                Intent UserActivity = new Intent(this, typeof(Auth.ActivityUserBox));
                                StartActivity(UserActivity);
                                this.Finish();
                            }
                        }
                        else
                        {
                            Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Toast.MakeText(this, "" + ex.Message, ToastLength.Long).Show();
                }
            };
        }
예제 #8
0
        private async void GetInfoAboutBox(string dir_path)
        {
            try
            {
                ContainerResponse container = new ContainerResponse();

                //извлечение данных контейнера из файла
                //using (FileStream fs = new FileStream(dir_path + "box_data.txt", FileMode.OpenOrCreate))
                //{
                //    container = await System.Text.Json.JsonSerializer.DeserializeAsync<ContainerResponse>(fs);
                //}

                //пример чтения данных с файла
                string file_data_remember;
                using (FileStream file = new FileStream(dir_path + "box_data.txt", FileMode.Open, FileAccess.Read))
                {
                    // преобразуем строку в байты
                    byte[] array = new byte[file.Length];
                    // считываем данные
                    file.Read(array, 0, array.Length);
                    // декодируем байты в строку
                    file_data_remember = Encoding.Default.GetString(array);
                    file.Close();
                }

                container = JsonConvert.DeserializeObject <ContainerResponse>(file_data_remember);

                string name = container.Name;//!!!!


                //if(s_payment.Text == "Оплачено")
                //{
                var myHttpClient = new HttpClient();

                var uri = new Uri("http://iot.tmc-centert.ru/api/container/getbox?id=" + container.SmartBoxId);
                HttpResponseMessage response = await myHttpClient.GetAsync(uri);

                AuthApiData <BoxDataResponse> o_data = new AuthApiData <BoxDataResponse>();

                string s_result;
                using (HttpContent responseContent = response.Content)
                {
                    s_result = await responseContent.ReadAsStringAsync();
                }

                o_data = JsonConvert.DeserializeObject <AuthApiData <BoxDataResponse> >(s_result);
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    if (o_data.Status == "0")
                    {
                        Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();
                        BoxDataResponse exported_data = new BoxDataResponse();
                        exported_data = o_data.ResponseData;

                        StaticBox.AddInfoBox(exported_data);
                        //добавляем инфу о найденном контейнере
                        //container_name.Text = exported_data.Name.ToString();
                        //container_name.Text = name;

                        s_temperature.Text  = exported_data.Temperature;
                        s_light.Text        = exported_data.Light.ToString();
                        s_humidity.Text     = exported_data.Wetness;
                        StaticBox.Longitude = exported_data.Longitude;
                        StaticBox.Latitude  = exported_data.Latitude;
                        s_longitude.Text    = StaticBox.Longitude.ToString();
                        s_latitude.Text     = StaticBox.Latitude.ToString();
                        //coordinates lat lon
                        s_weight.Text = "100.0";
                        //progressBar.Progress = 6;

                        Text3.Text = "ПИН-код доступа отобразится после оплаты";

                        //status_view.Text = "6. Ожидание выгрузки";
                        if (s_payment.Text == "Оплачено")
                        {
                            s_pin_access_code.Text = (exported_data.Code == null) ? "0000" : "1324";// !!!!
                        }
                        else
                        {
                            s_pin_access_code.Text = "****";
                        }
                        if (exported_data.IsOpenedDoor.ToString() == "true")
                        {
                            s_lock_unlock_door.Text = "разблокирована";
                        }
                        else
                        {
                            s_lock_unlock_door.Text = "заблокирована";
                        }
                        s_cost.Text = "39537.5";


                        //var boxState = s_open_close_container.Text;
                        //var doorState = s_lock_unlock_door.Text;
                    }
                    else
                    {
                        Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();
                    }
                }

                //else if(s_payment.Text == "Не оплачено")
                //{
                //    s_temperature.Text = "****";
                //    s_light.Text = "****";
                //    s_humidity.Text = "****";
                //    s_weight.Text = "****";
                //    s_pin_access_code.Text = "****";
                //    s_lock_unlock_door.Text = "****";
                //    s_cost.Text = "1000";
                //    container_name.Text = name;
                //    s_latitude.Text = "****";
                //    s_longitude.Text = "****";
                //}
            }
            catch (Exception ex)
            {
                Toast.MakeText(this, "" + ex.Message, ToastLength.Long).Show();
            }
        }
예제 #9
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            var options = new JsonSerializerOptions
            {
                WriteIndented = true
            };

            //Class which encapsulate webservices.

            /* var _autoCompleteService = new AutoCompleteService();
             *
             * _searchView = v.FindViewById<AutoCompleteTextView>(Resource.Id.SearchBox);
             *
             * _searchView.TextChanged += async (sender, e) =>
             * {
             *   try
             *   {
             *       //async call which fetch suggestin from webservices.
             *       var results = await _autoCompleteService.SearchSuggestionAsync(_searchView.Text);
             *       var adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, results.ToList());
             *       _searchView.Adapter = adapter;
             *   }
             *   catch
             *   {
             *   }
             * };
             *
             * _searchView.AfterTextChanged += (sender, e) =>
             * {
             *   if (!_searchView.IsPopupShowing && _searchView.Text.Length > 0)
             *   {
             *       _searchView.ShowDropDown();
             *   }
             * };
             *
             * SetContentView(Resource.Layout.Main);
             * ////////*/

            //setting the view for the Activity
            ////////
            SetContentView(Resource.Layout.activity_container_selection);
            //Get autoComplete1 AutoCompleteTextView and btn_Hello Button control from the Main.xaml Layout.

            box_name1       = FindViewById <AutoCompleteTextView>(Resource.Id.box_name1);
            box_selection   = FindViewById <Button>(Resource.Id.box_selection);
            btn_box_registr = FindViewById <Button>(Resource.Id.btn_box_registr);
            btn_back_a      = FindViewById <ImageButton>(Resource.Id.btn_back_a);
            preloader       = FindViewById <ProgressBar>(Resource.Id.preloader);

            string dir_path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            //string file_data_remember;
            //using (FileStream file = new FileStream(dir_path + "user_data.txt", FileMode.Open, FileAccess.Read))
            //{
            //        // преобразуем строку в байты
            //        byte[] array = new byte[file.Length];
            //        // считываем данные
            //        file.Read(array, 0, array.Length);
            //        // декодируем байты в строку
            //        file_data_remember = Encoding.Default.GetString(array);
            //        file.Close();
            // }

            var role = StaticUser.UserRole;

            //AuthResponseData user = JsonConvert.DeserializeObject<AuthResponseData>(file_data_remember);

            //if (role == "user")
            //{
            //    btn_box_registr.Visibility = ViewStates.Invisible;
            //}
            //else if(role == "driver")
            //{
            //    btn_box_registr.Visibility = ViewStates.Visible;
            //}

            //string array used for displayling AutoComplete Suggestion

            /*var names = new string[] { "Anoop", "Arjit", "Akshay", "Ankit", "Rakesh" };
             * //Use ArrayAdapter for filling the View in other words AutoCompleteTextView with the list of names(Array).
             * //Use SimpleSpinnerItem(Predefined layout in Android Resources) for displaying the dropdown list
             * ArrayAdapter adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleSpinnerItem, names);
             * box_name1.Adapter = adapter;*/

            ///////////

            /*SetContentView(Resource.Layout.activity_container_selection);
             *
             * box_name1 = FindViewById<AutoCompleteTextView>(Resource.Id.box_name1);
             * box_selection = FindViewById<Button>(Resource.Id.box_selection);
             * btn_back_a = FindViewById<ImageButton>(Resource.Id.btn_back_a);
             * preloader = FindViewById<ProgressBar>(Resource.Id.preloader);
             *
             * btn_back_a.Click += (s, e) =>
             * {
             *  Finish();
             * };*/
            box_name1.TextChanged += async(sender, e) =>
            {
                try
                {
                    //async call which fetch suggestin from webservices.
                    RegisterBoxModel register = new RegisterBoxModel
                    {
                        Name = box_name1.Text,
                    };

                    var myHttpClient = new HttpClient();

                    var uri = new Uri("http://iot.tmc-centert.ru/api/container/getboxesbyname?name=" + box_name1.Text);


                    HttpResponseMessage response = await myHttpClient.GetAsync(uri);

                    AuthApiData <ListResponse <ContainerResponse> > o_data = new AuthApiData <ListResponse <ContainerResponse> >();

                    string s_result;
                    using (HttpContent responseContent = response.Content)
                    {
                        s_result = await responseContent.ReadAsStringAsync();
                    }

                    o_data.ResponseData = new ListResponse <ContainerResponse>();
                    o_data = JsonConvert.DeserializeObject <AuthApiData <ListResponse <ContainerResponse> > >(s_result);
                    ListResponse <ContainerResponse> o_boxes_data = new ListResponse <ContainerResponse>();
                    o_boxes_data.Objects = o_data.ResponseData.Objects;

                    //StaticBox.AddInfoObjects(o_boxes_data);
                    //StaticBox.AddInfoObjects(o_boxes_data);
                    //запись в file


                    //using (FileStream fs = new FileStream(dir_path + "box_list.txt", FileMode.OpenOrCreate))
                    //{
                    //    await System.Text.Json.JsonSerializer.SerializeAsync<ListResponse<ContainerResponse>>(fs, o_boxes_data, options);
                    //}
                    //чтение данных с файла
                    //using (FileStream fs = new FileStream(dir_path + "box_list.txt", FileMode.OpenOrCreate))
                    //{
                    //    ListResponse<ContainerResponse> containers = await System.Text.Json.JsonSerializer.DeserializeAsync<ListResponse<ContainerResponse>>(fs);

                    //    var name = containers.Objects[0].Name;
                    //}

                    var boxes = o_data.ResponseData.Objects.Select(b => new BoxNames
                    {
                        Name = b.Name
                    }).ToList();

                    int      count  = boxes.Count();
                    string[] names1 = new string[count];

                    var name4 = box_selection.Text;

                    for (int i = 0; i < boxes.Count(); i++)
                    {
                        names1[i] = boxes[i].Name;
                    }

                    ArrayAdapter adapter1 = new ArrayAdapter <string>(this, Android.Resource.Layout.SimpleSpinnerItem, names1);
                    box_name1.Adapter = adapter1;
                }
                catch
                {
                }
            };

            //box_name1.AfterTextChanged += (sender, e) =>
            //{
            //    if (!box_name1.IsPopupShowing && box_name1.Text.Length > 0)
            //    {

            //        box_name1.ShowDropDown();
            //    }
            //};

            //SetContentView(Resource.Layout.activity_container_selection);

            box_selection.Click += async delegate
            {
                preloader.Visibility = Android.Views.ViewStates.Visible;
                box_selection.Click += btn_Submit_Click;

                /*
                 * XmlSerializer serializer = new XmlSerializer(typeof(ListResponse<ContainerResponse>));
                 * //Сериализация
                 * using (FileStream fs = new FileStream(dir_path + "box_list.xml", FileMode.OpenOrCreate))
                 *  serializer.Serialize(fs,);
                 * /*
                 * ListResponse<ContainerResponse> boxess = new ListResponse<ContainerResponse>();
                 * using (FileStream fs = new FileStream(dir_path + "box_list.txt", FileMode.OpenOrCreate))
                 * {
                 * await System.Text.Json.JsonSerializer.DeserializeAsync<ListResponse<ContainerResponse>>(fs);
                 * }
                 */
                /*
                 *
                 */



                //ListResponse<ContainerResponse> boxess = new ListResponse<ContainerResponse>();
                //var Res = ContainerSelection.DeserializeListResponse(dir_path + "box_list.txt");
                //if (Res!=null)
                //{
                //    boxess = Res;
                //}

                ContainerResponse box = new ContainerResponse();
                ListResponse <ContainerResponse> boxes = new ListResponse <ContainerResponse>();
                foreach (var box1 in StaticBox.Objects)
                {
                    boxes.Objects.Add(box1);
                }
                box = boxes.Objects.Where(f => f.Name == box_name1.Text).FirstOrDefault();

                //using (FileStream fs = new FileStream(dir_path + "box_list.txt", FileMode.OpenOrCreate))
                //{
                //    Objects = (ListResponse<ContainerResponse>)await System.Text.Json.JsonSerializer.DeserializeAsync<ListResponse<ContainerResponse>>(fs);
                //    box = Objects.Objects.Where(f => f.Name == box_name1.Text).FirstOrDefault();
                //}

                //using (FileStream fs = new FileStream(dir_path + "box_data.txt", FileMode.OpenOrCreate))
                //{
                //    await System.Text.Json.JsonSerializer.SerializeAsync<ContainerResponse>(fs, box);
                //}

                using (FileStream file = new FileStream(dir_path + "box_data.txt", FileMode.OpenOrCreate, FileAccess.Write))
                {
                    // преобразуем строку в байты
                    byte[] array = Encoding.Default.GetBytes(JsonConvert.SerializeObject(box));
                    // запись массива байтов в файл
                    file.Write(array, 0, array.Length);
                }


                //using (FileStream ddd = new FileStream(dir_path + "box_list.txt", FileMode.OpenOrCreate))
                //{

                //    await System.Text.Json.JsonSerializer.SerializeAsync<ContainerResponse>(ddd, box);

                //}
                //if (role == "driver")
                //{

                //}
                //else
                //{
                //    Intent UserBox = new Intent(this, typeof(Auth.ActivityUserBox));
                //    UserBox.PutExtra("idMethod", "2");// через объект идёт обращение к .
                //    StartActivity(UserBox);
                //}
                Intent Driver = new Intent(this, typeof(Auth.SensorParameters));
                Driver.PutExtra("idAction", "2");// через объект идёт обращение к .
                StartActivity(Driver);

                //var box_name = box_name1.Text;
                //var uri = "http://iot.tmc-centert.ru/api/container/getbox?id=" + id;
                //этот запрос делать в драйаавер активити
            };

            btn_box_registr.Click += async delegate
            {
                Intent ContainerRegisterActivity = new Intent(this, typeof(Auth.RegisterBoxActivity));
                StartActivity(ContainerRegisterActivity);
                this.Finish();
            };

            btn_back_a.Click += async delegate
            {
                Intent Driver = new Intent(this, typeof(Auth.SensorParameters));
                Driver.PutExtra("idAction", "2");// через объект идёт обращение к .
                StartActivity(Driver);
            };
        }
예제 #10
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.activity_registerbox);


            box_name        = FindViewById <EditText>(Resource.Id.box_name);
            btn_registerbox = FindViewById <Button>(Resource.Id.btn_registerbox);
            preloader       = FindViewById <ProgressBar>(Resource.Id.preloader);
            btn_back_a      = FindViewById <ImageButton>(Resource.Id.btn_back_a);

            btn_back_a.Click += (s, e) =>
            {
                Finish();
            };

            string dir_path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            string file_data_remember;


            btn_registerbox.Click += async delegate
            {
                try
                {
                    preloader.Visibility = Android.Views.ViewStates.Visible;

                    RegisterBoxModel register = new RegisterBoxModel
                    {
                        Name = box_name.Text,
                    };
                    var myHttpClient = new HttpClient();

                    var uri = new Uri("http://iot-tmc-cen.1gb.ru/api/container/create?name=" + register.Name);

                    //GetAsync
                    HttpResponseMessage response = await myHttpClient.PostAsync(uri.ToString(), new StringContent(JsonConvert.SerializeObject(register.Name), Encoding.UTF8, "application/json"));

                    string s_result;
                    using (HttpContent responseContent = response.Content)
                    {
                        s_result = await responseContent.ReadAsStringAsync();
                    }
                    AuthApiData <ContainerResponse> o_data = new AuthApiData <ContainerResponse>();
                    o_data = JsonConvert.DeserializeObject <AuthApiData <ContainerResponse> >(s_result);
                    //AuthApiData <ListResponse< ContainerResponse >> o_data
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        if (o_data.Status == "0")
                        {
                            Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();

                            //ListReponse<T>
                            ContainerResponse o_box_data = new ContainerResponse();
                            o_box_data = o_data.ResponseData;

                            StaticBox.AddInfoAuth(o_box_data);


                            //using (FileStream file = new FileStream(dir_path + "box_data.txt", FileMode.OpenOrCreate))
                            //{
                            //    // преобразуем строку в байты
                            //    byte[] array = Encoding.Default.GetBytes("0" + JsonConvert.SerializeObject(o_box_data));
                            //    // запись массива байтов в файл
                            //    file.Write(array, 0, array.Length);
                            //}
                            //using (FileStream fs = new FileStream(dir_path + "box_data.txt", FileMode.OpenOrCreate))
                            //{
                            //    await System.Text.Json.JsonSerializer.SerializeAsync<ContainerResponse>(fs,o_box_data);
                            //}

                            using (FileStream file = new FileStream(dir_path + "box_data.txt", FileMode.OpenOrCreate, FileAccess.Write))
                            {
                                // преобразуем строку в байты
                                byte[] array = Encoding.Default.GetBytes(JsonConvert.SerializeObject(o_box_data));
                                // запись массива байтов в файл
                                file.Write(array, 0, array.Length);
                            }
                            //using (FileStream fs = new FileStream(dir_path + "box_data.txt", FileMode.OpenOrCreate))
                            //{
                            //    ContainerResponse container = await System.Text.Json.JsonSerializer.DeserializeAsync<ContainerResponse>(fs);
                            //    var name = container.Name;
                            //}

                            preloader.Visibility = Android.Views.ViewStates.Invisible;

                            // Переход на страницу водителя.
                            Intent Driver = new Intent(this, typeof(Auth.DriverActivity));
                            Driver.PutExtra("idAction", "2");
                            StartActivity(Driver);
                        }
                        else
                        {
                            Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();
                        }
                    }
                    ClearField();
                }
                catch (Exception ex)
                {
                    Toast.MakeText(this, "" + ex.Message, ToastLength.Long).Show();
                }
            };

            /// <summary>
            /// Метод очистки полей.
            /// </summary>
            void ClearField()
            {
                box_name.Text = "";
            }
        }
예제 #11
0
        public static async Task <AuthApiData <BaseResponseObject> > EditBox()
        {
            try
            {
                var myHttpClient = new HttpClient();

                EditBoxViewModel ForAnotherServer = new EditBoxViewModel
                {
                    id = StaticBox.DeviceId,

                    Sensors = new Dictionary <string, string> {
                        ["Вес груза"]    = StaticBox.Sensors["Вес груза"],
                        ["Температура"]  = StaticBox.Sensors["Температура"],
                        ["Влажность"]    = StaticBox.Sensors["Влажность"],
                        ["Освещенность"] = StaticBox.Sensors["Освещенность"],
                        ["Уровень заряда аккумулятора"] = StaticBox.Sensors["Уровень заряда аккумулятора"],
                        ["Уровень сигнала"]             = StaticBox.Sensors["Уровень сигнала"],
                        ["Состояние дверей"]            = StaticBox.Sensors["Состояние дверей"],
                        ["Состояние контейнера"]        = StaticBox.Sensors["Состояние контейнера"],
                        ["Местоположение контейнера"]   = StaticBox.Sensors["Местоположение контейнера"]
                    },
                };


                var date = DateTime.Now;


                var uri = new Uri("http://iot.tmc-centert.ru/api/container/editsensors?date=" + date + "&id=" + CrossSettings.Current.GetValueOrDefault("id", "") + "&sensors[Вес груза]=" + StaticBox.Sensors["Вес груза"]
                                  + "&sensors[Температура]=" + StaticBox.Sensors["Температура"] + "&sensors[Влажность]=" + StaticBox.Sensors["Влажность"] + "&sensors[Освещенность]=" + StaticBox.Sensors["Освещенность"]
                                  + "&sensors[Уровень заряда аккумулятора]=" + StaticBox.Sensors["Уровень заряда аккумулятора"] + "&sensors[Уровень сигнала]=" + StaticBox.Sensors["Уровень сигнала"] + "&sensors[Состояние дверей]=" + StaticBox.Sensors["Состояние дверей"]
                                  + "&sensors[Состояние контейнера]=" + StaticBox.Sensors["Состояние контейнера"] + "&sensors[Местоположение контейнера]=" + StaticBox.Sensors["Местоположение контейнера"]);

                var uri2 = new Uri("http://smartboxcity.ru:8003/imitator/sensors?" + "id=" + StaticBox.DeviceId + "&sensors[Вес груза]=" + StaticBox.Sensors["Вес груза"]
                                   + "&sensors[Температура]=" + StaticBox.Sensors["Температура"] + "&sensors[Влажность]=" + StaticBox.Sensors["Влажность"] + "&sensors[Освещенность]=" + StaticBox.Sensors["Освещенность"]
                                   + "&sensors[Уровень заряда аккумулятора]=" + StaticBox.Sensors["Уровень заряда аккумулятора"] + "&sensors[Уровень сигнала]=" + StaticBox.Sensors["Уровень сигнала"] + "&sensors[Состояние дверей]=" + StaticBox.Sensors["Состояние дверей"]
                                   + "&sensors[Состояние контейнера]=" + StaticBox.Sensors["Состояние контейнера"] + "&sensors[Местоположение контейнера]=" + StaticBox.Sensors["Местоположение контейнера"]);


                var formContent = new FormUrlEncodedContent(new Dictionary <string, string>
                {
                    { "id", CrossSettings.Current.GetValueOrDefault("id", "") },
                    { "date", date.ToString() },
                    { "sensors[Вес груза]", StaticBox.Sensors["Вес груза"] },
                    { "sensors[Температура]", StaticBox.Sensors["Температура"] },
                    { "sensors[Влажность]", StaticBox.Sensors["Влажность"] },
                    { "sensors[Освещенность]", StaticBox.Sensors["Освещенность"] },
                    { "sensors[Уровень заряда аккумулятора]", StaticBox.Sensors["Уровень заряда аккумулятора"] },
                    { "sensors[Уровень сигнала]", StaticBox.Sensors["Уровень сигнала"] },
                    { "sensors[Состояние дверей]", StaticBox.Sensors["Состояние дверей"] },
                    { "sensors[Состояние контейнера]", StaticBox.Sensors["Состояние контейнера"] },
                    { "sensors[Местоположение контейнера]", StaticBox.Sensors["Местоположение контейнера"] }
                });

                //EditBoxViewModel box = new EditBoxViewModel
                //{
                //    id = CrossSettings.Current.GetValueOrDefault("id", ""),
                //    date = date,
                //    Sensors = new Dictionary<string, string>
                //    {
                //        {"Температура",StaticBox.Sensors["Температура"] },
                //        {"Влажность",StaticBox.Sensors["Влажность"] },
                //        {"Освещенность",StaticBox.Sensors["Освещенность"] },
                //        {"Вес груза",StaticBox.Sensors["Вес груза"] },
                //        {"Уровень заряда аккумулятора",StaticBox.Sensors["Уровень заряда аккумулятора"]},
                //        {"Уровень сигнала",StaticBox.Sensors["Уровень сигнала"]},
                //        {"Состояние дверей",StaticBox.Sensors["Состояние дверей"]},
                //        {"Состояние контейнера",StaticBox.Sensors["Состояние контейнера"]},
                //        {"Местоположение контейнера",StaticBox.Sensors["Местоположение контейнера"]}
                //    }
                //};

                //var data = new StringContent(JsonConvert.SerializeObject(box));
                //HttpResponseMessage response = await myHttpClient.PostAsync(uri.ToString(), formContent);
                HttpResponseMessage responseFromAnotherServer = await myHttpClient.PostAsync(uri2.ToString(), new StringContent(JsonConvert.SerializeObject(ForAnotherServer), Encoding.UTF8, "application/json"));

                AuthApiData <BaseResponseObject> o_data = new AuthApiData <BaseResponseObject>();

                //string s_result;
                //using (HttpContent responseContent = response.Content)
                //{
                //    s_result = await responseContent.ReadAsStringAsync();
                //}

                string s_result_from_server;
                using (HttpContent responseContent = responseFromAnotherServer.Content)
                {
                    s_result_from_server = await responseContent.ReadAsStringAsync();
                }

                if (responseFromAnotherServer.IsSuccessStatusCode)
                {
                    StaticBox.CreatedAtSensors = date;
                    o_data = JsonConvert.DeserializeObject <AuthApiData <BaseResponseObject> >(s_result_from_server);
                }
                else
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result_from_server);
                    o_data.Message = error.Errors[0];
                    o_data.Status  = responseFromAnotherServer.StatusCode.ToString();
                }

                return(o_data);
            }
            catch (Exception ex)
            {
                AuthApiData <BaseResponseObject> result = new AuthApiData <BaseResponseObject>();
                result.Status  = "1";
                result.Message = ex.Message;
                return(result);
            }
        }
예제 #12
0
        /// <summary>
        /// сбор информации о контейнере
        /// </summary>
        /// <param name="dir_path"></param>
        private async void GetInfoAboutBox(string dir_path)
        {
            try
            {
                ContainerResponse container = new ContainerResponse();

                //извлечение данных контейнера из файла
                //using (FileStream fs = new FileStream(dir_path + "box_data.txt", FileMode.OpenOrCreate))
                //{
                //    container = await System.Text.Json.JsonSerializer.DeserializeAsync<ContainerResponse>(fs);
                //}

                //пример чтения данных с файла
                string file_data_remember;
                using (FileStream file = new FileStream(dir_path + "box_data.txt", FileMode.Open, FileAccess.Read))
                {
                    // преобразуем строку в байты
                    byte[] array = new byte[file.Length];
                    // считываем данные
                    file.Read(array, 0, array.Length);
                    // декодируем байты в строку
                    file_data_remember = Encoding.Default.GetString(array);
                    file.Close();
                }

                container = JsonConvert.DeserializeObject <ContainerResponse>(file_data_remember);


                var myHttpClient = new HttpClient();

                var uri = new Uri("http://iot.tmc-centert.ru/api/container/getbox?id=" + container.SmartBoxId);
                HttpResponseMessage response = await myHttpClient.GetAsync(uri);

                AuthApiData <BoxDataResponse> o_data = new AuthApiData <BoxDataResponse>();

                string s_result;
                using (HttpContent responseContent = response.Content)
                {
                    s_result = await responseContent.ReadAsStringAsync();
                }

                o_data = JsonConvert.DeserializeObject <AuthApiData <BoxDataResponse> >(s_result);// !!!!
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    if (o_data.Status == "0")
                    {
                        Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();
                        BoxDataResponse exported_data = new BoxDataResponse();
                        exported_data = o_data.ResponseData;


                        StaticBox.AddInfoBox(exported_data);
                        //добавляем инфу о найденном контейнере
                        container_name.Text         = container.Name;
                        s_open_close_container.Text = /*(exported_data.IsOpenedBox == false) ? "закрыт" : "раскрыт";*/ "открыт";
                        //s_weight.Text = exported_data.Weight.Replace(",",".");
                        s_weight.Text           = "100.0";
                        s_lock_unlock_door.Text = (exported_data.IsOpenedDoor == false) ? "заблокирована" : "разблокирована";
                        //progressBar.Progress = 6;
                        //status_view.Text = "6. Ожидание выгрузки";
                        var boxState  = s_open_close_container.Text;
                        var doorState = s_lock_unlock_door.Text;

                        if (exported_data.BoxState == ContainerState.onBase)
                        {
                            a_situation = "На складе";
                        }
                        else if (exported_data.BoxState == ContainerState.onCar)
                        {
                            a_situation = "На автомобиле";
                        }
                        else if (exported_data.BoxState == ContainerState.onConsignee)
                        {
                            a_situation = "Выгруженным у грузоотправителя";
                        }
                        else if (exported_data.BoxState == ContainerState.onShipper)
                        {
                            a_situation = "После разгрузки у грузополучателя";
                        }

                        s_temperature.Text        = exported_data.Temperature.Replace(",", ".");
                        s_light.Text              = exported_data.Light.ToString();
                        s_humidity.Text           = exported_data.Wetness.Replace(",", ".");
                        s_battery.Text            = exported_data.BatteryPower.Replace(",", ".");
                        btn_lock_unlock_door.Text = "Заблокировать/Разблокировать";
                        s_signal_strength.Text    = "Хороший";
                    }
                    else
                    {
                        Toast.MakeText(this, o_data.Message, ToastLength.Long).Show();
                    }
                }
            }
            catch (Exception ex)
            {
                Toast.MakeText(this, "" + ex.Message, ToastLength.Long).Show();
            }
        }
예제 #13
0
            public override async void OnLocationResult(LocationResult result)
            {
                base.OnLocationResult(result);

                try
                {
                    if (result == null)
                    {
                        return;
                    }
                    StaticBox.Latitude  = result.LastLocation.Latitude;
                    StaticBox.Longitude = result.LastLocation.Longitude;

                    s_longitude.Text = result.LastLocation.Latitude.ToString();
                    s_latitude.Text  = result.LastLocation.Longitude.ToString();
                    s_date_time.Text = DateTime.Now.ToString();

                    // Получаю информацию о клиенте.
                    BoxLocation gpsLocation = new BoxLocation
                    {
                        id   = StaticBox.DeviceId,
                        lat1 = result.LastLocation.Latitude.ToString().Replace(",", "."),
                        lon1 = result.LastLocation.Longitude.ToString().Replace(",", "."),
                        date = DateTime.Now,
                    };

                    int signal = 0;

                    var myHttpClient = new HttpClient();
                    // var uri = new Uri("http://iot-tmc-cen.1gb.ru/api/container/setcontainerlocation?id=" + gpsLocation.id + "&lat1=" + gpsLocation.lat1 + "&lon1=" + gpsLocation.lon1 + "&date=" + gpsLocation.date);
                    var uri2 = new Uri("http://smartboxcity.ru:8003/imitator/geo");


                    //json структура.
                    FormUrlEncodedContent formUrlEncodedContent = new FormUrlEncodedContent(new Dictionary <string, string>
                    {
                        { "Id", gpsLocation.id },
                        { "Lon1", gpsLocation.lon1.ToString().Replace(",", ".") },
                        { "Lat1", gpsLocation.lat1.ToString().Replace(",", ".") },
                        { "Date", DateTime.Now.ToString() }
                    });
                    var formContent = formUrlEncodedContent;

                    // HttpResponseMessage response = await myHttpClient.PostAsync(uri.ToString(), formContent);// !!!!
                    HttpResponseMessage responseFromAnotherServer = await myHttpClient.PostAsync(uri2.ToString(), formContent);

                    AuthApiData <BaseResponseObject> o_data = new AuthApiData <BaseResponseObject>();

                    //string s_result;
                    //using (HttpContent responseContent = response.Content)
                    //{
                    //    s_result = await responseContent.ReadAsStringAsync();
                    //}

                    string s_result_from_another_server;
                    using (HttpContent responseContent = responseFromAnotherServer.Content)
                    {
                        s_result_from_another_server = await responseContent.ReadAsStringAsync();
                    }

                    if (responseFromAnotherServer.IsSuccessStatusCode)
                    {
                        o_data = JsonConvert.DeserializeObject <AuthApiData <BaseResponseObject> >(s_result_from_another_server);
                        Toast.MakeText(Application.Context, o_data.Message, ToastLength.Short).Show();
                    }
                    else
                    {
                        ErrorResponseObject error = new ErrorResponseObject();
                        error = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result_from_another_server);
                        Toast.MakeText(Application.Context, error.Errors[0], ToastLength.Short).Show();
                    }
                }
                catch (Exception ex)
                {
                    Toast.MakeText(Application.Context, ex.Message, ToastLength.Short).Show();
                }
            }
예제 #14
0
        //protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        //{
        //    base.OnActivityResult(requestCode, resultCode, data);

        //    if (requestCode == 1)
        //    {
        //        if (resultCode == Result.Ok)
        //        {
        //            data.GetMediaFileExtraAsync(this).ContinueWith(t =>
        //            {
        //                using (Android.Graphics.Bitmap bmp = loadAndResizeBitmap(t.Result.Path))
        //                {
        //                    StaticBox.CameraOpenOrNo = 0;
        //                    if (bmp != null)
        //                        photobox.SetImageBitmap(bmp);
        //                }

        //            }, TaskScheduler.FromCurrentSynchronizationContext());
        //        }
        //    }
        //}
        protected override async void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            Android.Graphics.Bitmap bitmap = null;
            StaticBox.CameraOpenOrNo = 0;
            //If user did not take a photeo , he will get result of bitmap, it is null
            try
            {
                bitmap = (Android.Graphics.Bitmap)data.Extras.Get("data");
            }
            catch (System.Exception e)
            {
                Log.Error("TakePhotoDemo1", e.Message);
                Toast.MakeText(this, "Не удалось загрузить фото", ToastLength.Short).Show();
            }

            if (bitmap != null)
            {
                byte[] bitmapData;
                var    stream = new MemoryStream();
                bitmap.Compress(Android.Graphics.Bitmap.CompressFormat.Png, 0, stream);
                bitmapData = stream.ToArray();
                var fileContent = new ByteArrayContent(bitmapData);
                fileContent.Headers.ContentType        = MediaTypeHeaderValue.Parse("application/octet-stream");
                fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
                {
                    Name     = "file",
                    FileName = StaticBox.DeviceId + "." + DateTime.Now + ".jpg"
                };
                string boundary = "---8d0f01e6b3b5dafaaadaad";
                MultipartFormDataContent multipartContent = new MultipartFormDataContent(boundary);
                multipartContent.Add(fileContent);

                try
                {
                    HttpClient          httpClient = new HttpClient();
                    var                 uri        = new Uri("http://smartboxcity.ru:8003/imitator/media?file=" + bitmap);
                    HttpResponseMessage response   = await httpClient.PostAsync(uri.ToString(), multipartContent);

                    if (response.IsSuccessStatusCode)
                    {
                        string content = await response.Content.ReadAsStringAsync();

                        AuthApiData <BaseResponseObject> result = new AuthApiData <BaseResponseObject>();
                        result = JsonConvert.DeserializeObject <AuthApiData <BaseResponseObject> >(content);
                        Toast.MakeText(this, result.Message, ToastLength.Short).Show();
                    }
                }
                catch (System.Exception e)
                {
                    Toast.MakeText(this, "Не удалось загрузить фото на сервер. " + e.Message, ToastLength.Short).Show();
                }

                //var myHttpClient = new HttpClient();
                //
                //HttpResponseMessage responseFromAnotherServer = await myHttpClient.PostAsync(uri.ToString(), bitmap);
                //string s_result_from_another_server;
                //using (HttpContent responseContent = responseFromAnotherServer.Content)
                //{
                //    s_result_from_another_server = await responseContent.ReadAsStringAsync();
                //}
                var basePath = Android.App.Application.Context.GetExternalFilesDir(null).AbsolutePath;
                var path     = MediaStore.Images.Media.InsertImage(ContentResolver, bitmap, "screen", "shot");
                if (path != null)
                {
                    var uriPath  = Android.Net.Uri.Parse(path);
                    var realPath = GetRealPathFromURI(uriPath);
                    bitmap = loadAndResizeBitmap(realPath);
                    photobox.SetImageBitmap(bitmap);
                }
                else
                {
                    Toast.MakeText(this, "Не удалось загрузить фото. Скорее всего, нет разрешеия на доступ к галерее", ToastLength.Short).Show();
                }
            }
            else
            {
                Toast.MakeText(this, "Не удалось загрузить фото", ToastLength.Short).Show();
            }
        }
예제 #15
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            //Class which encapsulate webservices.

            /* var _autoCompleteService = new AutoCompleteService();
             *
             * _searchView = v.FindViewById<AutoCompleteTextView>(Resource.Id.SearchBox);
             *
             * _searchView.TextChanged += async (sender, e) =>
             * {
             *   try
             *   {
             *       //async call which fetch suggestin from webservices.
             *       var results = await _autoCompleteService.SearchSuggestionAsync(_searchView.Text);
             *       var adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, results.ToList());
             *       _searchView.Adapter = adapter;
             *   }
             *   catch
             *   {
             *   }
             * };
             *
             * _searchView.AfterTextChanged += (sender, e) =>
             * {
             *   if (!_searchView.IsPopupShowing && _searchView.Text.Length > 0)
             *   {
             *       _searchView.ShowDropDown();
             *   }
             * };
             *
             * SetContentView(Resource.Layout.Main);
             * ////////*/

            //setting the view for the Activity
            ////////
            SetContentView(Resource.Layout.activity_container_selection);
            //Get autoComplete1 AutoCompleteTextView and btn_Hello Button control from the Main.xaml Layout.

            box_name1       = FindViewById <AutoCompleteTextView>(Resource.Id.box_name1);
            box_selection   = FindViewById <Button>(Resource.Id.box_selection);
            btn_box_registr = FindViewById <Button>(Resource.Id.btn_box_registr);
            btn_back_a      = FindViewById <ImageButton>(Resource.Id.btn_back_a);
            preloader       = FindViewById <ProgressBar>(Resource.Id.preloader);

            string dir_path = "/storage/emulated/0/Android/data/GeoGeometry.GeoGeometry/files/";

            //string array used for displayling AutoComplete Suggestion

            /*var names = new string[] { "Anoop", "Arjit", "Akshay", "Ankit", "Rakesh" };
             * //Use ArrayAdapter for filling the View in other words AutoCompleteTextView with the list of names(Array).
             * //Use SimpleSpinnerItem(Predefined layout in Android Resources) for displaying the dropdown list
             * ArrayAdapter adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleSpinnerItem, names);
             * box_name1.Adapter = adapter;*/


            ///////////

            /*SetContentView(Resource.Layout.activity_container_selection);
             *
             * box_name1 = FindViewById<AutoCompleteTextView>(Resource.Id.box_name1);
             * box_selection = FindViewById<Button>(Resource.Id.box_selection);
             * btn_back_a = FindViewById<ImageButton>(Resource.Id.btn_back_a);
             * preloader = FindViewById<ProgressBar>(Resource.Id.preloader);
             *
             * btn_back_a.Click += (s, e) =>
             * {
             *  Finish();
             * };*/
            box_name1.TextChanged += async(sender, e) =>
            {
                try
                {
                    //async call which fetch suggestin from webservices.
                    RegisterBoxModel register = new RegisterBoxModel
                    {
                        Name = box_name1.Text,
                    };

                    var myHttpClient = new HttpClient();

                    var uri = ("http://iot.tmc-centert.ru/api/container/getboxesbyname?name=" + box_name1.Text);


                    HttpResponseMessage response = await myHttpClient.GetAsync(uri);

                    AuthApiData <ListResponse <ContainerResponse> > o_data = new AuthApiData <ListResponse <ContainerResponse> >();

                    string s_result;
                    using (HttpContent responseContent = response.Content)
                    {
                        s_result = await responseContent.ReadAsStringAsync();
                    }

                    o_data = JsonConvert.DeserializeObject <AuthApiData <ListResponse <ContainerResponse> > >(s_result);
                    var o_boxes_data = o_data.ResponseData;
                    StaticBox.AddInfoObjects(o_boxes_data);

                    //запись в файл
                    using (FileStream fs = new FileStream(dir_path + "box_list.txt", FileMode.OpenOrCreate))
                    {
                        await System.Text.Json.JsonSerializer.SerializeAsync <ListResponse <ContainerResponse> >(fs, o_boxes_data);
                    }
                    //чтение данных с файла
                    using (FileStream fs = new FileStream(dir_path + "box_list.txt", FileMode.OpenOrCreate))
                    {
                        ListResponse <ContainerResponse> containers = await System.Text.Json.JsonSerializer.DeserializeAsync <ListResponse <ContainerResponse> >(fs);

                        var name = containers.Objects[0].Name;
                    }

                    var boxes = o_data.ResponseData.Objects.Select(b => new BoxNames
                    {
                        Name = b.Name
                    }).ToList();

                    int      count  = boxes.Count();
                    string[] names1 = new string[count];

                    for (int i = 0; i < boxes.Count(); i++)
                    {
                        names1[i] = boxes[i].Name;
                    }

                    ArrayAdapter adapter1 = new ArrayAdapter <string>(this, Android.Resource.Layout.SimpleSpinnerItem, names1);
                    box_name1.Adapter = adapter1;
                }
                catch
                {
                }
            };

            //box_name1.AfterTextChanged += (sender, e) =>
            //{
            //    if (!box_name1.IsPopupShowing && box_name1.Text.Length > 0)
            //    {

            //        box_name1.ShowDropDown();
            //    }
            //};

            //SetContentView(Resource.Layout.activity_container_selection);

            box_selection.Click += async delegate
            {
                preloader.Visibility = Android.Views.ViewStates.Visible;
                box_selection.Click += btn_Submit_Click;

                /*
                 * XmlSerializer serializer = new XmlSerializer(typeof(ListResponse<ContainerResponse>));
                 * //Сериализация
                 * using (FileStream fs = new FileStream(dir_path + "box_list.xml", FileMode.OpenOrCreate))
                 *  serializer.Serialize(fs,);
                 * /*
                 * ListResponse<ContainerResponse> boxess = new ListResponse<ContainerResponse>();
                 * using (FileStream fs = new FileStream(dir_path + "box_list.txt", FileMode.OpenOrCreate))
                 * {
                 * await System.Text.Json.JsonSerializer.DeserializeAsync<ListResponse<ContainerResponse>>(fs);
                 * }
                 */
                /*
                 *
                 */



                ListResponse <ContainerResponse> boxess = new ListResponse <ContainerResponse>();
                var Res = ContainerSelection.DeserializeListResponse(dir_path + "box_list.txt");
                if (Res != null)
                {
                    boxess = Res;
                }

                var name = box_selection.Text;
                var uri  = "http://iot.tmc-centert.ru/api/container/getbox?id=" + box_selection.Id;
            };

            btn_box_registr.Click += async delegate
            {
                Intent ContainerRegisterActivity = new Intent(this, typeof(Auth.RegisterBoxActivity));
                StartActivity(ContainerRegisterActivity);
                this.Finish();
            };
        }