Beispiel #1
0
        public IHttpActionResult GetInfo(string identifier, IdentifierEnum identifierType)
        {
            var client = ClientHelper.GetClient(context, identifier, identifierType);

            if (client == null)
            {
                var courier = CourierHelper.GetCourier(context, identifier, identifierType);
                if (courier == null)
                {
                    return(BadRequest());
                }
                return(Json(new { courier.FirstName, courier.LastName, courier.State, courier.Phone, isCourier = true }));
            }

            return(Json(new { client.FirstName, client.LastName, client.DefaultAddress, client.DefaultAddressCoords, client.TelegramChatId, isCourier = false }));
        }
Beispiel #2
0
        public IHttpActionResult StartDelivery(StartDeliveryModel model)
        {
            Courier courier = CourierHelper.GetCourier(context, model.Identifier, model.IdentifierType);

            if (courier == null)
            {
                return(BadRequest());
            }
            var order = context.GetTable <Order>().Where(x => x.Id == model.OrderId).FirstOrDefault();

            order.State = OrderStateEnum.InDelivery;
            order.StateChangeTimestamp = DateTime.Now;
            order.CourierId            = courier.Id;
            context.SubmitChanges();
            HereApi api  = new HereApi();
            var     time = api.GetTimeTravel(order.StartAddressCoords, order.EndAddressCoords);

            return(Json(time));
        }
Beispiel #3
0
        public IHttpActionResult GetOrders(string location, string identifier, IdentifierEnum identifierType)
        {
            var courier = CourierHelper.GetCourier(context, identifier, identifierType);

            if (courier == null)
            {
                return(BadRequest());
            }

            HereApi api = new HereApi();

            var wayPoints = new List <string> {
                identifier + ";" + location
            };

            context.GetTable <Order>()
            //.Where(x =>x.State == OrderStateEnum.Draft)
            .OrderBy(x => x.CreationTimestamp).Take(5).ToList()
            .ForEach(x => wayPoints.Add(x.Id + ";" + x.StartAddressCoords));
            if (wayPoints.Count == 1)
            {
                return(Json(new object[] { }));
            }
            var ordersIds = new List <string>()
            {
                "FAA08AD6-A736-45EB-8F22-126BAB4163AF", "AE16E32E-DD2A-45FA-83B6-29A1DFB3E7B9 "
            };
            //var ordersIds = api.GenerateOrdersForCourier(wayPoints, 2);
            var orders = new List <Order>();

            foreach (var item in ordersIds)
            {
                orders.Add(context.GetTable <Order>().Where(x => x.Id == new Guid(item)).FirstOrDefault());
            }
            ;
            return(Json(orders));
        }