Exemplo n.º 1
0
        public async Task <IList <CatalogItem> > GetItemsByVoiceCommandAsync(string query)
        {
            await Task.FromResult(true);

            using (var db = new LocalCatalogDb())
            {
                IEnumerable <CatalogItem> items = db.CatalogItems;

                var queryIgnoreUpper = query?.ToUpperInvariant() ?? string.Empty;

                var filterType = db.CatalogTypes.FirstOrDefault(item => item.Type.ToUpperInvariant().Contains(queryIgnoreUpper));
                if (filterType != null)
                {
                    items = items.Where(item => item.CatalogType.Id == filterType.Id);
                }

                var filterBrand = db.CatalogBrands.FirstOrDefault(item => item.Brand.ToUpperInvariant().Contains(queryIgnoreUpper));
                if (filterBrand != null)
                {
                    items = items.Where(item => item.CatalogBrand.Id == filterBrand.Id);
                }

                return(Populate(db, items.ToArray().OrderBy(r => r.Name)).ToList());
            }
        }
Exemplo n.º 2
0
        public async Task <IList <CatalogItemModel> > GetItemsByVoiceCommandAsync(string query)
        {
            await Task.CompletedTask;

            using (var db = new LocalCatalogDb())
            {
                IEnumerable <CatalogItem> items = db.CatalogItems;

                var queryIgnoreUpper = query?.ToUpperInvariant() ?? string.Empty;

                var filterType = db.CatalogTypes.FirstOrDefault(item => item.Type.ToUpperInvariant().Contains(queryIgnoreUpper));
                if (filterType != null)
                {
                    items = items.Where(item => item.CatalogTypeId == filterType.Id);
                }

                var filterBrand = db.CatalogBrands.FirstOrDefault(item => item.Brand.ToUpperInvariant().Contains(queryIgnoreUpper));
                if (filterBrand != null)
                {
                    items = items.Where(item => item.CatalogBrandId == filterBrand.Id);
                }

                return(items.Select(r => new CatalogItemModel(r)).OrderBy(r => r.Name).ToList());
            }
        }
Exemplo n.º 3
0
        public async Task <IList <CatalogItem> > GetItemsAsync(CatalogType catalogType, CatalogBrand catalogBrand, string query)
        {
            await Task.FromResult(true);

            using (var db = new LocalCatalogDb())
            {
                IEnumerable <CatalogItem> items = db.CatalogItems;

                if (!String.IsNullOrEmpty(query))
                {
                    items = items.Where(r => $"{r.Name}".ToUpper().Contains(query.ToUpper()));
                }

                if (catalogType != null && catalogType.Id > 0)
                {
                    items = items.Where(r => r.CatalogTypeId == catalogType.Id);
                }

                if (catalogBrand != null && catalogBrand.Id > 0)
                {
                    items = items.Where(r => r.CatalogBrandId == catalogBrand.Id);
                }

                return(Populate(db, items.ToArray().OrderBy(r => r.Name)).ToList());
            }
        }
Exemplo n.º 4
0
        public async Task SaveItemAsync(CatalogItem item)
        {
            await Task.FromResult(true);

            using (var db = new LocalCatalogDb())
            {
                item.Picture = null;
                if (item.Id > 0)
                {
                    var oldItem = db.CatalogItems.FirstOrDefault(r => r.Id == item.Id);
                    if (oldItem != null)
                    {
                        db.CatalogItems.Remove(oldItem);
                    }
                }
                else
                {
                    item.Id = 1;
                    if (db.CatalogItems.Count > 0)
                    {
                        item.Id = db.CatalogItems.Max(r => r.Id) + 1;
                    }
                }
                Populate(db, item);
                db.CatalogItems.Add(item);
                db.SaveChanges();
            }
        }
Exemplo n.º 5
0
        public async Task <IList <CatalogItemModel> > GetItemsAsync(int typeId, int brandId, string query)
        {
            await Task.CompletedTask;

            using (var db = new LocalCatalogDb())
            {
                IEnumerable <CatalogItem> items = db.CatalogItems;

                if (!String.IsNullOrEmpty(query))
                {
                    items = items.Where(r => $"{r.Name}".ToUpper().Contains(query.ToUpper()));
                }

                if (typeId > -1)
                {
                    items = items.Where(r => r.CatalogTypeId == typeId);
                }

                if (brandId > -1)
                {
                    items = items.Where(r => r.CatalogBrandId == brandId);
                }

                return(items.Select(r => new CatalogItemModel(r)).OrderBy(r => r.Name).ToList());
            }
        }
