コード例 #1
0
        public async Task <HttpResponseMessage> EditScadenzaVeicolo([FromBody] ScadenzeVeicoli scadVeicolo)
        {
            if (scadVeicolo == null)
            {
                /* E' stato inviato un oggetto vuoto. */
                return(Request.CreateResponse(HttpStatusCode.NotAcceptable));
            }

            var currentScadenzaVeicolo = await _context.ScadenzeVeicoli.FirstOrDefaultAsync(sv => sv.IdScadenza == scadVeicolo.IdScadenza);

            if (currentScadenzaVeicolo == null)
            {
                /* Non è stata trovata una scadenzaVeicolo con quell'id. */
                return(Request.CreateResponse(HttpStatusCode.NotAcceptable));
            }
            else
            {
                //_context.Entry(currentScadenzaVeicolo).CurrentValues.SetValues(scadVeicolo);
                currentScadenzaVeicolo.IdVeicolo     = scadVeicolo.IdVeicolo;
                currentScadenzaVeicolo.Data          = scadVeicolo.Data;
                currentScadenzaVeicolo.IdScadenza    = scadVeicolo.IdScadenza;
                currentScadenzaVeicolo.Costo         = scadVeicolo.Costo;
                currentScadenzaVeicolo.IdDocumento   = scadVeicolo.IdDocumento;
                currentScadenzaVeicolo.Note          = scadVeicolo.Note;
                currentScadenzaVeicolo.Avviso        = scadVeicolo.Avviso;
                currentScadenzaVeicolo.AvvisoInviato = scadVeicolo.AvvisoInviato;

                /* Il DateTime di JS parte dal 1970-01-01.
                 * Se risulta una data precedente a tale data (se vicino all'anno "1") vuol dire che ha preso i tick di JS (x*1 ms passati da 1970-01-01) e li ha usati come tick di C# (y*100 ns passati dal 0001-01-01).
                 * 1 ms = 10_000 C#tick da 100ns */

                /* Versione "semplice", che lo sovrascrive al 1977-07-17. */
                //if (currentScadenzaVeicolo.Data.Ticks < (new DateTime(1977, 7, 17)).Ticks)
                //    currentScadenzaVeicolo.Data = (new DateTime(1977, 7, 17));
                /* Conversione da JS.Ticks a C#.Ticks (tick da 1ms a 100ns, aggiungi i tick al 1970-01-01). */
                if (currentScadenzaVeicolo.Data.Ticks <= (new DateTime(1970, 1, 2)).Ticks)
                {
                    currentScadenzaVeicolo.Data = (new DateTime((scadVeicolo.Data.Ticks * 10_000) + (new DateTime(1970, 1, 1)).Ticks));
                }

                currentScadenzaVeicolo.Note = RiduzioneStringaAMaxLunghezzaConAvvisoPersonalizzabile(currentScadenzaVeicolo.Note, 50, "*");

                await _context.SaveChangesAsync();

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
        }
コード例 #2
0
        public async Task <HttpResponseMessage> AddScadenzaVeicolo([FromBody] ScadenzeVeicoli scadVeicolo)
        {
            var currentScadenzaVeicolo = new ScadenzeVeicoli();

            if (scadVeicolo == null)
            {
                /* La scadenza arrivata dal browser è null. */
                return(Request.CreateResponse(HttpStatusCode.NotAcceptable));
            }
            else
            {
                currentScadenzaVeicolo.Avviso        = scadVeicolo.Avviso;
                currentScadenzaVeicolo.AvvisoInviato = false;
                currentScadenzaVeicolo.Costo         = scadVeicolo.Costo;
                currentScadenzaVeicolo.Data          = scadVeicolo.Data;
                currentScadenzaVeicolo.IdDocumento   = scadVeicolo.IdDocumento;
                currentScadenzaVeicolo.IdScadenza    = scadVeicolo.IdScadenza;
                currentScadenzaVeicolo.IdVeicolo     = scadVeicolo.IdVeicolo;
                //currentScadenzaVeicolo.Note = string.IsNullOrWhiteSpace(scadVeicolo.Note) ? "" : scadVeicolo.Note;
                currentScadenzaVeicolo.Note = string.IsNullOrWhiteSpace(scadVeicolo.Note) ? null : scadVeicolo.Note;

                /*Il DateTime di JS parte dal 1970-01-01.
                 * Se risulta una data precedente a tale data(se vicino all'anno "1") vuol dire che ha preso i tick di JS (x*1 ms passati da 1970-01-01) e li ha usati come tick di C# (y*100 ns passati dal 0001-01-01).
                 * 1 ms = 10_000 C#tick da 100ns */
                /* Conversione da JS.Ticks a C#.Ticks (tick da 1ms a 100ns, aggiungi i tick al 1970-01-01) nel caso pre-1970. */
                if (currentScadenzaVeicolo.Data.Ticks <= (new DateTime(1970, 1, 2)).Ticks)
                {
                    currentScadenzaVeicolo.Data = DaJSTickACSTick(currentScadenzaVeicolo.Data);
                }

                currentScadenzaVeicolo.Note = RiduzioneStringaAMaxLunghezzaConAvvisoPersonalizzabile(currentScadenzaVeicolo.Note, 50, "*");


                _context.ScadenzeVeicoli.Add(currentScadenzaVeicolo);
                await _context.SaveChangesAsync();

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
        }