Exemplo n.º 1
0
        public static List <PrenotazioneModel> prenotazioni_geList()
        {
            List <PrenotazioneModel> model = new List <PrenotazioneModel>();

            try
            {
                using (Associazione_DBDataContext db = new Associazione_DBDataContext())
                {
                    var sql = from prenotazione in db.Prenotazione
                              join sala in db.Sala on prenotazione.Sala equals sala.ID
                              join ponte in db.PrenotazioneStrumentazione on prenotazione.ID equals ponte.ID_Prenotazione into p
                              from ponte in p.DefaultIfEmpty()
                              join strumetazione in db.Strumentazione on ponte.ID_Strumentazione equals strumetazione.ID into s
                              from strumentazione in s.DefaultIfEmpty()
                              where prenotazione.Utente == SessionObjects.LoggedUser.ID &&
                              prenotazione.Giorno.Add(prenotazione.OraI) >= DateTime.Now
                              orderby prenotazione.OraI
                              select new { Prenotazione = prenotazione, Sala = sala, Strumentazione = (strumentazione != null ? strumentazione : null) };

                    if (sql != null)
                    {
                        var temp = sql.ToList();

                        if (temp.Count > 0)
                        {
                            foreach (var item in temp)
                            {
                                PrenotazioneModel tempModel = model.Where(x => x.ID == item.Prenotazione.ID).FirstOrDefault();
                                if (tempModel == null)
                                {
                                    tempModel = new PrenotazioneModel(item.Prenotazione, item.Sala);
                                    model.Add(tempModel);
                                }

                                if (item.Strumentazione != null)
                                {
                                    tempModel.Strumentazione.Add(new StrumentazioneModel(item.Strumentazione));
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
            }

            return(model);
        }
Exemplo n.º 2
0
        private async Task <DialogTurnResult> PromptForPrenotazioneStepAsync(
            WaterfallStepContext stepContext,
            CancellationToken cancellationToken)
        {
            var risp    = (stepContext.Result as FoundChoice).Value;
            var context = stepContext.Context;

            if (risp.Equals("si"))
            {
                try
                {
                    PosteggioModel posto = await Utility.Utility.setPosteggioAutoassegnato(Utility.Utility.lotto_id);

                    if (posto != null)
                    {
                        PrenotazioneModel prenotazione = await Utility.Utility.prenotaPosteggio(Utility.Utility.lotto_id, posto.id_posteggio);

                        if (prenotazione != null)
                        {
                            //BasicBot.tempoPrenotazione = DateTime.Now;
                            BasicBot.tempoPrenotazione = DateTime.Now.AddHours(1);
                            BasicBot.prenotazione      = true;

                            var prenotazioneNomeLotto = prenotazione.nomeLotto;
                            var prenotazioneIdPosto   = prenotazione.id_posto;

                            //risposte possibili
                            string[] responses = { "Hai effettuato una pranotazione in " + prenotazioneNomeLotto + " nel parcheggio " + prenotazioneIdPosto,
                                                   "La tua prenotazione è la seguente: " + prenotazioneNomeLotto + ", " + prenotazioneIdPosto,
                                                   "Il posteggio in " + prenotazioneNomeLotto + ", numero " + prenotazioneIdPosto + " ti è stato assegnato", };

                            Random rnd = new Random();                     //crea new Random class
                            int    i   = rnd.Next(0, responses.Length);
                            await context.SendActivityAsync(responses[i]); //genera una risposta random

                            return(await stepContext.EndDialogAsync());
                        }
                        else
                        {
                            PrenotazioneModel verificaPrenotazione = await Utility.Utility.getPrenotazione(Utility.Utility.bot_id);

                            if (verificaPrenotazione != null)
                            {
                                if (DateTime.Compare(DateTime.Now, DateTime.Parse(BasicBot.tempoPrenotazione.ToString())) > 0)
                                {
                                    var resp = await Utility.Utility.cancellaPrenotazione(verificaPrenotazione.id_posto);

                                    if (resp)
                                    {
                                        string[] responses = { "La tua prenotazione è scaduta!",
                                                               "E' terminato il tempo disponibile per il tuo posteggio",
                                                               "La prenotazione è espirata", };
                                        //rispsote possibili
                                        Random rnd = new Random();                     //crea new Random class
                                        int    i   = rnd.Next(0, responses.Length);
                                        await context.SendActivityAsync(responses[i]); //genera una risposta random

                                        BasicBot.prenotazione = false;
                                        return(await stepContext.EndDialogAsync());
                                    }
                                }
                                else
                                {
                                    string[] responses = { "Possiedi già una prenotazione!",
                                                           "Puoi avere solo un posto!",
                                                           "Ma quanti posti vuoi oh! Ne hai già uno!", };
                                    //rispsote possibili
                                    Random rnd = new Random();                     //crea new Random class
                                    int    i   = rnd.Next(0, responses.Length);
                                    await context.SendActivityAsync(responses[i]); //genera una risposta random

                                    return(await stepContext.EndDialogAsync());
                                }
                            }
                            //else
                            //{
                            //    string[] responses = { "Tutti i posti sono occupati!",
                            //        "Non ci sono più posti!",
                            //        "Vuoi prenotare un posto eh?! Beh son finiti!", };  //rispsote possibili
                            //    Random rnd = new Random(); //crea new Random class
                            //    int i = rnd.Next(0, responses.Length);
                            //    await context.SendActivityAsync(responses[i]); //genera una risposta random
                            //    return await stepContext.EndDialogAsync();
                            //}
                        }
                    }

                    return(await stepContext.EndDialogAsync());
                }
                catch
                {
                    await context.SendActivityAsync($"Impossibile visualizzare la prenotazione!");

                    return(await stepContext.EndDialogAsync());
                }
            }
            else
            {
                await context.SendActivityAsync($"Fammi sapere se cambi idea!");

                return(await stepContext.EndDialogAsync());
            }
        }
Exemplo n.º 3
0
        // Funzione che mostra la scadenza della prenotazione.
        private async Task <DialogTurnResult> DisplayScadenzaStateStepAsync(
            WaterfallStepContext stepContext,
            CancellationToken cancellationToken)
        {
            var context = stepContext.Context;
            PrenotazioneModel prenotazione = await Utility.Utility.getPrenotazione(Utility.Utility.bot_id);

            try
            {
                if (prenotazione != null)
                {
                    if (DateTime.Compare(DateTime.Now, DateTime.Parse(BasicBot.tempoPrenotazione.ToString())) > 0)
                    {
                        var resp = await Utility.Utility.cancellaPrenotazione(prenotazione.id_posto);

                        if (resp)
                        {
                            string[] responses = { "La tua prenotazione è scaduta!",
                                                   "E' terminato il tempo disponibile per il tuo posteggio",
                                                   "La prenotazione è espirata", };
                            //rispsote possibili
                            Random rnd = new Random();                     //crea new Random class
                            int    i   = rnd.Next(0, responses.Length);
                            await context.SendActivityAsync(responses[i]); //genera una risposta random

                            BasicBot.prenotazione = false;

                            return(await stepContext.EndDialogAsync());
                        }
                    }
                    else
                    {
                        DateTime now = DateTime.Now;
                        TimeSpan differenza;
                        differenza = BasicBot.tempoPrenotazione.Subtract(now);

                        int minuti  = (int)(differenza.TotalMinutes);
                        int secondi = (int)(differenza.TotalSeconds);
                        int ore     = (int)(differenza.TotalHours);
                        int giorno  = (int)(differenza.TotalDays);

                        string[] responses = { "Il tuo parcheggio è ancora disponibile per " + minuti + " minuti e " + (secondi - (minuti * 60)) + " secondi",
                                               "La disponibilità del tuo parcheggio scade tra " + minuti + " minuti e " + (secondi - (minuti * 60)) + " secondi",
                                               "Hai ancora " + minuti + " minuti e " + (secondi - (minuti * 60)) + " secondi per usufruire del posteggio prenotato", };

                        await context.SendActivityAsync($"La tua prenotazione è riservata per il giorno " + BasicBot.tempoPrenotazione.ToString("dd MMMM yyyy") + " dalle ore " + BasicBot.tempoPrenotazione.AddHours(-1).ToString("HH:mm:ss") + " alle ore " + BasicBot.tempoPrenotazione.ToString("HH:mm:ss"));

                        Random rnd = new Random();                     //crea new Random class
                        int    i   = rnd.Next(0, responses.Length);
                        await context.SendActivityAsync(responses[i]); //genera una risposta random

                        //await context.SendActivityAsync($"Il tuo parcheggio sarà disponibile ancora per: {minuti} minuti e {secondi - (minuti * 60)} secondi");
                        return(await stepContext.EndDialogAsync());
                    }
                    return(await stepContext.EndDialogAsync());
                }
                else
                {
                    string[] responses = { "Non esiste alcuna prenotazione attiva!",
                                           "Io non vedo nessuna prenotazione!",
                                           "Ma quale prenotazione intendi scusa..", };

                    Random rnd = new Random();
                    int    i   = rnd.Next(0, responses.Length);
                    await context.SendActivityAsync(responses[i]); //genera una risposta random tra quelle presenti

                    return(await stepContext.EndDialogAsync());
                }
            }
            catch
            {
                await context.SendActivityAsync($"Impossibile visualizzare la scadenza della prenotazione");

                return(await stepContext.EndDialogAsync());
            }
        }
Exemplo n.º 4
0
        // Prompt per cancellare la prenotazione
        private async Task <DialogTurnResult> PromptForCancellaPrenotazioneStepAsync(
            WaterfallStepContext stepContext,
            CancellationToken cancellationToken)
        {
            var context = stepContext.Context;
            PrenotazioneModel prenotazione = await Utility.Utility.getPrenotazione(Utility.Utility.bot_id);

            try
            {
                if (prenotazione != null)
                {
                    if (DateTime.Compare(DateTime.Now, DateTime.Parse(BasicBot.tempoPrenotazione.ToString())) > 0)
                    {
                        var resp = await Utility.Utility.cancellaPrenotazione(prenotazione.id_posto);

                        if (resp)
                        {
                            string[] responses = { "La tua prenotazione è scaduta!",
                                                   "E' terminato il tempo disponibile per il tuo posteggio",
                                                   "La prenotazione è espirata", };
                            //rispsote possibili
                            Random rnd = new Random();                     //crea new Random class
                            int    i   = rnd.Next(0, responses.Length);
                            await context.SendActivityAsync(responses[i]); //genera una risposta random

                            BasicBot.prenotazione = false;
                            return(await stepContext.EndDialogAsync());
                        }
                    }
                    else
                    {
                        BasicBot.prenotazione = false;
                        //rispsote possibili
                        string[] responses = { "Prenotazione cancellata con successo!",
                                               "La prenotazione... Via! Andata! Caput!",
                                               "Hai cestinato la tua prenotazione!", };
                        Random   rnd = new Random();                   //crea new Random class
                        int      i   = rnd.Next(0, responses.Length);
                        await context.SendActivityAsync(responses[i]); //genera una risposta random

                        await Utility.Utility.cancellaPrenotazione(prenotazione.id_posto);

                        return(await stepContext.EndDialogAsync());
                    }
                }
                else
                {
                    string[] responses = { "Non esiste alcuna prenotazione attiva!",
                                           "Io non vedo nessuna prenotazione!",
                                           "Ma quale prenotazione intendi scusa..", };
                    Random   rnd = new Random();                   //crea new Random class
                    int      i   = rnd.Next(0, responses.Length);
                    await context.SendActivityAsync(responses[i]); //genera una risposta random

                    return(await stepContext.EndDialogAsync());
                }

                return(await stepContext.EndDialogAsync());
            }
            catch
            {
                await context.SendActivityAsync($"Impossibile cancellare la prenotazione");

                return(await stepContext.EndDialogAsync());
            }
        }
Exemplo n.º 5
0
        // Funzione per mostrare la prenotazione.
        private async Task <DialogTurnResult> DisplayPrenotazioneStateStepAsync(
            WaterfallStepContext stepContext,
            CancellationToken cancellationToken)
        {
            var context = stepContext.Context;
            PrenotazioneModel prenotazione = await Utility.Utility.getPrenotazione(Utility.Utility.bot_id);

            try
            {
                // Mostra la prenotazione se attiva.
                if (prenotazione != null)
                {
                    if (DateTime.Compare(DateTime.Now, DateTime.Parse(BasicBot.tempoPrenotazione.ToString())) > 0)
                    {
                        var resp = await Utility.Utility.cancellaPrenotazione(prenotazione.id_posto);

                        if (resp)
                        {
                            string[] responses = { "La tua prenotazione è scaduta!",
                                                   "E' terminato il tempo disponibile per il tuo posteggio",
                                                   "La prenotazione è espirata", };
                            //rispsote possibili
                            Random rnd = new Random();                     //crea new Random class
                            int    i   = rnd.Next(0, responses.Length);
                            await context.SendActivityAsync(responses[i]); //genera una risposta random

                            BasicBot.prenotazione = false;

                            return(await stepContext.EndDialogAsync());
                        }
                    }
                    else
                    {
                        var prenotazioneNomeLotto = prenotazione.nomeLotto;
                        var prenotazioneIdPosto   = prenotazione.id_posto;

                        string[] responses = { "La tua prenotazione? " + prenotazioneNomeLotto + ", " + prenotazioneIdPosto,
                                               "Hai prenotato il parcheggio " + prenotazioneNomeLotto + " numero " + prenotazioneIdPosto,
                                               prenotazioneNomeLotto + ", " + prenotazioneIdPosto + ", dovrebbe essere questa!", };

                        Random rnd = new Random();                     //crea new Random class
                        int    i   = rnd.Next(0, responses.Length);
                        await context.SendActivityAsync(responses[i]); //genera una risposta random tra quelle presenti

                        return(await stepContext.EndDialogAsync());
                    }
                }
                else
                // Nega l'esistenza di una prenotazione
                {
                    string[] responses = { "Non esiste alcuna prenotazione attiva!",
                                           "Io non vedo nessuna prenotazione!",
                                           "Ma quale prenotazione intendi scusa..", };

                    Random rnd = new Random();
                    int    i   = rnd.Next(0, responses.Length);
                    await context.SendActivityAsync(responses[i]); //genera una risposta random tra quelle presenti

                    return(await stepContext.EndDialogAsync());
                }

                return(await stepContext.EndDialogAsync());
            }
            catch
            {
                await context.SendActivityAsync($"Impossibile visualizzare la prenotazione");

                return(await stepContext.EndDialogAsync());
            }
        }