Example #1
0
        public async Task <ServiceResponseObject <AuthResponse> > Login(LoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                AuthMethods AuthData = new AuthMethods(_userManager, _signInManager, _roleManager, _boxContext);
                var         Result   = await AuthData.Login(model);

                return(Result);
            }
            ServiceResponseObject <AuthResponse> response = new ServiceResponseObject <AuthResponse>();

            response.Status = ResponseResult.Error;
            List <string> errors = ModelState.Values.Aggregate(
                new List <string>(),
                (a, c) =>
            {
                a.AddRange(c.Errors.Select(r => r.ErrorMessage));
                return(a);
            },
                a => a
                );

            response.Message = errors[0];
            return(response);
        }
Example #2
0
        private async void Attach(AlertDialog.Builder alert)
        {
            using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
            {
                BoxService.InitializeClient(client);
                var o_data = new ServiceResponseObject <SuccessResponse>();
                o_data = await BoxService.Attach(StaticBox.id);

                if (o_data.Status == HttpStatusCode.OK)
                {
                    alert.Dispose();
                    Android.App.AlertDialog.Builder alert1 = new Android.App.AlertDialog.Builder(Activity);
                    alert1.SetTitle("Прикрепить контейнер");
                    alert1.SetMessage(o_data.ResponseData.Message);
                    alert1.SetPositiveButton("Закрыть", (senderAlert1, args1) =>
                    {
                    });
                    Dialog dialog1 = alert1.Create();
                    dialog1.Show();

                    FragmentTransaction   transaction1 = this.FragmentManager.BeginTransaction();
                    MainBoxStatusActivity content2     = new MainBoxStatusActivity();
                    transaction1.Replace(Resource.Id.frameDriverlayout, content2).AddToBackStack(null).Commit();
                }
                else
                {
                    Toast.MakeText(Activity, o_data.Message, ToastLength.Long).Show();
                }
            }
        }
Example #3
0
        /// <summary>
        /// Передача доступа к контейнеру
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public async Task <ServiceResponseObject <BaseResponseObject> > SendAccess(Guid orderId)
        {
            ServiceResponseObject <BaseResponseObject> response = new ServiceResponseObject <BaseResponseObject>();

            try
            {
                var order = await _boxContext.UserHasOrders.Where(p => p.OrderId == orderId).FirstOrDefaultAsync();

                var box = await _boxContext.OrderHasBoxes.Where(p => p.OrderId == orderId).FirstOrDefaultAsync();

                var task = await _boxContext.Tasks.Where(p => p.OrderId == orderId).FirstOrDefaultAsync();

                task.IsCompleted = true;
                task.DoneAt      = DateTime.Now;
                _boxContext.Update(task);
                _boxContext.SaveChanges();

                UserHasAccess access = new UserHasAccess
                {
                    BoxId  = box.BoxId,
                    UserId = order.UserId
                };
                _boxContext.UserHasAccesses.Add(access);
                _boxContext.SaveChanges();
                response.Message = "Доступ отправлен. Ожидается оплата.";
                response.Status  = ResponseResult.OK;
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = ResponseResult.Error;
                response.Message = "Что-то пошло не так... " + ex.Message;
                return(response);
            }
        }
Example #4
0
        /// <summary>
        /// Получение списка задач водителя
        /// </summary>
        /// <param name="driverId"></param>
        /// <returns></returns>
        public async Task <ServiceResponseObject <TaskResponse> > GetTask(Guid driverId)
        {
            ServiceResponseObject <TaskResponse> Data = new ServiceResponseObject <TaskResponse>();
            var driver = await _boxContext.Drivers.FindAsync(driverId);

            _boxContext.Entry(driver)
            .Collection(c => c.Tasks)
            .Load();

            var tasks = driver.Tasks;

            if (tasks.Count == 0 || tasks == null)
            {
                Data.Status  = ResponseResult.Error;
                Data.Message = "Задач нет.";
                return(Data);
            }

            Data.ResponseData = await _boxContext.Tasks.Where(t => t.IsCompleted == false).Select(s =>
                                                                                                  new TaskResponse
            {
                OrderId  = s.OrderId,
                TaskType = s.TaskType
            }).FirstOrDefaultAsync();

            Data.Message = "Новая задача!";
            Data.Status  = ResponseResult.OK;
            return(Data);
        }
