public Identifier(string serverIdentifier, string databaseIdentifier, string schemaIdentifier, string baseIdentifier, IdentifierEnum identifierType)
 {
     Qualifiers         = 0;
     ServerIdentifier   = serverIdentifier;
     DatabaseIdentifier = databaseIdentifier;
     SchemaIdentifier   = schemaIdentifier;
     BaseIdentifier     = baseIdentifier;
     IdentifierType     = identifierType;
     if (ServerIdentifier != string.Empty)
     {
         Qualifiers++;
     }
     if (DatabaseIdentifier != string.Empty)
     {
         Qualifiers++;
     }
     if (SchemaIdentifier != string.Empty)
     {
         Qualifiers++;
     }
     if (BaseIdentifier != string.Empty)
     {
         Qualifiers++;
     }
     else
     {
         throw new Exception("baseIdentifier can NOT be an empty string");
     }
 }
예제 #2
0
        public IHttpActionResult GetClientsOrders(string identifier, IdentifierEnum identifierType)
        {
            var client = ClientHelper.GetClient(context, identifier, identifierType);

            if (client == null)
            {
                return(BadRequest("Client does't found!"));
            }

            var orders = context.GetTable <Order>()
                         .Where(x => x.State == OrderStateEnum.Draft || x.State == OrderStateEnum.Deliveried)
                         .Where(x => x.ClientId == client.Id).ToList();

            return(Json(orders));
        }
예제 #3
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 }));
        }
예제 #4
0
        public static Client GetClient(DataContext context, string identifier, IdentifierEnum identifierType)
        {
            Client client = null;

            switch (identifierType)
            {
            case IdentifierEnum.Telegram:
                client = context.GetTable <Client>().Where(x => x.TelegramId == Convert.ToInt32(identifier)).FirstOrDefault();
                break;

            case IdentifierEnum.Mobile:
                client = context.GetTable <Client>().Where(x => x.Id == new Guid(identifier)).FirstOrDefault();
                break;

            default:
                return(null);
            }

            return(client);
        }
예제 #5
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));
        }