Exemplo n.º 6
0
 private IEnumerable <CatalogItem> Populate(LocalCatalogDb db, IEnumerable <CatalogItem> items)
 {
     foreach (var item in items)
     {
         Populate(db, item);
     }
     return(items);
 }
Exemplo n.º 7
0
        public async Task <IList <CatalogBrand> > GetCatalogBrandsAsync()
        {
            await Task.FromResult(true);

            using (var db = new LocalCatalogDb())
            {
                return(db.CatalogBrands);
            }
        }
Exemplo n.º 8
0
 private CatalogItem Populate(LocalCatalogDb db, CatalogItem item)
 {
     if (item != null)
     {
         item.CatalogType  = db.CatalogTypes.FirstOrDefault(r => r.Id == item.CatalogTypeId);
         item.CatalogBrand = db.CatalogBrands.FirstOrDefault(r => r.Id == item.CatalogBrandId);
     }
     return(item);
 }
Exemplo n.º 9
0
        public async Task <IList <CatalogBrandModel> > GetCatalogBrandsAsync()
        {
            await Task.CompletedTask;

            using (var db = new LocalCatalogDb())
            {
                return(db.CatalogBrands.Select(r => new CatalogBrandModel(r)).ToList());
            }
        }
Exemplo n.º 10
0
        public async Task <IList <CatalogItem> > RelatedItemsByTypeAsync(int catalogTypeId)
        {
            await Task.FromResult(true);

            using (var db = new LocalCatalogDb())
            {
                var items = catalogTypeId == 0 ? db.CatalogItems : db.CatalogItems.Where(r => r.CatalogTypeId == catalogTypeId);
                return(Populate(db, items).ToList());
            }
        }
Exemplo n.º 11
0
        public async Task <CatalogItemModel> GetItemByIdAsync(int id)
        {
            await Task.CompletedTask;

            using (var db = new LocalCatalogDb())
            {
                var item = db.CatalogItems.Where(r => r.Id == id).Select(r => new CatalogItemModel(r)).FirstOrDefault();
                return(item);
            }
        }
Exemplo n.º 12
0
        public async Task <IList <CatalogItemModel> > RelatedItemsByTypeAsync(int typeId)
        {
            await Task.CompletedTask;

            using (var db = new LocalCatalogDb())
            {
                var items = typeId <= 0 ? db.CatalogItems : db.CatalogItems.Where(r => r.CatalogTypeId == typeId);
                return(items.Select(r => new CatalogItemModel(r)).OrderBy(r => r.Name).ToList());
            }
        }
Exemplo n.º 13
0
        public async Task <CatalogItem> GetItemByIdAsync(int id)
        {
            await Task.FromResult(true);

            using (var db = new LocalCatalogDb())
            {
                var item = db.CatalogItems.FirstOrDefault(r => r.Id == id);
                Populate(db, item);
                return(item);
            }
        }
Exemplo n.º 14
0
        static public async Task FillDatabase(string connectionString)
        {
            var provider = new SqlServerProvider(connectionString);

            using (var db = new LocalCatalogDb("TempCatalogDb.json"))
            {
                CreateCatalogTypes(provider, db.CatalogTypes);
                CreateCatalogBrands(provider, db.CatalogBrands);
                await CreateCatalogItems(provider, db.CatalogItems);
            }
        }
Exemplo n.º 15
0
        public async Task DeleteItemAsync(CatalogItem item)
        {
            await Task.FromResult(true);

            using (var db = new LocalCatalogDb())
            {
                var oldItem = db.CatalogItems.FirstOrDefault(r => r.Id == item.Id);
                if (oldItem != null)
                {
                    db.CatalogItems.Remove(oldItem);
                }
                db.SaveChanges();
            }
        }
Exemplo n.º 16
0
        public async Task SaveItemAsync(CatalogItemModel model)
        {
            await Task.CompletedTask;
            var item = model.Source;

            using (var db = new LocalCatalogDb())
            {
                var oldItem = db.CatalogItems.FirstOrDefault(r => r.Id == item.Id);
                if (oldItem != null)
                {
                    db.CatalogItems.Remove(oldItem);
                }
                if (item.Id == 0)
                {
                    item.Id = 1;
                    if (db.CatalogItems.Count > 0)
                    {
                        item.Id = db.CatalogItems.Max(r => r.Id) + 1;
                    }
                }
                db.CatalogItems.Add(item);
                db.SaveChanges();
            }
        }