Example #5
0
        /// <summary>
        /// Передача загруженного контейнера в службу доставки
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public async Task <ServiceResponseObject <BaseResponseObject> > CreateDeliveryRequest(Guid orderId)
        {
            ServiceResponseObject <BaseResponseObject> response = new ServiceResponseObject <BaseResponseObject>();

            try
            {
                var order = await _boxContext.Orders.FindAsync(orderId);

                var hasBox = await _boxContext.OrderHasBoxes.Where(p => p.OrderId == orderId).FirstOrDefaultAsync();

                var driverId = await _boxContext.DriverHasBoxes.Where(p => p.BoxId == hasBox.BoxId).Select(s => s.DriverId).FirstOrDefaultAsync();

                Models.Task task = new Models.Task
                {
                    CreatedAt = DateTime.Now,
                    DriverId  = driverId,
                    OrderId   = order.Id,
                    TaskType  = "2. Полный контейнер готов к отгрузке."
                };

                _boxContext.Tasks.Add(task);
                _boxContext.SaveChanges();
                response.Message = "Контейнер передан в службу доставки.";
                response.Status  = ResponseResult.OK;
                return(response);
            }
            catch (Exception ex)
            {
                response.Message = "Что-то пошло не так..." + ex.Message;
                response.Status  = ResponseResult.Error;
                throw;
            }
        }
Example #6
0
        /// <summary>
        /// Логгирование объекта по GPS
        /// </summary>
        /// <param name="model.Id"></param>
        /// <param name="model.Lon1"></param>
        /// <param name="model.Lat1"></param>
        /// <param name="model.Signal"></param>
        /// <param name="model.Date"></param>
        /// <returns></returns>
        public async Task <ServiceResponseObject <BaseResponseObject> > SetContainerLocation(LocationViewModel model)
        {
            SmartBox box = await _boxContext.SmartBoxes.FirstOrDefaultAsync(s => s.Id == model.Id);

            ServiceResponseObject <BaseResponseObject> DataContent = new ServiceResponseObject <BaseResponseObject>();


            if (box != null)
            {
                Location location = new Location
                {
                    BoxId       = box.Id,
                    Latitude    = model.Lat1,
                    Longitude   = model.Lon1,
                    SignalLevel = model.Signal,
                    CurrentDate = model.Date,
                    Name        = box.Name
                };

                _boxContext.Locations.Add(location);
                await _boxContext.SaveChangesAsync();

                DataContent.Message = "Успешно!";
                DataContent.Status  = ResponseResult.OK;
                return(DataContent);
            }

            DataContent.Message = "Контейнер не найден!";
            DataContent.Status  = ResponseResult.Error;
            return(DataContent);
        }
Example #7
0
        public async Task <ServiceResponseObject <BaseResponseObject> > SetContainerLocation(LocationViewModel model)
        {
            if (ModelState.IsValid)
            {
                ContainerMethods BoxData = new ContainerMethods(_boxContext);
                var Result = await BoxData.SetContainerLocation(model);

                return(Result);
            }

            ServiceResponseObject <BaseResponseObject> response = new ServiceResponseObject <BaseResponseObject>();

            response.Status = ResponseResult.Error;

            List <string> errors = ModelState.Values.Aggregate(
                new List <string>(),
                (a, c) =>
            {
                a.AddRange(c.Errors.Select(r => r.ErrorMessage));
                return(a);
            },
                a => a
                );

            response.Message = errors[0];
            return(response);
        }
