Exemplo n.º 1
0
        public static GetListResponseModel GetI_Favourite_temsForList(GetFavouriteListRequestModel requestModel)
        {
            DbGeography   userLoc = null;
            List <string> latlng  = new List <string>();

            if (!string.IsNullOrEmpty(requestModel.Cords) && requestModel.Cords != "")
            {
                latlng = requestModel.Cords.Split('_').ToList();
                if (latlng.Count == 2)
                {
                    userLoc = CommonService.ConvertLatLonToDbGeography(latlng[1], latlng[0]); // lat _ lng
                }
            }
            using (var dbContext = new DeliversEntities())
            {
                requestModel.CurrentPage--;
                var response = new GetListResponseModel();
                var newList  = new List <ListItemLocal>();

                string searchText = null;
                if (!string.IsNullOrEmpty(requestModel.SearchTerm))
                {
                    searchText = requestModel.SearchTerm.ToLower();
                }

                var list = dbContext.ListItems_Favt.Where(item =>
                                                          (string.IsNullOrEmpty(searchText) ||
                                                           item.ListItem.Name.ToLower().Contains(searchText) ||
                                                           item.ListItem.Description.ToLower().Contains(searchText) ||
                                                           (item.ListItem.ItemDetails.Any(det => det.Name.ToLower().Contains(searchText)))
                                                          )).ToList();
                if (list.Any())
                {
                    var take = list.Skip(requestModel.CurrentPage * requestModel.ItemsPerPage).
                               Take(requestModel.ItemsPerPage).ToList();
                    if (take.Any())
                    {
                        var finals = take.Select(obj => obj.ListItem.MapListItem()).ToList();
                        ///
                        foreach (var rest in finals)
                        {
                            var dist = CommonService.GetDistance((double)userLoc.Latitude, (double)userLoc.Longitude, Convert.ToDouble(rest.LocationObj.Latitude), Convert.ToDouble(rest.LocationObj.Longitude));
                            //  if ((int)dist < Convert.ToInt16(20))
                            {
                                var disst = Math.Round((double)dist, 2);
                                rest.LocationObj = null;
                                rest.Distance    = disst;
                                rest.Name        = rest.Name;
                                newList.Add(rest);
                            }
                        }
                        response.Items = newList.OrderBy(obj => obj.Distance).ToList();
                    }
                }
                response.ItemsPerPage = requestModel.ItemsPerPage;
                response.CurrentPage++;
                response.TotalItems = list.Count;
                return(response);
            }
        }
Exemplo n.º 2
0
        public static GetOrdersResponseModel OrdersReadyToAssign(GetOrdersListRequestModel requestModel)
        {
            using (var dbContext = new DeliversEntities())
            {
                requestModel.CurrentPage--;
                var response = new GetOrdersResponseModel();
                var list     = dbContext.Orders
                               .Where(
                    od => od.Status == OrderHistoryEnu.ConfirmedByRestaurant.Value &&
                    od.OrderHistories.Any(str => str.Status == OrderHistoryEnu.ConfirmedByRestaurant.Value && str.IsCurrent))
                               .ToList();

                DbGeography   riderLoc = null;
                List <string> latlng   = new List <string>();
                if (!string.IsNullOrEmpty(requestModel.Cords) && requestModel.Cords != "")
                {
                    latlng = requestModel.Cords.Split('_').ToList();
                    if (latlng.Count == 2)
                    {
                        riderLoc = CommonService.ConvertLatLonToDbGeography(latlng[1], latlng[0]); // lat _ lng
                    }
                }

                var inRangeOrders = new List <Order>();

                if (list != null && list.Any())
                {
                    foreach (var o in list)
                    {
                        var dist = CommonService.GetDistance((double)riderLoc.Latitude, (double)riderLoc.Longitude, Convert.ToDouble(o.Cords.Latitude), Convert.ToDouble(o.Cords.Longitude));
                        //if ((int)dist < Convert.ToInt16(10))
                        {
                            inRangeOrders.Add(o);
                        }
                    }
                }

                if (inRangeOrders.Any())
                {
                    var take = list.Skip(requestModel.CurrentPage * requestModel.ItemsPerPage).
                               Take(requestModel.ItemsPerPage).ToList();
                    if (take.Any())
                    {
                        var finals = take.Select(obj => obj.MappOrderWaitingForPickup()).ToList();
                        response.Orders = finals;
                    }
                }
                response.ItemsPerPage = requestModel.ItemsPerPage;
                response.CurrentPage++;
                response.TotalItems = list.Count;
                return(response);
            }
        }
