Esempio n. 1
0
        public static List <OnlineStore.Models.Public.ViewProducer> SimpleSearch(string key, List <int> groupIDs, Size?imageSize = null)
        {
            using (var db = OnlineStoreDbContext.Entity)
            {
                var query = from item in db.Producers
                            where item.ID != 8 &&
                            item.IsVisible &&
                            (item.Title.Contains(key) || item.TitleEn.Contains(key))
                            orderby item.OrderID
                            select new OnlineStore.Models.Public.ViewProducer
                {
                    ID       = item.ID,
                    Title    = item.Title,
                    TitleEn  = item.TitleEn,
                    Filename = item.Filename
                };

                if (groupIDs.Count > 0)
                {
                    query = query.Where(item => db.ProducerGroups.Any(
                                            group => groupIDs.Contains(group.GroupID) &&
                                            group.ProducerID == item.ID
                                            ));
                }

                var list = query.Take(20).ToList();

                foreach (var item in list)
                {
                    item.Filename = UrlProvider.GetProducerImage(item.Filename,
                                                                 !imageSize.HasValue ?
                                                                 StaticValues.SearchImageSize :
                                                                 imageSize.Value);
                }

                return(list);
            }
        }