Example #8
0
        public ServiceResponseObject <ComputationResponse> PriceComputation(PriceComputationViewModel model)
        {
            ServiceResponseObject <ComputationResponse> response = new ServiceResponseObject <ComputationResponse>();

            if (model.CargeType == "Выбор" || model.DangerClassType == "Выбор")
            {
                ModelState.AddModelError(string.Empty, "Укажите характер груза или класс опасности");
            }

            if (ModelState.IsValid)
            {
                OrderMethods BoxData = new OrderMethods(_boxContext, _userManager);
                var          price   = BoxData.PriceComputation(model);
                response.Message      = "Успешно!";
                response.ResponseData = new ComputationResponse {
                    Price = price
                };
                response.Status = ResponseResult.OK;
                return(response);
            }
            response.Status = ResponseResult.Error;
            List <string> errors = ModelState.Values.Aggregate(
                new List <string>(),
                (a, c) =>
            {
                a.AddRange(c.Errors.Select(r => r.ErrorMessage));
                return(a);
            },
                a => a
                );

            response.ResponseData = new ComputationResponse();
            response.Message      = errors[0];
            return(response);
        }
Example #9
0
        private async void GetPhoto(string id, AlertDialog.Builder alert)
        {
            try
            {
                using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
                {
                    ManageOrderService.InitializeClient(client);
                    var o_data = new ServiceResponseObject <SuccessResponse>();
                    o_data = await ManageOrderService.GetPhoto(id);

                    if (o_data.Status == HttpStatusCode.OK)
                    {
                        StaticOrder.File_Name     = o_data.Message;
                        StaticOrder.MessageResult = "0";
                        StartUp.StartTracking(context, 2);
                    }
                    else
                    {
                        Toast.MakeText(context, o_data.Message, ToastLength.Long).Show();
                    }
                }
            }
            catch (Exception ex)
            {
                Toast.MakeText(context, ex.Message, ToastLength.Long).Show();
            }
        }
Example #10
0
        private async void MakeLockRollete(AlertDialog.Builder alert)
        {
            using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
            {
                BoxService.InitializeClient(client);
                var o_data = new ServiceResponseObject <SuccessResponse>();
                o_data = await BoxService.LockRollete(StaticBox.id);

                if (o_data.Status == HttpStatusCode.OK)
                {
                    alert.Dispose();
                    Android.App.AlertDialog.Builder alert1 = new Android.App.AlertDialog.Builder(Activity);
                    alert1.SetTitle("Опустить роллету");
                    alert1.SetMessage(o_data.Message);
                    alert1.SetPositiveButton("Закрыть", (senderAlert1, args1) =>
                    {
                    });
                    Dialog dialog1 = alert1.Create();
                    dialog1.Show();

                    btn_gate.Text    = "Поднять";
                    BoxTextGate.Text = "Закрыта";

                    FragmentTransaction transaction1 = this.FragmentManager.BeginTransaction();
                    BoxActivity         content2     = new BoxActivity();
                    transaction1.Replace(Resource.Id.frameDriverlayout, content2);
                    transaction1.Commit();
                }
                else
                {
                    Toast.MakeText(Activity, o_data.Message, ToastLength.Long).Show();
                }
            }
        }
Example #11
0
        private async void MakeFold(AlertDialog.Builder alert)
        {
            using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
            {
                BoxService.InitializeClient(client);
                var o_data = new ServiceResponseObject <SuccessResponse>();
                o_data = await BoxService.FoldContainer(StaticBox.id);

                if (o_data.Status == HttpStatusCode.OK)
                {
                    alert.Dispose();
                    Android.App.AlertDialog.Builder alert1 = new Android.App.AlertDialog.Builder(Activity);
                    alert1.SetTitle("Сложить контейнер");
                    alert1.SetMessage(o_data.ResponseData.Message);
                    alert1.SetPositiveButton("Закрыть", (senderAlert1, args1) =>
                    {
                    });
                    Dialog dialog1 = alert1.Create();
                    dialog1.Show();

                    btn_fold.Text    = "Разложить";
                    BoxTextFold.Text = "Сложен";

                    FragmentTransaction transaction1 = this.FragmentManager.BeginTransaction();
                    BoxActivity         content2     = new BoxActivity();
                    transaction1.Replace(Resource.Id.frameDriverlayout, content2);
                    transaction1.Commit();
                }
            }
        }
        private async void GetPhoto()
        {
            try
            {
                using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
                {
                    ManageOrderService.InitializeClient(client);
                    var o_data = new ServiceResponseObject <SuccessResponse>();
                    o_data = await ManageOrderService.GetPhoto(StaticOrder.Order_id);

                    if (o_data.Status == HttpStatusCode.OK)
                    {
                        ///дописать
                        StaticOrder.File_Name     = o_data.Message;
                        StaticOrder.MessageResult = "0";
                        StartUp.StartTracking(Activity, 2);
                    }
                    else
                    {
                        Toast.MakeText(Activity, o_data.Message, ToastLength.Long).Show();
                    }
                }
            }
            catch (System.Exception ex)
            {
                Toast.MakeText(Activity, ex.Message, ToastLength.Long).Show();
            }
        }
