public async Task <IActionResult> Edit(int?CarelloId, int?LocazioneId, [Bind("Identificativo,Descrizione,Date,CarelloId,LocazioneId")] Arrivi arrivi) { if (CarelloId != arrivi.CarelloId || LocazioneId != arrivi.LocazioneId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(arrivi); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ArriviExists(arrivi.CarelloId, arrivi.LocazioneId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["CarelloId"] = new SelectList(_context.Carelli, "Id", "Matricola", arrivi.CarelloId); ViewData["LocazioneId"] = new SelectList(_context.Locazioni, "Id", "Codice", arrivi.LocazioneId); return(View(arrivi)); }
public async Task <ActionResult> Json([FromBody] DbViewArriviComponente dbView) { string result = "Error! c'è un problema!"; if (!string.IsNullOrEmpty(dbView.Matricola) && !string.IsNullOrEmpty(dbView.Descrizione) && dbView.ComponenteCarello != null && !string.IsNullOrEmpty(dbView.Identificativo) && !string.IsNullOrEmpty(dbView.CodiceLocazione) && dbView.AreaId != 0) { //controllo per sapere se il carello esiste già Carello carello = _context.Carelli.FirstOrDefault(c => c.Matricola == dbView.Matricola); //se non esiste lo aggiungiamo if (carello == null) { carello = new Carello(); carello.Matricola = dbView.Matricola; _context.Carelli.Add(carello); await _context.SaveChangesAsync(); } int idCarello = carello.Id; //controllo per sapere se la locazione esiste già Locazione locazione = _context.Locazioni.FirstOrDefault(l => l.AreaId == dbView.AreaId && l.Codice == dbView.CodiceLocazione); //se non esiste la aggiungiamo if (locazione == null) { locazione = new Locazione(); locazione.Codice = dbView.CodiceLocazione; locazione.AreaId = dbView.AreaId; _context.Locazioni.Add(locazione); await _context.SaveChangesAsync(); } int locazioneId = locazione.Id; //Verifica se è gia stato effetuato questa accetazione Arrivi arrivi = _context.Arrivi.Find(idCarello, locazioneId); if (arrivi == null) { arrivi = new Arrivi(); arrivi.Identificativo = dbView.Identificativo; arrivi.Descrizione = dbView.Descrizione; arrivi.Date = DateTime.Now; arrivi.CarelloId = idCarello; arrivi.LocazioneId = locazioneId; _context.Arrivi.Add(arrivi); await _context.SaveChangesAsync(); } else { //manda in error 500 se si cerca di inserire un carello gia presente e una locazione gia presente } //aggiornamento delle componente di questo carello ComponenteDelCarello cdc; Componente compo; foreach (var item in dbView.ComponenteCarello) { cdc = new ComponenteDelCarello(); compo = _context.Componente.FirstOrDefault(c => c.Codice == item.ComponenteId); cdc.ComponenteId = compo.Id; cdc.CarelloId = idCarello; cdc.Qty = item.Qty; _context.ComponentiDeiCarelli.Add(cdc); } _context.SaveChanges(); result = "Success!"; } return(Json(result)); }