public IActionResult Index(DateTime productionDate, string productName, SortState sortState, int countOfProd, int page = 1) { IEnumerable <ProductsProduction> productsProductions = _context.ProductsProductions.Include(p => p.DayProduction).Include(p => p.Product); if (productionDate == default) { _memoryCache.TryGetValue("productProductionDate", out productionDate); } else { _memoryCache.Set("productProductionDate", productionDate); productsProductions = productsProductions.Where(p => p.DayProduction.Date.Equals(productionDate)); } if (productName == null) { _memoryCache.TryGetValue("productProductionName", out productName); } else { _memoryCache.Set("productProductionName", productName); productsProductions = productsProductions.Where(n => n.Product.ProductName.Contains(productName)); } if (countOfProd == 0) { _memoryCache.TryGetValue("countProductProduction", out countOfProd); } else { _memoryCache.Set("countProductProduction", countOfProd); productsProductions = productsProductions.Where(p => p.Count == countOfProd); } if (sortState == SortState.No) { _memoryCache.TryGetValue("productProductionSort", out sortState); } else { _memoryCache.Set("productProductionSort", sortState); productsProductions = Sort(productsProductions, sortState); } int count = productsProductions.Count(); int pageSize = 15; productsProductions = productsProductions.Skip((page - 1) * pageSize).Take(pageSize).ToList(); ProductProdactionViewModel viewModel = new ProductProdactionViewModel { ProductsProductions = productsProductions, PageViewModel = new PageViewModel(count, page, pageSize), SortViewModel = new SortViewModel(sortState), ProductionDate = productionDate, ProductName = productName, Count = countOfProd }; return(View(viewModel)); }
public async Task <IActionResult> Create(ProductProdactionViewModel productProdactionViewModel) { DayProduction dayProduction = _context.DayProductions.Where(d => d.Date.Equals(productProdactionViewModel.Date)).FirstOrDefault(); if (dayProduction == null) { _context.DayProductions.Add(new DayProduction { Date = productProdactionViewModel.Date }); await _context.SaveChangesAsync(); dayProduction = _context.DayProductions.Where(d => d.Date.Equals(productProdactionViewModel.Date)).FirstOrDefault(); } ProductsProduction productsProduction = productProdactionViewModel.ProductsProduction; productsProduction.DayProductionId = dayProduction.DayProductionId; _context.Add(productsProduction); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var productProduction = await _context.ProductsProductions.FindAsync(id); ProductProdactionViewModel productProdactionViewModel = new ProductProdactionViewModel { ProductsProduction = productProduction }; var productsProduction = await _context.ProductsProductions.FindAsync(id); if (productsProduction == null) { return(NotFound()); } ViewData["ProductId"] = new SelectList(_context.Products, "ProductId", "ProductName"); return(View(productProdactionViewModel)); }
public async Task <IActionResult> Edit(int id, ProductProdactionViewModel productProdactionViewModel) { if (id != productProdactionViewModel.ProductsProduction.ProductProductionId) { return(NotFound()); } DayProduction dayProduction = _context.DayProductions.Where(d => d.Date.Equals(productProdactionViewModel.Date)).FirstOrDefault(); if (dayProduction == null) { _context.DayProductions.Add(new DayProduction { Date = productProdactionViewModel.Date }); await _context.SaveChangesAsync(); dayProduction = _context.DayProductions.Where(d => d.Date.Equals(productProdactionViewModel.Date)).FirstOrDefault(); } ProductsProduction productsProduction = productProdactionViewModel.ProductsProduction; productsProduction.DayProductionId = dayProduction.DayProductionId; try { _context.Update(productsProduction); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProductsProductionExists(productsProduction.ProductProductionId)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index")); }