Example #13
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);
            }
        }
Example #14
0
        /// <summary>
        /// Передать контейнер другому водителю.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <SuccessResponse> > Dettach(string CONTAINER_ID, bool isChecked)
        {
            try
            {
                HttpResponseMessage response = (isChecked)?await _httpClient.GetAsync($"container/{CONTAINER_ID}/detach?task=1"):
                                               await _httpClient.GetAsync($"container/{CONTAINER_ID}/detach");

                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:
                {
                    throw new Exception("Ошибка сервера 400");
                }

                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);
            }
        }
Example #15
0
        /// <summary>
        /// Получение событий для контейнера.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <EventsBoxResponse> > Events(string event_id)
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync($"container/{event_id}/events");

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

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

                switch (response.StatusCode)
                {
                case HttpStatusCode.BadRequest:
                {
                    throw new Exception("Событий этого контейнера нет");
                }

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

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

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

                default:
                {
                    throw new Exception(response.StatusCode.ToString() + " Server Error");
                }
                }
            }//can not access to close stream
            catch (Exception ex)
            {
                ServiceResponseObject <EventsBoxResponse> o_data = new ServiceResponseObject <EventsBoxResponse>();
                o_data.Message = ex.Message;
                return(o_data);
            }
        }
Example #16
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);
            }
        }
        /// <summary>
        /// Оплатить заказ.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <SuccessResponse> > MakePayment(string order_id)
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync($"order/{order_id}/payment");

                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;
                    throw new Exception("Ошибка сервера 400");
                }

                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);
            }
        }
Example #18
0
        private async void GetAlarms()
        {
            try
            {
                var o_data = new ServiceResponseObject <ListAlarmResponse>();
                using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
                {
                    AlarmService.InitializeClient(client);
                    o_data = await AlarmService.GetAlarms();

                    if (o_data.Status == HttpStatusCode.OK)
                    {
                        Toast.MakeText(Activity, o_data.Message, ToastLength.Long).Show();
                        alarmlist = new List <AlarmBookModel>();

                        if (o_data.ResponseData.ALARMS_STATUS == null ||
                            o_data.ResponseData.ALARMS_STATUS.Count == 0)
                        {
                            StaticUser.NamePadeAbsenceSomething = "AlarmsActivity";
                            Android.App.FragmentTransaction transaction = this.FragmentManager.BeginTransaction();
                            NotFoundOrdersActivity          content     = new NotFoundOrdersActivity();
                            transaction.Replace(Resource.Id.frameDriverlayout, content);
                            transaction.Commit();
                        }

                        foreach (var alm in o_data.ResponseData.ALARMS_STATUS)
                        {
                            alarmlist.Add(new AlarmBookModel
                            {
                                Id           = alm.id,
                                Acknowledged = alm.acknowledged,
                                Container_id = alm.container_id,
                                Name         = alm.name,
                                Raised_At    = alm.raised_at,
                                IsDepot      = (alm.depot == "1") ? true : false
                            }
                                          );
                        }
                        UpdateList();
                        lstAlarm.ItemClick += ListBoxes_ItemClick;
                    }
                    else
                    {
                        StaticUser.NamePadeAbsenceSomething = "AlarmsActivity";
                        Android.App.FragmentTransaction transaction = this.FragmentManager.BeginTransaction();
                        NotFoundOrdersActivity          content     = new NotFoundOrdersActivity();
                        transaction.Replace(Resource.Id.frameDriverlayout, content);
                        transaction.Commit();
                    }
                }
            }
            catch (System.Exception ex)
            {
                Toast.MakeText(Activity, ex.Message, ToastLength.Long).Show();
            }
        }
        public static async Task <ServiceResponseObject <SuccessResponse> > CheckFile(string file_name)
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync("https://smartboxcity.ru/media_json.php?media=" + file_name);

                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:
                {
                    throw new Exception("Ошибка сервера 400");
                }

                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);
            }
        }
        /// <summary>
        /// Получить видео с заказа.
        /// </summary>
        /// <returns></returns>
        public static async Task <ServiceResponseObject <SuccessResponse> > GetVideo(string order_id)
        {
            try
            {
                HttpResponseMessage response = await _httpClient.GetAsync($"order/{order_id}/video");

                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:
                {
                    throw new Exception("Невозможно получить запрашиваемое видео на этом этапе");
                }

                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);
            }
        }
