예제 #1
0
        public MezzoPrenotato Get(MezzoPrenotatoCommand command)
        {
            //TODO PARTE CHIAMATA DB

            //TODO DA MODIFICARE CON LA CONNESSIONE AL DB PER IL REPERIMENTO DEI DATI DEFINITIVI
            //DATI FAKE - ORA LI LEGGO DA FILE
            List <ComposizioneMezzi> mezzi          = new List <ComposizioneMezzi>();
            ComposizioneMezzi        mezzo          = new ComposizioneMezzi();
            MezzoPrenotato           mezzoPrenotato = new MezzoPrenotato();
            string filepath = "Fake/MezziComposizione.json";
            string json;

            using (StreamReader r = new StreamReader(filepath))
            {
                json = r.ReadToEnd();
            }

            mezzi = JsonConvert.DeserializeObject <List <ComposizioneMezzi> >(json);
            mezzo = mezzi.Where(x => x.Mezzo.Codice.Equals(command.MezzoPrenotato.mezzoComposizione.Mezzo.Codice)).FirstOrDefault();
            mezzi.Remove(mezzo);
            mezzo.IstanteScadenzaSelezione = DateTime.Now.AddSeconds(15);
            mezzi.Add(mezzo);
            mezzi.Sort(delegate(ComposizioneMezzi x, ComposizioneMezzi y)
            {
                return(Convert.ToInt32(x.TempoPercorrenza).CompareTo(Convert.ToInt32(y.TempoPercorrenza)));
            });
            string fileText = System.IO.File.ReadAllText(@"Fake/MezziComposizione.json");
            string jsonNew  = JsonConvert.SerializeObject(mezzi);

            System.IO.File.WriteAllText(@"Fake/MezziComposizione.json", jsonNew);
            mezzoPrenotato.mezzoComposizione    = mezzo;
            mezzoPrenotato.mezzoComposizione.Id = command.MezzoPrenotato.mezzoComposizione.Id;
            mezzoPrenotato.codiceSede           = command.CodiceSede;
            return(mezzoPrenotato);
        }
        public async Task <IActionResult> Post(MezzoPrenotato mezzoPrenotato)
        {
            var codiceSede = Request.Headers["codicesede"];


            var command = new MezzoPrenotatoCommand()
            {
                MezzoPrenotato = mezzoPrenotato,
                CodiceSede     = codiceSede
            };

            try
            {
                handler.Handle(command);

                return(Ok());
            }
            catch
            {
                return(BadRequest());
            }
        }
 public async Task SendNotification(MezzoPrenotatoCommand command)
 {
     await _notificationHubContext.Clients.Group(command.MezzoPrenotato.codiceSede).SendAsync("NotifyAddPrenotazioneMezzo", command);
 }