public ActionResult Complete(int Id)
        {
            if (Session["loggedAdmin"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            var    reservationReader        = new ReservationReader();
            var    reservationWriter        = new ReservationWriter();
            string fileReservation          = Server.MapPath("~/App_Data/Prenotazioni.txt");
            var    reservationConfirmReader = new ReservationConfirmedReader();
            var    reservationConfirmWriter = new ReservationConfirmedWriter();
            string fileReservationConfirmed = Server.MapPath("~/App_Data/Confermato.txt");

            IList <Reservation>          prenotazioni = reservationReader.Read(fileReservation);
            IList <ReservationConfirmed> confermate   = reservationConfirmReader.Read(fileReservationConfirmed);

            ReservationConfirmed evasa = confermate.First(e => e.Id == Id);

            evasa.Evasa        = true;
            evasa.DataEvasione = DateTime.Now;
            Reservation daAggiornare = prenotazioni.First(e => e.Id == evasa.IdReservation);

            daAggiornare.Evasa = true;

            reservationWriter.Reset(fileReservation);
            foreach (var pre in prenotazioni)
            {
                string l = $"{pre.Id}|{pre.Data}|{pre.IdAccount}|{pre.IdProdotto}|{pre.NomeProdotto}|{pre.Prezzo}|{pre.Confermata}|{pre.Evasa}";
                reservationWriter.Append(fileReservation, l);
            }

            reservationConfirmWriter.Reset(fileReservationConfirmed);
            foreach (var prenoConf in confermate)
            {
                string linea = $"{prenoConf.Id}|{prenoConf.IdReservation}|{prenoConf.Data}|{prenoConf.IdAccount}|{prenoConf.IdProdotto}|{prenoConf.NomeProdotto}|{prenoConf.Prezzo}|{prenoConf.DataConferma}|{prenoConf.Evasa}|{prenoConf.DataEvasione}";
                reservationConfirmWriter.Append(fileReservationConfirmed, linea);
            }

            return(RedirectToAction("Index", "Reservation"));
        }
        public ActionResult Index()
        {
            if (Session["loggedAdmin"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            var    reservationReader              = new ReservationReader();
            string filepathPrenotazioni           = Server.MapPath("~/App_Data/Prenotazioni.txt");
            IList <Reservation> listaPrenotazioni = reservationReader.Read(filepathPrenotazioni);

            string          filepathAccount = Server.MapPath("~/App_Data/Utenti.txt");
            var             accountReader   = new UserReader();
            IList <Account> listaAccount    = accountReader.Read(filepathAccount);

            string filepathConfermato = Server.MapPath("~/App_Data/Confermato.txt");
            var    confirmedReader    = new ReservationConfirmedReader();
            IList <ReservationConfirmed> prenotazioniConfermate = confirmedReader.Read(filepathConfermato);

            IList <ReservationViewModel> listaPrenotazioneViewModel = listaPrenotazioni.Where(k => k.Confermata == false)
                                                                      .Select(pre => new ReservationViewModel()
            {
                Id           = pre.Id,
                Data         = pre.Data,
                NomeProdotto = pre.NomeProdotto,
                Cliente      = $"{listaAccount.First(e => e.Id == pre.IdAccount).Nome} {listaAccount.First(e => e.Id == pre.IdAccount).Cognome}",
                Prezzo       = pre.Prezzo,
                Confermata   = pre.Confermata
            }).ToList();

            IList <ReservationConfirmedViewModel> prenotazioniConfermateViewModel = prenotazioniConfermate.Where(e => e.Evasa == false)
                                                                                    .Select(pre => new ReservationConfirmedViewModel()
            {
                Id            = pre.Id,
                Data          = pre.Data,
                IdReservation = pre.IdReservation,
                Cliente       = $"{listaAccount.First(e => e.Id == pre.IdAccount).Nome} {listaAccount.First(e => e.Id == pre.IdAccount).Cognome}",
                NomeProdotto  = pre.NomeProdotto,
                Prezzo        = pre.Prezzo,
                DataConferma  = pre.DataConferma
            }).ToList();

            IList <ReservationConfirmedViewModel> prenotazioniEvaseViewModel = prenotazioniConfermate.Where(e => e.Evasa == true)
                                                                               .Select(pre => new ReservationConfirmedViewModel()
            {
                Id            = pre.Id,
                IdReservation = pre.IdReservation,
                Data          = pre.Data,
                Cliente       = $"{listaAccount.First(e => e.Id == pre.IdAccount).Nome} {listaAccount.First(e => e.Id == pre.IdAccount).Cognome}",
                NomeProdotto  = pre.NomeProdotto,
                Prezzo        = pre.Prezzo,
                Evasa         = pre.Evasa,
                DataEvasione  = pre.DataEvasione
            }).ToList();

            var reservationResume = new ReservationResumeViewModel();

            reservationResume.listaPrenotazioniAttive     = listaPrenotazioneViewModel;
            reservationResume.listaPrenotazioniConfermate = prenotazioniConfermateViewModel;
            reservationResume.listaPrenotazioniEvase      = prenotazioniEvaseViewModel;
            return(View(reservationResume));
        }