Exemplo n.º 3
0
        public static List <UserLocal> GetAvaialableDeliveryBoys(DbGeography location)
        {
            DbGeography userLoc = location;

            #region location conversion
            //List<string> latlng = new List<string>();
            //if (!string.IsNullOrEmpty(location) && location != "")
            //{
            //    latlng = location.Split('_').ToList();
            //    if (latlng.Count == 2)
            //    {
            //        userLoc = CommonService.ConvertLatLonToDbGeography(latlng[1], latlng[0]); // lat _ lng
            //    }
            //}
            #endregion

            var riders = new List <UserLocal>();

            using (var dbContext = new DeliversEntities())
            {
                var allDevliveryBoyes = dbContext.AspNetUsers.Where(o => o.Type == 0 && (o.Status ?? false) && (o.IsApproved ?? false)).ToList();

                if (allDevliveryBoyes != null && allDevliveryBoyes.Any())
                {
                    foreach (var d in allDevliveryBoyes)
                    {
                        var dloc = dbContext.Rider_Location_Map.FirstOrDefault(loc => loc.UserId == d.Id);
                        if (dloc != null)
                        {
                            var dist = CommonService.GetDistance((double)userLoc.Latitude, (double)userLoc.Longitude, Convert.ToDouble(dloc.Location.Latitude), Convert.ToDouble(dloc.Location.Longitude));
                            //  if ((int)dist < Convert.ToInt16(10))
                            {
                                riders.Add(d.Mapper());
                            }
                        }
                    }
                }
            }
            return(riders);
        }
Exemplo n.º 4
0
        public static GetListResponseModel GetItemsForList(GetListRequestModel requestModel)
        {
            var   distanceFrom = 0;
            var   distanceTo   = 1000000;
            float rating       = 0;

            if (!string.IsNullOrEmpty(requestModel.DistanceFrom))
            {
                distanceFrom = Convert.ToInt16(requestModel.DistanceFrom);
            }
            if (!string.IsNullOrEmpty(requestModel.DistanceTo))
            {
                distanceTo = Convert.ToInt16(requestModel.DistanceTo);
            }
            if (!string.IsNullOrEmpty(requestModel.Rating))
            {
                rating = (float)Convert.ToDouble(requestModel.Rating);
            }

            DbGeography   userLoc = null;
            List <string> latlng  = new List <string>();

            if (!string.IsNullOrEmpty(requestModel.Cords) && requestModel.Cords != "")
            {
                latlng = requestModel.Cords.Split('_').ToList();
                if (latlng.Count == 2)
                {
                    userLoc = CommonService.ConvertLatLonToDbGeography(latlng[1], latlng[0]); // lat _ lng
                }
            }
            using (var dbContext = new DeliversEntities())
            {
                var allCats = GetCategories(true);
                if ((requestModel.IsWeb && (requestModel.TypeList == null || requestModel.TypeList.Count() == 0)) ||
                    (!requestModel.IsWeb && (requestModel.Type == -1)))
                {
                    requestModel.TypeList = new List <int>();
                    requestModel.TypeList = allCats.Select(c => (int)c.CatId).ToList();
                }
                requestModel.CurrentPage--;
                var response = new GetListResponseModel();
                var newList  = new List <ListItemLocal>();

                string searchText = null;
                if (!string.IsNullOrEmpty(requestModel.SearchTerm))
                {
                    searchText = requestModel.SearchTerm.ToLower();
                }

                var list = dbContext.ListItems.Where(item => item.Status &&
                                                     ((requestModel.IsWeb && requestModel.TypeList.Any(o => o == item.Type)) ||
                                                      (!requestModel.IsWeb && requestModel.Type == -1 && requestModel.TypeList.Any(o => o == item.Type)) ||
                                                      (item.Type == requestModel.Type && !requestModel.IsWeb))

                                                     &&
                                                     (string.IsNullOrEmpty(searchText) ||
                                                      item.Name.ToLower().Contains(searchText) ||
                                                      item.Address.ToLower().Contains(searchText) ||
                                                      item.Description.ToLower().Contains(searchText) ||
                                                      (item.ItemDetails.Any(det => det.Name.ToLower().Contains(searchText)))
                                                     )).ToList();
                if (list.Any())
                {
                    var finals = list.Select(obj => obj.MapListItem()).ToList();
                    foreach (var rest in finals)
                    {
                        var restRate = (float)Convert.ToDouble(rest.Rating);
                        var dist     = CommonService.GetDistance((double)userLoc.Latitude, (double)userLoc.Longitude, Convert.ToDouble(rest.LocationObj.Latitude), Convert.ToDouble(rest.LocationObj.Longitude));
                        if ((int)dist >= distanceFrom && (int)dist <= distanceTo && restRate >= rating)
                        {
                            var disst = Math.Round((double)dist, 2);
                            rest.LocationObj = null;
                            rest.Distance    = disst;
                            rest.Name        = rest.Name;
                            rest.TypeName    = allCats.FirstOrDefault(c => c.CatId == rest.Type).Name;
                            newList.Add(rest);
                        }
                    }
                    newList = newList.OrderBy(obj => obj.Distance).ToList();
                    var take = newList.Skip(requestModel.CurrentPage * requestModel.ItemsPerPage).
                               Take(requestModel.ItemsPerPage).ToList();
                    response.Items = take;
                }
                requestModel.CurrentPage++;
                response.ItemsPerPage = requestModel.ItemsPerPage;
                response.CurrentPage  = requestModel.CurrentPage;
                response.TotalItems   = newList.Count;
                return(response);
            }
        }