Пример #1
0
        private ActionResult <IResponseObject> UserCreationConflict(string errorDetail)
        {
            ErrorResponseObject errorResponse = _responseObjectFactory
                                                .CreateErrorResponseObject(HttpStatusCode.Conflict, UserCreationErrorTitle, errorDetail);

            return(Conflict(errorResponse));
        }
Пример #2
0
        /// <summary>
        /// Выход.
        /// </summary>
        /// <returns></returns>
        public static async Task LogOut()
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync($"logout");

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


                if (response.StatusCode == System.Net.HttpStatusCode.BadRequest)
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                }
            }
            catch (Exception ex)
            {
                ErrorResponseObject error = new ErrorResponseObject();
                error.Errors[0] = ex.Message;
            }
        }
Пример #3
0
        private ActionResult <IResponseObject> LoginError(string errorTitle, string errorDetail)
        {
            ErrorResponseObject errorResponse = _responseObjectFactory
                                                .CreateErrorResponseObject(HttpStatusCode.BadRequest, errorTitle, errorDetail);

            return(BadRequest(errorResponse));
        }
Пример #4
0
        /// <summary>
        /// Получение соглашения.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <AgreementResponse> > Privacy()
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync($"agreement/privacy");

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

                ServiceResponseObject <AgreementResponse> o_data = new ServiceResponseObject <AgreementResponse>();
                if (response.StatusCode == System.Net.HttpStatusCode.BadRequest)
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }
                var message = JsonConvert.DeserializeObject <AgreementResponse>(s_result);
                o_data.ResponseData = message;
                o_data.Message      = "Успешно!";
                o_data.Status       = response.StatusCode;
                return(o_data);
            }
            catch (Exception ex)
            {
                ServiceResponseObject <AgreementResponse> o_data = new ServiceResponseObject <AgreementResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #5
0
        /// <summary>
        /// Получение предварительной стоимости заказа
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <AmountResponse> > GetOrderPrice(MakeOrderModel model)
        {
            try
            {
                #region Пример HttpWebRequest
                //HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://smartboxcity.ru:8003/order/rate?inception_lat=" + model.inception_lat + "&inception_lng=" + model.inception_lng + "&destination_lat=" + model.destination_lat + "&destination_lng=" + model.destination_lng + "&weight=" + model.weight + "&qty=" + model.qty + "&cargo_type=" + model.cargo_type + "&cargo_class=" + model.cargo_class + "&insurance=" + model.insurance);
                //request.Method = "GET";

                //var myHttpWebResponse = (HttpWebResponse)request.GetResponse();

                //Stream responseStream = myHttpWebResponse.GetResponseStream();

                //StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default);

                //string s_result = myStreamReader.ReadToEnd();

                //myStreamReader.Close();
                //responseStream.Close();

                //myHttpWebResponse.Close();
                #endregion
                HttpResponseMessage response = await _httpClient.GetAsync($"order/rate?inception_lat={model.inception_lat}" +
                                                                          $"&inception_lng={model.inception_lng}" +
                                                                          $"&destination_lat={model.destination_lat}&" +
                                                                          $"destination_lng={model.destination_lng}&" +
                                                                          $"weight={model.weight}&qty={model.qty}&" +
                                                                          $"cargo_type={model.cargo_type}&" +
                                                                          $"cargo_class={model.cargo_class}&" +
                                                                          $"insurance={model.insurance}");

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

                ServiceResponseObject <AmountResponse> o_data = new ServiceResponseObject <AmountResponse>();
                if (response.StatusCode == System.Net.HttpStatusCode.BadRequest)
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }
                o_data.ResponseData = JsonConvert.DeserializeObject <AmountResponse>(s_result);
                o_data.Message      = "Успешно!";
                o_data.Status       = response.StatusCode;
                return(o_data);
            }
            catch (Exception ex)
            {
                ServiceResponseObject <AmountResponse> o_data = new ServiceResponseObject <AmountResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #6
0
        /// <summary>
        /// Отправить заказ на следующий этап исполнения заказ.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <SuccessResponse> > TransmitOrder(string order_id, string for_date, string for_time)
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync($"order/{order_id}/transmit?for_date={for_date}&for_time={for_time}");

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

                ServiceResponseObject <SuccessResponse> o_data = new ServiceResponseObject <SuccessResponse>();
                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    throw new Exception("Внутренняя ошибка сервера 500");
                }

                case HttpStatusCode.NotFound:
                {
                    throw new Exception("Ресурс не найден 404");
                }

                case HttpStatusCode.OK:
                {
                    var message = JsonConvert.DeserializeObject <SuccessResponse>(s_result);
                    o_data.Message = message.Message;
                    o_data.Status  = response.StatusCode;
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }
            catch (Exception ex)
            {
                ServiceResponseObject <SuccessResponse> o_data = new ServiceResponseObject <SuccessResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #7
0
        private async void MakeRequestAlarm()
        {
            var myHttpClient = new HttpClient();
            var uri          = new Uri("http://smartboxcity.ru:8003/imitator/" + StaticBox.DeviceId + "/alarm/" +
                                       CrossSettings.Current.GetValueOrDefault("AlermId", "") + "/raise");
            HttpResponseMessage response = await myHttpClient.GetAsync(uri.ToString());

            string s_result;

            using (HttpContent responseContent = response.Content)
            {
                s_result = await responseContent.ReadAsStringAsync();
            }
            if (response.IsSuccessStatusCode)
            {
                AlarmResponse o_data = new AlarmResponse();
                o_data = JsonConvert.DeserializeObject <AlarmResponse>(s_result);

                if (o_data.Message == "Угроза имитатора изменена")
                {
                    btn_cause_alarm.Text = "Отменить тревогу";
                }
                Android.App.AlertDialog.Builder alert = new Android.App.AlertDialog.Builder(this);
                alert.SetTitle("Тревоги");
                alert.SetMessage(o_data.Message);
                alert.SetPositiveButton("Закрыть", (senderAlert1, args1) =>
                {
                });
                Dialog dialog1 = alert.Create();
                dialog1.Show();
            }
            else
            {
                ErrorResponseObject error = new ErrorResponseObject();
                error = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                Toast.MakeText(this, error.Errors[0], ToastLength.Long).Show();
            }
        }
Пример #8
0
        /// <summary>
        /// Вход с использованием токена.
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public static async Task Login(string token)
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync($"login?login={token}&password=");

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

                if (response.StatusCode == System.Net.HttpStatusCode.BadRequest)
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #9
0
        /// <summary>
        /// Регистрация юридического лица.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <RegisterResponse> > RegisterLegal(RegisterLegalModel model)
        {
            try
            {
                //status & message
                var formContent = new FormUrlEncodedContent(new Dictionary <string, string>
                {
                    { "login", model.Login },
                    { "password", model.Password },
                    { "email", model.Email },
                    { "org_phone", model.OrgPhone },
                    { "client_type", model.ClientType },
                    { "client_last_name", model.ClientLastName },
                    { "client_name", model.ClientName },
                    { "client_patronymic", model.ClientPatronymic },
                    { "org_postal_address", model.OrgPostalAddress },
                    { "org_name", model.OrgName },
                    { "org_kpp", model.OrgKpp },
                    { "org_inn", model.OrgInn },
                    { "org_ogrn", model.OrgOgrn },
                    { "org_bank", model.OrgBank },
                    { "org_bank_payment", model.OrgBankpayment },
                    { "org_bank_correspondent", model.OrgBankCorrespondent },
                    { "org_bank_bik", model.OrgBankBik },
                    { "org_legal_address", model.OrgLegalAddress }
                });

                HttpResponseMessage response = await _httpClient.PostAsync($"client", formContent);

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

                ServiceResponseObject <RegisterResponse> o_data = new ServiceResponseObject <RegisterResponse>();

                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    o_data.Status  = response.StatusCode;
                    o_data.Message = "Внутренняя ошибка сервера 500";
                    return(o_data);
                }

                case HttpStatusCode.NotFound:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    o_data.Status  = response.StatusCode;
                    o_data.Message = "Ресурс не найден 404";
                    return(o_data);
                }

                case HttpStatusCode.OK:
                {
                    var register = JsonConvert.DeserializeObject <RegisterResponse>(s_result);
                    o_data.Message      = register.message;
                    o_data.Status       = response.StatusCode;
                    o_data.ResponseData = new RegisterResponse
                    {
                        message = register.message,
                        user    = register.user
                    };
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }
            catch (Exception ex)
            {
                ServiceResponseObject <RegisterResponse> o_data = new ServiceResponseObject <RegisterResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #10
0
        /// <summary>
        /// Получение данных заказа.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <OrderObjectResponse <OrderParameters, SensorResponse, StageResponse> > > GetSensorParameters(string ORDER_ID)
        {
            try
            {
                var authValue = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{CrossSettings.Current.GetValueOrDefault("token", "")}:")));

                HttpClient client = new HttpClient
                {
                    BaseAddress           = new Uri(URL),
                    DefaultRequestHeaders = { Authorization = authValue }
                };

                HttpResponseMessage response = await client.GetAsync($"unit/?UNIT_VIEW=index&ORDER_ID={ORDER_ID}");

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

                ServiceResponseObject <OrderObjectResponse <OrderParameters, SensorResponse, StageResponse> > o_data = new ServiceResponseObject <OrderObjectResponse <OrderParameters, SensorResponse, StageResponse> >();
                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    throw new Exception("Внутренняя ошибка сервера 500");
                }

                case HttpStatusCode.NotFound:
                {
                    throw new Exception("Ресурс не найден 404");
                }

                case HttpStatusCode.OK:
                {
                    var order = JsonConvert.DeserializeObject <OrderObjectResponse <OrderParameters, SensorResponse, StageResponse> >(s_result);
                    o_data.Message      = "Успешно!";
                    o_data.Status       = response.StatusCode;
                    o_data.ResponseData = JsonConvert.DeserializeObject <OrderObjectResponse <OrderParameters, SensorResponse, StageResponse> >(s_result);
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }//can not access to close stream
            catch (Exception ex)
            {
                ServiceResponseObject <OrderObjectResponse <OrderParameters, SensorResponse, StageResponse> > o_data = new ServiceResponseObject <OrderObjectResponse <OrderParameters, SensorResponse, StageResponse> >();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #11
0
        /// <summary>
        /// Получение геоданных заказа.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <GeoResponseData> > GeoOrder(string ORDER_ID)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://smartboxcity.ru:8003/order/" + ORDER_ID + "/geo");
                request.Method      = "GET";
                request.Credentials = new NetworkCredential(CrossSettings.Current.GetValueOrDefault("token", ""), "");

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                Stream responseStream = response.GetResponseStream();

                StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default);

                string s_result = myStreamReader.ReadToEnd();

                myStreamReader.Close();
                responseStream.Close();

                response.Close();
                //HttpResponseMessage response = await _httpClient.GetAsync($"order/{ORDER_ID}/geo");

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

                ServiceResponseObject <GeoResponseData> o_data =
                    new ServiceResponseObject <GeoResponseData>();

                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    throw new Exception("Внутренняя ошибка сервера 500");
                }

                case HttpStatusCode.NotFound:
                {
                    throw new Exception("Ресурс не найден 404");
                }

                case HttpStatusCode.OK:
                {
                    var order = JsonConvert.DeserializeObject <GeoResponseData>(s_result);
                    o_data.Message      = "Успешно!";
                    o_data.Status       = response.StatusCode;  // а почему переменная container_id пустая
                    o_data.ResponseData = new GeoResponseData
                    {
                        ORDER         = order.ORDER,
                        MAP_WAYPOINTS = order.MAP_WAYPOINTS
                    };
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }//can not access to close stream
            catch (Exception ex)
            {
                ServiceResponseObject <GeoResponseData> o_data =
                    new ServiceResponseObject <GeoResponseData>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #12
0
        /// <summary>
        /// Выполнение входа.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <AuthResponse> > Login(AuthModel model)
        {
            try
            {
                var password = WebUtility.UrlEncode(model.Password);
                HttpResponseMessage response = await _httpClient.GetAsync($"login?login={model.Login}&password={password}");

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

                ServiceResponseObject <AuthResponse> o_data = new ServiceResponseObject <AuthResponse>();

                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    o_data.Status  = response.StatusCode;
                    o_data.Message = "Внутренняя ошибка сервера 500";
                    return(o_data);
                }

                case HttpStatusCode.NotFound:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    o_data.Status  = response.StatusCode;
                    o_data.Message = "Ресурс не найден 404";
                    return(o_data);
                }

                case HttpStatusCode.OK:
                {
                    o_data.ResponseData = JsonConvert.DeserializeObject <AuthResponse>(s_result);
                    o_data.Message      = "Успешно авторизован!";
                    o_data.Status       = response.StatusCode;
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }
            catch (Exception ex)
            {
                ServiceResponseObject <AuthResponse> o_data = new ServiceResponseObject <AuthResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #13
0
        /// <summary>
        /// Получение заказов
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <ListResponse <OrderResponseData, ArchiveResponse> > > GetOrders( )
        {
            try
            {
                var authValue = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{CrossSettings.Current.GetValueOrDefault("token", "")}:")));

                HttpClient client = new HttpClient
                {
                    BaseAddress           = new Uri(URL),
                    DefaultRequestHeaders = { Authorization = authValue }
                };
                HttpResponseMessage response = await client.GetAsync($"orders/?API");

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

                ServiceResponseObject <ListResponse <OrderResponseData, ArchiveResponse> > o_data =
                    new ServiceResponseObject <ListResponse <OrderResponseData, ArchiveResponse> >();

                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    throw new Exception("Внутренняя ошибка сервера 500");
                }

                case HttpStatusCode.NotFound:
                {
                    throw new Exception("Ресурс не найден 404");
                }

                case HttpStatusCode.OK:
                {
                    var order = JsonConvert.DeserializeObject <ListResponse <OrderResponseData, ArchiveResponse> >(s_result);
                    o_data.Message      = "Успешно!";
                    o_data.Status       = response.StatusCode;  // а почему переменная container_id пустая
                    o_data.ResponseData = new ListResponse <OrderResponseData, ArchiveResponse>
                    {
                        ORDERS  = order.ORDERS,
                        ARCHIVE = order.ARCHIVE
                    };
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }//can not access to close stream
            catch (Exception ex)
            {
                ServiceResponseObject <ListResponse <OrderResponseData, ArchiveResponse> > o_data =
                    new ServiceResponseObject <ListResponse <OrderResponseData, ArchiveResponse> >();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #14
0
        /// <summary>
        /// Остановить исполнение команды.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <SuccessResponse> > StopCommands(string CONTAINER_ID)
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync($"container/{CONTAINER_ID}/stop");

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

                ServiceResponseObject <SuccessResponse> o_data =
                    new ServiceResponseObject <SuccessResponse>();

                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    throw new Exception("Внутренняя ошибка сервера 500");
                }

                case HttpStatusCode.NotFound:
                {
                    throw new Exception("Ресурс не найден 404");
                }

                case HttpStatusCode.OK:
                {
                    var box = JsonConvert.DeserializeObject <SuccessResponse>(s_result);
                    o_data.Message      = "Успешно!";
                    o_data.Status       = response.StatusCode;  // а почему переменная container_id пустая
                    o_data.ResponseData = new SuccessResponse
                    {
                        Message = box.Message
                    };
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }//can not access to close stream
            catch (Exception ex)
            {
                ServiceResponseObject <SuccessResponse> o_data = new ServiceResponseObject <SuccessResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #15
0
        /// <summary>
        /// Список всех тревог.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <ListAlarmResponse> > GetAlarms()
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync($"driver/alarms");

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

                ServiceResponseObject <ListAlarmResponse> o_data =
                    new ServiceResponseObject <ListAlarmResponse>();

                //var result = new ListAlarmResponse();
                //result.ALARMS.Add(new AlarmResponseData
                //{
                //    acknowledged = "1",
                //    container_id = "00000000003",
                //    id = "2",
                //    name = "Протечка жидкости",
                //    raised_at = DateTime.Now
                //});

                //result.ALARMS.Add(new AlarmResponseData
                //{
                //    acknowledged = "1",
                //    container_id = "00000000122",
                //    id = "1",
                //    name = "Превышение веса",
                //    raised_at = DateTime.Now
                //});

                //result.ALARMS.Add(new AlarmResponseData
                //{
                //    acknowledged = "0",
                //    container_id = "00000000122",
                //    id = "3",
                //    name = "Несанкционированное срабатывание датчиков дверей ",
                //    raised_at = DateTime.Now
                //});

                //o_data.Message = "Успешно!";
                //o_data.Status = System.Net.HttpStatusCode.OK;// а почему переменная container_id пустая
                //o_data.ResponseData = new ListAlarmResponse
                //{
                //    ALARMS = result.ALARMS
                //};
                //return o_data;
                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    throw new Exception("Внутренняя ошибка сервера 500");
                }

                case HttpStatusCode.NotFound:
                {
                    o_data.Status  = response.StatusCode;
                    o_data.Message = "Тревоги не найдены.";
                    return(o_data);
                }

                case HttpStatusCode.OK:
                {
                    var alarms = JsonConvert.DeserializeObject <ListAlarmResponse>(s_result);
                    o_data.Message      = "Успешно!";
                    o_data.Status       = System.Net.HttpStatusCode.OK;
                    o_data.ResponseData = new ListAlarmResponse
                    {
                        ALARMS_STATUS = alarms.ALARMS_STATUS
                    };
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }//can not access to close stream
            catch (Exception ex)
            {
                ServiceResponseObject <ListAlarmResponse> o_data = new ServiceResponseObject <ListAlarmResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #16
0
        /// <summary>
        /// Получение данных контейнера.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <InfoBoxResponse> > GetInfoBox(string CONTAINER_ID)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://smartboxcity.ru:8003/container/" + CONTAINER_ID);
                request.Method      = "GET";
                request.Credentials = new NetworkCredential(CrossSettings.Current.GetValueOrDefault("token", ""), "");

                var response = (HttpWebResponse)request.GetResponse();

                Stream responseStream = response.GetResponseStream();



                StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default);

                string s_result = myStreamReader.ReadToEnd();

                myStreamReader.Close();
                responseStream.Close();

                response.Close();

                //HttpResponseMessage response = await _httpClient.GetAsync($"container/{CONTAINER_ID}");

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

                ServiceResponseObject <InfoBoxResponse> o_data =
                    new ServiceResponseObject <InfoBoxResponse>();

                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = "Ошибка 400";
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    throw new Exception("Внутренняя ошибка сервера 500");
                }

                case HttpStatusCode.NotFound:
                {
                    throw new Exception("Ресурс не найден 404");
                }

                case HttpStatusCode.OK:
                {
                    var box = JsonConvert.DeserializeObject <InfoBoxResponse>(s_result);
                    o_data.Message      = "Успешно!";
                    o_data.Status       = response.StatusCode;  // а почему переменная container_id пустая
                    o_data.ResponseData = new InfoBoxResponse
                    {
                        CONTAINER      = box.CONTAINER,
                        SENSORS_STATUS = box.SENSORS_STATUS,
                        ALARMS_STATUS  = box.ALARMS_STATUS,
                        EVENT_COUNT    = box.EVENT_COUNT
                    };
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }//can not access to close stream
            catch (Exception ex)
            {
                ServiceResponseObject <InfoBoxResponse> o_data = new ServiceResponseObject <InfoBoxResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
        private async void GetInfoAboutBox()
        {
            try
            {
                CreateBoxModel model = new CreateBoxModel
                {
                    id = StaticBox.DeviceId
                };

                var myHttpClient             = new HttpClient();
                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.GetAsync(uri2.ToString());

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

                if (response.IsSuccessStatusCode)
                {
                    Status o_data = new Status();

                    o_data = JsonConvert.DeserializeObject <Status>(s_result);

                    //string s_result;
                    //using (HttpContent responseContent = response.Content)
                    //{
                    //    s_result = await responseContent.ReadAsStringAsync();
                    //}
                    //StaticBox.AddInfoObjects(o_boxes_data);
                    //В статик бокс закомментируй 9 свойств
                    StaticBox.Sensors["Температура"]  = o_data.status.Sensors["Температура"];
                    StaticBox.Sensors["Влажность"]    = o_data.status.Sensors["Влажность"];
                    StaticBox.Sensors["Освещенность"] = o_data.status.Sensors["Освещенность"];
                    StaticBox.Sensors["Уровень заряда аккумулятора"] = o_data.status.Sensors["Уровень заряда аккумулятора"];
                    StaticBox.Sensors["Уровень сигнала"]             = o_data.status.Sensors["Уровень сигнала"];
                    StaticBox.Sensors["Состояние дверей"]            = o_data.status.Sensors["Состояние дверей"];
                    StaticBox.Sensors["Состояние контейнера"]        = o_data.status.Sensors["Состояние контейнера"];
                    StaticBox.Sensors["Местоположение контейнера"]   = o_data.status.Sensors["Местоположение контейнера"];
                    //StaticBox.CreatedAtSensors = o_data.ResponseData.Objects[0].CreatedAt;
                    if (StaticBox.Sensors["Состояние контейнера"] == "0")
                    {
                        StaticBox.Sensors["Вес груза"] = "0";
                    }
                    else
                    {
                        StaticBox.Sensors["Вес груза"] = o_data.status.Sensors["Вес груза"];
                    }

                    //Заполняй остальные параметры как в этом примере


                    s_open_close_container.Text = (StaticBox.Sensors["Состояние контейнера"] == "0") ? "сложен" : "разложен";
                    if (s_open_close_container.Text == "сложен")
                    {
                        s_lock_unlock_door.Text = "открыта";
                        box_lay_fold.SetImageResource(Resource.Drawable.close_box);
                    }
                    else
                    {
                        s_lock_unlock_door.Text = (StaticBox.Sensors["Состояние дверей"] == "0") ? "закрыта" : "открыта";
                        if (s_lock_unlock_door.Text == "закрыта" && s_open_close_container.Text == "разложен")
                        {
                            box_lay_fold.SetImageResource(Resource.Drawable.close_door);
                        }
                        else if (s_lock_unlock_door.Text == "открыта" && s_open_close_container.Text == "разложен")
                        {
                            box_lay_fold.SetImageResource(Resource.Drawable.open_door);
                        }
                    }
                    a_situation = StaticBox.Sensors["Местоположение контейнера"];

                    s_situation_container.SetSelection(Resources.GetStringArray(Resource.Array.a_situation_loaded_container).IndexOf(x => x == a_situation));

                    Toast.MakeText(this, "Успешно!", ToastLength.Long).Show();
                }
                else
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    Toast.MakeText(this, error.Errors[0], ToastLength.Long).Show();
                }
            }
            catch (Exception ex)
            {
                Toast.MakeText(this, ex.Message, ToastLength.Long).Show();
            }
        }
Пример #18
0
        /// <summary>
        /// Отправка координат водителя.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <SuccessResponse> > PostGeoData(GeoModel model)
        {
            try
            {
                //status & message
                var formContent = new FormUrlEncodedContent(new Dictionary <string, string>
                {
                    { "lat", model.lat },
                    { "lng", model.lng },
                    { "gps_time", model.gps_time.ToString() }
                });

                HttpResponseMessage response = await _httpClient.PostAsync($"driver/geo", formContent);

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

                ServiceResponseObject <SuccessResponse> o_data = new ServiceResponseObject <SuccessResponse>();
                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    throw new Exception("Внутренняя ошибка сервера 500");
                }

                case HttpStatusCode.NotFound:
                {
                    throw new Exception("Ресурс не найден 404");
                }

                case HttpStatusCode.OK:
                {
                    var message = JsonConvert.DeserializeObject <SuccessResponse>(s_result);
                    o_data.Message = message.Message;
                    o_data.Status  = response.StatusCode;
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }
            catch (Exception ex)
            {
                ServiceResponseObject <SuccessResponse> o_data = new ServiceResponseObject <SuccessResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #19
0
        /// <summary>
        /// сбор информации о контейнере
        /// </summary>
        /// <param name="dir_path"></param>
        private async void GetInfoAboutBox()
        {
            try
            {
                CreateBoxModel model = new CreateBoxModel
                {
                    id = StaticBox.DeviceId
                };

                var myHttpClient             = new HttpClient();
                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.GetAsync(uri2.ToString());

                //var myHttpClient = new HttpClient();
                //var id1 = CrossSettings.Current.GetValueOrDefault("id", "");
                //var uri = new Uri("http://iot.tmc-centert.ru/api/container/getbox?id=" + id1);
                // HttpResponseMessage response = await myHttpClient.GetAsync(uri.ToString());

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

                if (response.IsSuccessStatusCode)
                {
                    Status o_data = new Status();

                    o_data = JsonConvert.DeserializeObject <Status>(s_result);

                    //В статик бокс закомментируй 9 свойств
                    StaticBox.Sensors["Температура"]  = o_data.status.Sensors["Температура"].Replace(".", ",");
                    StaticBox.Sensors["Влажность"]    = o_data.status.Sensors["Влажность"].Replace(".", ",");
                    StaticBox.Sensors["Освещенность"] = o_data.status.Sensors["Освещенность"].Replace(".", ",");
                    StaticBox.Sensors["Уровень заряда аккумулятора"] = o_data.status.Sensors["Уровень заряда аккумулятора"].Replace(".", ",");
                    StaticBox.Sensors["Уровень сигнала"]             = o_data.status.Sensors["Уровень сигнала"].Replace(".", ",");
                    StaticBox.Sensors["Состояние дверей"]            = o_data.status.Sensors["Состояние дверей"].Replace(".", ",");
                    StaticBox.Sensors["Состояние контейнера"]        = o_data.status.Sensors["Состояние контейнера"].Replace(".", ",");
                    StaticBox.Sensors["Местоположение контейнера"]   = o_data.status.Sensors["Местоположение контейнера"].Replace(".", ",");

                    if (StaticBox.Sensors["Состояние контейнера"] == "0")
                    {
                        StaticBox.Sensors["Вес груза"] = "0";
                    }
                    else
                    {
                        StaticBox.Sensors["Вес груза"] = o_data.status.Sensors["Вес груза"].Replace(".", ",");
                    }

                    //StaticBox.CreatedAtSensors = (DateTime)o_data.ResponseData.Objects[0].CreatedAt;
                    //Заполняй остальные параметры как в этом примере
                    int a = 0, b = 0;

                    decimal weight, temp, signal, light, humi, akk;

                    weight = Convert.ToDecimal(StaticBox.Sensors["Вес груза"]);
                    temp   = Convert.ToDecimal(StaticBox.Sensors["Температура"]);
                    signal = Convert.ToDecimal(StaticBox.Sensors["Уровень сигнала"]);
                    light  = Convert.ToDecimal(StaticBox.Sensors["Освещенность"]);
                    humi   = Convert.ToDecimal(StaticBox.Sensors["Влажность"]);
                    akk    = Convert.ToDecimal(StaticBox.Sensors["Уровень заряда аккумулятора"]);

                    s_weight.Progress = Convert.ToInt32(weight);
                    a = Convert.ToInt32(temp);
                    b = Convert.ToInt32(signal);
                    s_light.Progress    = Convert.ToInt32(light);
                    s_humidity.Progress = Convert.ToInt32(humi);
                    s_battery.Progress  = Convert.ToInt32(akk);

                    s_temperature.Progress       = a + 40;
                    s_signal_strength_1.Progress = b + 110;



                    SmullWeight.Text        = StaticBox.Sensors["Вес груза"];
                    SmullTemperature.Text   = StaticBox.Sensors["Температура"];
                    SmullLight.Text         = StaticBox.Sensors["Освещенность"];
                    SmullHumidity.Text      = StaticBox.Sensors["Влажность"];
                    SmullBattery.Text       = StaticBox.Sensors["Уровень заряда аккумулятора"];
                    SmullNetworkSignal.Text = StaticBox.Sensors["Уровень сигнала"];
                    TextNameBox.Text        = "(" + StaticBox.DeviceId + ")";

                    Toast.MakeText(this, "Успешно!", ToastLength.Long).Show();

                    if (StaticBox.Sensors["Состояние контейнера"] == "0")
                    {
                        StaticBox.Sensors["Вес груза"] = "0";
                        Android.App.AlertDialog.Builder alert = new Android.App.AlertDialog.Builder(this);
                        alert.SetTitle("Внимание !");
                        alert.SetMessage("Невозможно изменить вес контейнера.(Состояние контейнера: сложен) ");
                        alert.SetPositiveButton("Закрыть", (senderAlert, args) => {
                            Toast.MakeText(this, "Предупреждение было закрыто!", ToastLength.Short).Show();
                        });
                        Dialog dialog = alert.Create();
                        dialog.Show();
                    }
                    btn_cause_alarm.Enabled = true;
                }
                else
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    Toast.MakeText(this, error.Errors[0], ToastLength.Long).Show();
                    btn_cause_alarm.Enabled = false;

                    var data = await EditSensors();

                    if (data.Status == "1")
                    {
                        Toast.MakeText(this, data.Message, ToastLength.Long).Show();
                        GetInfoAboutBox();
                    }
                    else
                    {
                        Toast.MakeText(this, data.Message, ToastLength.Long).Show();
                        btn_cause_alarm.Enabled = false;
                        //StaticBox.CameraOpenOrNo = 1;
                        //Intent authActivity = new Intent(this, typeof(Auth.SensorsDataActivity));
                        //StartActivity(authActivity);
                    }
                }
            }
            catch (Exception ex)
            {
                Toast.MakeText(this, ex.Message, ToastLength.Long).Show();
            }
        }
Пример #20
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);
            }
        }
Пример #21
0
        /// <summary>
        /// Регистрация физического лица.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <RegisterResponse> > RegisterIndividual(RegisterIndividualModel model)
        {
            try
            {
                //status & message
                var formContent = new FormUrlEncodedContent(new Dictionary <string, string>
                {
                    { "login", model.Login },
                    { "password", model.Password },
                    { "email", model.Email },
                    { "phone", model.Phone },
                    { "client_type", model.ClientType },
                    { "client_last_name", model.ClientLastName },
                    { "client_name", model.ClientName },
                    { "client_patronymic", model.ClientPatronymic },
                    { "client_birthday", model.ClientBirthday },
                    { "client_passport_serie", model.ClientPassportSerie },
                    { "client_passport_id", model.ClientPassportId },
                    { "client_passport_code", model.ClientPassportCode }
                });

                HttpResponseMessage response = await _httpClient.PostAsync($"client", formContent);

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

                ServiceResponseObject <RegisterResponse> o_data = new ServiceResponseObject <RegisterResponse>();

                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    o_data.Status  = response.StatusCode;
                    o_data.Message = "Внутренняя ошибка сервера 500";
                    return(o_data);
                }

                case HttpStatusCode.NotFound:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    o_data.Status  = response.StatusCode;
                    o_data.Message = "Ресурс не найден 404";
                    return(o_data);
                }

                case HttpStatusCode.OK:
                {
                    var reg = JsonConvert.DeserializeObject <RegisterResponse>(s_result);
                    o_data.Message      = reg.message;
                    o_data.Status       = response.StatusCode;
                    o_data.ResponseData = new RegisterResponse
                    {
                        message = reg.message,
                        user    = reg.user
                    };
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }
            catch (Exception ex)
            {
                ServiceResponseObject <RegisterResponse> o_data = new ServiceResponseObject <RegisterResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #22
0
        /// <summary>
        /// Получить фотофиксацию с контейнера.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <SuccessResponse> > GetPhoto(string CONTAINER_ID)
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync($"container/{CONTAINER_ID}/image");

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

                //HttpWebRequest request =  (HttpWebRequest)WebRequest.Create($"container/{CONTAINER_ID}/image");
                //request.Method = "GET";

                //var myHttpWebResponse = (HttpWebResponse)request.GetResponse();

                //Stream responseStream = myHttpWebResponse.GetResponseStream();

                //StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default);

                //string s_result = myStreamReader.ReadToEnd();

                //myStreamReader.Close();
                //responseStream.Close();

                //myHttpWebResponse.Close();

                ServiceResponseObject <SuccessResponse> o_data =
                    new ServiceResponseObject <SuccessResponse>();

                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    throw new Exception("Внутренняя ошибка сервера 500");
                }

                case HttpStatusCode.NotFound:
                {
                    throw new Exception("Ресурс не найден 404");
                }

                case HttpStatusCode.OK:
                {
                    var box = JsonConvert.DeserializeObject <SuccessResponse>(s_result);
                    o_data.Message      = "Успешно!";
                    o_data.Status       = response.StatusCode;  // а почему переменная container_id пустая
                    o_data.ResponseData = new SuccessResponse
                    {
                        Message = box.Message
                    };
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }//can not access to close stream
            catch (Exception ex)
            {
                ServiceResponseObject <SuccessResponse> o_data = new ServiceResponseObject <SuccessResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Пример #23
0
        /// <summary>
        /// Готов к выполнению задач.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <SuccessResponse> > Free()
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://smartboxcity.ru:8003/task/free");
                request.Method      = "GET";
                request.Credentials = new NetworkCredential(CrossSettings.Current.GetValueOrDefault("token", ""), "");

                var response = (HttpWebResponse)request.GetResponse();

                Stream responseStream = response.GetResponseStream();



                StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default);

                string s_result = myStreamReader.ReadToEnd();

                myStreamReader.Close();
                responseStream.Close();

                response.Close();
                //HttpResponseMessage response = await _httpClient.GetAsync($"task/free");

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

                ServiceResponseObject <SuccessResponse> o_data =
                    new ServiceResponseObject <SuccessResponse>();

                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    ErrorResponseObject error = new ErrorResponseObject();
                    error          = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                    o_data.Status  = response.StatusCode;
                    o_data.Message = error.Errors[0];
                    return(o_data);
                }

                case HttpStatusCode.InternalServerError:
                {
                    throw new Exception("Внутренняя ошибка сервера 500");
                }

                case HttpStatusCode.NotFound:
                {
                    throw new Exception("Ресурс не найден 404");
                }

                case HttpStatusCode.OK:
                {
                    var task = JsonConvert.DeserializeObject <SuccessResponse>(s_result);
                    o_data.Message      = "Успешно!";
                    o_data.Status       = response.StatusCode;
                    o_data.ResponseData = new SuccessResponse
                    {
                        Message = task.Message
                    };
                    return(o_data);
                }

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }//can not access to close stream
            catch (Exception ex)
            {
                ServiceResponseObject <SuccessResponse> o_data =
                    new ServiceResponseObject <SuccessResponse>();
                //o_data.ResponseData.Message = ex.Message;
                o_data.Message = ex.Message;
                o_data.Status  = System.Net.HttpStatusCode.InternalServerError;
                return(o_data);
            }
        }
Пример #24
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();
                }
            }