public async Task <IActionResult> Create(StockAndSupplierViewModel model) { if (ModelState.IsValid) { //esto recupera todos los regsitros en los que el nombre sea el mismo var doesStockExists = _db.Stock.Include(s => s.Supplier).Where(s => s.Name == model.Stock.Name && s.Supplier.Id == model.Stock.SupplierId); if (doesStockExists.Count() > 0) { //error StatusMessage = "Error: El stock existe bajo el proveedor: " + doesStockExists.First().Supplier.CompanyName + ". Por favor, use otro nombre"; } else { _db.Stock.Add(model.Stock); await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } } //en caso de que no sea valido tendremos que retroceder y crear el view model StockAndSupplierViewModel modelVM = new StockAndSupplierViewModel() { SupplierList = await _db.Supplier.ToListAsync(), Stock = model.Stock, StockList = await _db.Stock.OrderBy(p => p.Name).Select(p => p.Name).Distinct().ToListAsync(), StatusMessage = StatusMessage //Idneitty ya tiene un statusmessage que podemos usar }; return(View(modelVM)); }
//GET-Create public async Task <IActionResult> Create() { StockAndSupplierViewModel model = new StockAndSupplierViewModel() { SupplierList = await _db.Supplier.ToListAsync(), Stock = new Models.Stock(), StockList = await _db.Stock.OrderBy(p => p.Name).Select(p => p.Name).Distinct().ToListAsync() }; return(View(model)); }
//GET-Edit public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var stock = await _db.Stock.SingleOrDefaultAsync(m => m.Id == id); if (stock == null) { return(NotFound()); } StockAndSupplierViewModel model = new StockAndSupplierViewModel() { SupplierList = await _db.Supplier.ToListAsync(), Stock = stock, StockList = await _db.Stock.OrderBy(p => p.Name).Select(p => p.Name).Distinct().ToListAsync() }; return(View(model)); }