Пример #1
0
        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));
        }