コード例 #1
0
        private List <MultiDialogsBot.Entity> GetEntitiesAsync(EntitiesQuery searchQuery)
        {
            var entities = new List <MultiDialogsBot.Entity>();

            MockDataStore ms = new MockDataStore();

            if (Option == "Groceries")
            {
                entities = ms.Groceries;
            }
            if (Option == "Pharmacy")
            {
                entities = ms.Pharmacies;
            }
            if (Option == "Covid 19 Screening")
            {
                entities = ms.Covid19testsites;
            }

            //Bing Image Search API
            //SearchResult result = BingImageSearch(Option);
            //deserialize the JSON response from the Bing Image Search API
            //dynamic jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(result.jsonResult);
            //var val = jsonObj["value"];

            //SearchResult result1 = BingLocalSearch($"{ Option} near {searchQuery.Destination}");
            //dynamic jsonObj1 = Newtonsoft.Json.JsonConvert.DeserializeObject(result1.jsonResult);
            //var val1 = jsonObj1["value"];



            // Filling the hotels results manually just for demo purposes
            //for (int i = 1; i <= 5; i++)
            //{
            //    var random = new Random(i);
            //    Hotel hotel = new Hotel()
            //    {
            //        Name = $"{searchQuery.Destination} Hotel {i}",
            //        Location = searchQuery.Destination,
            //        Timings = random.Next(1, 5),
            //        NumberOfReviews = random.Next(0, 5000),
            //        PriceStarting = random.Next(80, 450),
            //        Image = jsonObj["value"][i - 1]["contentUrl"]   // $"https://placehold.imgix.net/~text?txtsize=35&txt={Option}+{i}&w=500&h=260"
            //};

            //    hotels.Add(hotel);
            //}

            //hotels.Sort((h1, h2) => h1.PriceStarting.CompareTo(h2.PriceStarting));

            return(entities);
        }
        public IActionResult SearchEntity(int pageNo, int pageSize, long number = 0, string name = "", string email = "")
        {
            try
            {
                UserProfile UP = this.help.GetProfileId(HttpContext, db);
                if (UP.UserId <= 0)
                {
                    return(StatusCode(401, new { message = "الرجاء الـتأكد من أنك قمت بتسجيل الدخول" }));
                }
                if (UP.ProfileId <= 0)
                {
                    return(StatusCode(401, new { message = "الرجاء تفعيل ضبط الملف الانتخابي التشغيلي" }));
                }

                IQueryable <Entities> EntitiesQuery;

                EntitiesQuery = (from p in db.Entities
                                 where p.ProfileId == UP.ProfileId && p.Status != 9
                                 select p)
                                .AsNoTracking();


                if (number > 0)
                {
                    EntitiesQuery = EntitiesQuery.Where(e => e.Number == number);
                }

                if (!String.IsNullOrWhiteSpace(name))
                {
                    EntitiesQuery = EntitiesQuery.Where(e => e.Name.ToLower().Contains(name.ToLower()));
                }

                if (!String.IsNullOrWhiteSpace(email))
                {
                    EntitiesQuery = EntitiesQuery.Where(e => e.Email.ToLower().Contains(email.ToLower()));
                }



                var EntitesCount = EntitiesQuery.Count();

                var EntitesList = EntitiesQuery
                                  .OrderByDescending(x => x.CreatedOn)
                                  .Select(x => new
                {
                    x.Address,
                    x.CreatedBy,
                    x.CreatedOn,
                    x.Descriptions,
                    x.Email,
                    x.EntityId,
                    //x.EntityRepresentatives,
                    //x.EntityUsers,
                    x.Name,
                    x.Number,
                    x.Owner,
                    x.Phone,
                    x.Status,
                    Subconstituency = x.Candidates.Select(r => new { r.SubConstituency.ArabicName, SubConstituencyId = r.SubConstituency.ConstituencyDetailId }).ToList()
                }).Skip((pageNo - 1) * pageSize).Take(pageSize).ToList();


                return(Ok(new { Entites = EntitesList, count = EntitesCount }));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }