Example #1
0
        public async Task <List <AilmentResponse> > GetList()
        {
            using (var db = new PhDbContext())
            {
                var ailments = await db.Ailments.ToListAsync();

                return(Mapper.Map <List <AilmentResponse> >(ailments));
            }
        }
Example #2
0
        public async Task <Ailment> GetById(int id)
        {
            using (var db = new PhDbContext())
            {
                var ailment = await db.Ailments
                              .SingleOrDefaultAsync(p => p.Id == id);

                return(ailment);
            }
        }
Example #3
0
        public void CreateAilment(CreateAilmentRequest request)
        {
            using (var db = new PhDbContext())
            {
                var ailment = new Ailment
                {
                    Name = request.Name
                };

                db.Ailments.Add(ailment);
                db.SaveChanges();
            }
        }
Example #4
0
        public void CreateProduct(CreateProductRequest request)
        {
            using (var db = new PhDbContext())
            {
                var product = new Product
                {
                    Name = request.Name
                };

                if (request.SelectedAilments != null && request.SelectedAilments.Length > 0)
                {
                    var ailments = db.Ailments
                                   .Where(a => request.SelectedAilments.Contains(a.Id))
                                   .ToList();

                    //product.Ailments = ailments;
                }

                db.Products.Add(product);
                db.SaveChanges();
            }
        }
Example #5
0
        public async Task <List <ProductResponse> > GetListByAilmentsId(ProductRequest request)
        {
            using (var db = new PhDbContext())
            {
                /*var products = await db.Products
                 *  .Include(p => p.Ingredients)
                 *  .Include(p => p.Ingredients.Select(i => i.CureAilments))
                 *  .Where(p => p.Ingredients.Any(i => i.CureAilments.Where(request.AilmentsIds.Contains(i.Id))))
                 *  .ToListAsync();
                 *
                 * return Mapper.Map<List<ProductResponse>>(products);*/

                var products = await db.Ingredients
                               .Include(i => i.CureAilments)
                               .Where(p => p.CureAilments.Any(a => request.AilmentsIds.Contains(a.Id)))
                               .SelectMany(i => i.Products)
                               .Include(p => p.Ingredients)
                               .Include(p => p.Ailments)
                               .Distinct()
                               .ToListAsync();

                return(Mapper.Map <List <ProductResponse> >(products));
            }
        }