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); }
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(); } }
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(); } }
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(); } }; }
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; } }
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(); } }; }
/// <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(); } }; }
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(); } }
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); }; }
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 = ""; } }
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); } }
/// <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(); } }
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(); } }
//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(); } }
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(); }; }