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)); } }
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)); } }