public async Task <List <AilmentResponse> > GetList() { using (var db = new PhDbContext()) { var ailments = await db.Ailments.ToListAsync(); return(Mapper.Map <List <AilmentResponse> >(ailments)); } }
public async Task <Ailment> GetById(int id) { using (var db = new PhDbContext()) { var ailment = await db.Ailments .SingleOrDefaultAsync(p => p.Id == id); return(ailment); } }
public void CreateAilment(CreateAilmentRequest request) { using (var db = new PhDbContext()) { var ailment = new Ailment { Name = request.Name }; db.Ailments.Add(ailment); db.SaveChanges(); } }
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(); } }
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)); } }