Example #21
0
        private async Task <TaskStatus> GetEvents()
        {
            var o_data = new ServiceResponseObject <EventsResponse>();

            using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
            {
                try
                {
                    OrderService.InitializeClient(client);
                    o_data = await OrderService.Events(StaticOrder.Order_id);

                    if (o_data.Status == HttpStatusCode.OK)
                    {
                        Toast.MakeText(Activity, o_data.Message, ToastLength.Long).Show();
                        var number = 0;

                        if (o_data.ResponseData.EVENTS == null || o_data.ResponseData.EVENTS.Count == 0)
                        {
                            return(TaskStatus.Faulted);
                        }

                        foreach (KeyValuePair <string, List <EventResponse> > kvp in o_data.ResponseData.EVENTS)
                        {
                            for (int i = 0; i < o_data.ResponseData.EVENTS[kvp.Key].Count; i++)
                            {
                                Eventlist.Add(new EventModel
                                {
                                    id          = number++,
                                    Id          = kvp.Value[i].order_id,
                                    Name        = kvp.Value[i].message,
                                    Time        = "(" + kvp.Value[i].created_at.ToLongTimeString() + ")",
                                    Date        = kvp.Value[i].event_day,
                                    ContentType = kvp.Value[i].type
                                });
                            }
                        }

                        UpdateList();
                        return(TaskStatus.Running);
                    }
                    else
                    {
                        return(TaskStatus.Faulted);//"Unexpected character encountered while parsing value: <. Path '', line 0, position 0."
                    }
                }
                catch (Exception ex)
                {
                    return(TaskStatus.Faulted);
                }
            }
        }
        private async void MakeLock(bool checkBox)
        {
            try
            {
                using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
                {
                    ManageOrderService.InitializeClient(client);
                    var o_data = new ServiceResponseObject <SuccessResponse>();
                    o_data = await ManageOrderService.LockRollete(StaticOrder.Order_id);

                    if (o_data.Status == HttpStatusCode.OK)
                    {
                        Android.App.AlertDialog.Builder alert1 = new Android.App.AlertDialog.Builder(Activity);
                        alert1.SetTitle("Закрытие контейнера");
                        alert1.SetMessage(o_data.Message);
                        alert1.SetPositiveButton("Закрыть", (senderAlert1, args1) =>
                        {
                        });
                        Dialog dialog1 = alert1.Create();
                        dialog1.Show();

                        if (checkBox == true)
                        {
                            //btn_Lock.Clickable = false;
                            //btn_Lock.Focusable = false;
                            //btn_Lock.LongClickable = false;
                            btn_Lock.Visibility = ViewStates.Gone;
                            Lock.Text           = "Опущена";
                        }
                        else
                        {
                            btn_Lock.Text = "Поднять";
                            Lock.Text     = "Опущена";
                        }

                        //FragmentTransaction transaction1 = this.FragmentManager.BeginTransaction();
                        //ManageOrderActivity content2 = new ManageOrderActivity();
                        //transaction1.Replace(Resource.Id.framelayout, content2);
                        //transaction1.Commit();
                    }
                }
            }
            catch (System.Exception ex)
            {
                Toast.MakeText(Activity, ex.Message, ToastLength.Long).Show();
            }
        }
Example #23
0
        private async void GetVideo()
        {
            try
            {
                if (CrossSettings.Current.GetValueOrDefault("role", "") == "driver")
                {
                    using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
                    {
                        BoxService.InitializeClient(client);
                        var o_data = new ServiceResponseObject <SuccessResponse>();
                        o_data = await BoxService.GetVideo(StaticBox.id);

                        if (o_data.Status == HttpStatusCode.OK)
                        {
                            StaticOrder.File_Name = o_data.Message;
                        }
                        else
                        {
                            Toast.MakeText(context, o_data.Message, ToastLength.Long).Show();
                        }
                    }
                }
                else
                {
                    using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
                    {
                        ManageOrderService.InitializeClient(client);
                        var o_data = new ServiceResponseObject <SuccessResponse>();
                        o_data = await ManageOrderService.GetVideo(StaticBox.id);

                        if (o_data.Status == HttpStatusCode.OK)
                        {
                            StaticOrder.File_Name = o_data.Message;
                        }
                        else
                        {
                            Toast.MakeText(context, o_data.Message, ToastLength.Long).Show();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Toast.MakeText(context, ex.Message, ToastLength.Long).Show();
            }
        }
Example #24
0
        private async void PostGeoData(Location location)
        {
            using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
            {
                GeoModel model = new GeoModel
                {
                    gps_time = DateTime.Now,
                    lat      = location.Latitude.ToString().Replace(",", "."),
                    lng      = location.Longitude.ToString().Replace(",", ".")
                };

                DriverInfoService.InitializeClient(client);
                var o_data = new ServiceResponseObject <SuccessResponse>();
                o_data = await DriverInfoService.PostGeoData(model);

                Toast.MakeText(Application.Context, o_data.Message, ToastLength.Long).Show();
            }
        }
Example #25
0
        public async Task <ServiceResponseObject <BoxDataResponse> > GetBoxForUser(string userId)
        {
            ContainerMethods BoxData = new ContainerMethods(_boxContext);
            var access = await _boxContext.UserHasAccesses.Where(p => p.UserId == userId).FirstOrDefaultAsync();

            if (access != null)
            {
                var Result = await BoxData.GetBox(access.BoxId);

                Result.Message += " Оплатите заказ.";
                return(Result);
            }
            ServiceResponseObject <BoxDataResponse> response = new ServiceResponseObject <BoxDataResponse>();

            response.Message = "Нет доступа.";
            response.Status  = ResponseResult.Error;
            return(response);
        }
Example #26
0
        /// <summary>
        /// Авторизация пользователя
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ServiceResponseObject <AuthResponse> > Login(LoginViewModel model)
        {
            ServiceResponseObject <AuthResponse> DataContent = new ServiceResponseObject <AuthResponse>();
            User user = await _userManager.FindByEmailAsync(model.Email);

            var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, false);

            if (result.Succeeded && user != null)
            {
                var roles = await _userManager.GetRolesAsync(user);

                if (roles.Count != 0)
                {
                    DataContent.ResponseData = new AuthResponse()
                    {
                        UserId    = user.Id,
                        UserName  = model.Email,
                        FirstName = user.FirstName,
                        LastName  = user.LastName,
                        Role      = roles[0]
                    };

                    if (roles[0] == "driver")
                    {
                        var driver = await _boxContext.Drivers.Where(p => p.AccountId == user.Id).FirstOrDefaultAsync();

                        DataContent.ResponseData.DriverId = driver.Id;
                    }

                    DataContent.Message = "Авторизация прошла успешно!";
                    DataContent.Status  = ResponseResult.OK;
                    return(DataContent);
                }
                DataContent.Message = "У пользователя не определена роль. Зарегистрируйтесь и попробуйте снова.";
                DataContent.Status  = ResponseResult.Error;
                return(DataContent);
            }
            else
            {
                DataContent.Message = "Неправильный логин и(или) пароль";
                DataContent.Status  = ResponseResult.Error;
                return(DataContent);
            }
        }
        private async void GetEvents()
        {
            var o_data = new ServiceResponseObject <EventsBoxResponse>();

            using (var client = ClientHelper.GetClient(CrossSettings.Current.GetValueOrDefault("token", "")))
            {
                BoxService.InitializeClient(client);
                o_data = await BoxService.Events(StaticBox.id);

                if (o_data.Status == HttpStatusCode.OK)
                {
                    Toast.MakeText(Activity, o_data.Message, ToastLength.Long).Show();
                    var number = 0;

                    if (o_data.ResponseData.EVENTS == null || o_data.ResponseData.EVENTS.Count == 0)
                    {
                        throw new Exception("Событий нет");
                    }

                    foreach (KeyValuePair <string, List <Entity.Model.BoxResponse.EventResponse> > kvp in o_data.ResponseData.EVENTS)
                    {
                        for (int i = 0; i < o_data.ResponseData.EVENTS[kvp.Key].Count; i++)
                        {
                            string[] times = kvp.Value[i].created_at.Split(new char[] { ' ' });
                            Eventlist.Add(new EventModel
                            {
                                id          = number++,
                                Id          = StaticBox.id,
                                Name        = kvp.Value[i].message,
                                Time        = "(" + times[1] + ")",
                                Date        = times[0],
                                ContentType = kvp.Value[i].type
                            });
                        }
                    }

                    UpdateList();
                }
                else
                {
                    Toast.MakeText(Activity, o_data.Message, ToastLength.Long).Show();//"Unexpected character encountered while parsing value: <. Path '', line 0, position 0."
                }
            }
        }
Example #28
0
        /// <summary>
        /// Совершение платежа
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public async Task <ServiceResponseObject <BaseResponseObject> > CreatePayment(Guid orderId)
        {
            ServiceResponseObject <BaseResponseObject> response = new ServiceResponseObject <BaseResponseObject>();
            var order = await _boxContext.Orders.FindAsync(orderId);

            if (order != null)
            {
                var payment = await _boxContext.Payments.FindAsync(order.PaymentId);

                payment.PayStatus = Status.Ok;
                payment.PaidAt    = DateTime.Now;
                response.Status   = ResponseResult.OK;
                response.Message  = "Оплата успешно произведена.";
                return(response);
            }
            response.Status  = ResponseResult.Error;
            response.Message = "Заказ не найден.";
            return(response);
        }
Example #29
0
        /// <summary>
        /// Добавление контейнера в бд
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public async Task <ServiceResponseObject <ContainerResponse> > Create(string name)
        {
            ServiceResponseObject <ContainerResponse> DataContent = new ServiceResponseObject <ContainerResponse>();

            var box = _boxContext.SmartBoxes.Where(s => s.Name == name).FirstOrDefault();

            if (box != null)
            {
                box.CloudKey = "1";
                _boxContext.Update(box);
                await _boxContext.SaveChangesAsync();

                DataContent.Status       = ResponseResult.OK;
                DataContent.Message      = "Объект найден!";
                DataContent.ResponseData = new ContainerResponse
                {
                    SmartBoxId = box.Id,
                    Name       = box.Name
                };
                return(DataContent);
            }

            box = new SmartBox
            {
                Name     = name,
                CloudKey = "1"
            };

            var result = await _boxContext.SmartBoxes.AddAsync(box);

            _boxContext.SaveChanges();

            DataContent.Status       = ResponseResult.OK;
            DataContent.Message      = "Объект успешно добавлен!";
            DataContent.ResponseData = new ContainerResponse
            {
                SmartBoxId = box.Id,
                Name       = box.Name
            };
            return(DataContent);
        }
Example #30
0
        /// <summary>
        /// Поиск записи в БД о наличии запроса на фото
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public async Task <ServiceResponseObject <BaseResponseObject> > SearchCommandPhoto(string name)
        {
            ServiceResponseObject <BaseResponseObject> DataContent = new ServiceResponseObject <BaseResponseObject>();

            var box = _boxContext.SmartBoxes.Where(s => s.Name == name && s.CloudKey == "1").FirstOrDefault();

            if (box != null)
            {
                box.CloudKey = "0";
                _boxContext.Update(box);
                await _boxContext.SaveChangesAsync();

                DataContent.Status  = ResponseResult.OK;
                DataContent.Message = "Запрос от клиента на получение фото.";
                return(DataContent);
            }


            DataContent.Status  = ResponseResult.Error;
            DataContent.Message = "Запросов нет.";
            return(DataContent);
        }