118 messaggi dal 09 luglio 2007
Salve, non riesco ad arrivare ad una soluzione.
Il problema è il seguente:

devo prelevarmi dal db la data iniziale e la data finale e da qui mi dovrò prendere i giorni che intercorrono tra le due date per ogni camera.


adesso quando vado a stampare a video mi dovrebbe uscire la camera e i relativi gioni in cui è occupata e i relativi giorni in cui non è occupata caso mai evidenziando con un colore diverso le due situazioni.


io ho proceduto passo passo e allam fine sono riusciuto ad avere i giorni in cui è occupata per camera

creandomi un dictionary<string,List<int>>; adesso mi chiedo come faccio a stamparmi anche i giorni in cui non è stata occupata?


Il codice da me realizzato è il seguente:


 using (DATABASEContext db = new DATABASEDataContext())
            {

                var dispPost = (from a in db.GetTable<Affitta>()
                                join c in db.GetTable<Camera>()
                                    on a.IdCamera equals c.IdCamera
                                where a.DataArrivo.Month.Equals(mese)
                                && a.DataArrivo.Year.Equals(anno)
                                && a.DataPartenza.Month.Equals(mese)
                                && a.DataPartenza.Year.Equals(anno)
                                && a.DataArrivo <= a.DataPartenza
                                && a.DataPartenza >= a.DataArrivo
                                 group a by new {idstanza = c.IdCamera, roomname = c.nomestanza, totdayArr = a.DataArrivo.Day, totdayPart = a.DataPartenza.Day} into g   
                                select new   
                                {  
   
                                     idstanza = g.Key.idstanza,   
                                     giorniarrivo = g.Key.totdayArr,   
                                     giornipartenza = g.Key.totdayPart,   
                                     roomname = g.Key.roomname,   
                                        
   
   
                                    
   
                                }).ToList();   

                Dictionary<string, List<int>> stanzaGiorni = new Dictionary<string, List<int>>();
                List<Disponibilita> listadisp = new List<Disponibilita>();
                List<int> listadisponibilita = new List<int>();

                
                foreach (var p in dispPost)
                {

                   if (!stanzaGiorni.ContainsKey(p.roomname))
                    {

                        stanzaGiorni.Add(p.roomname, new List<int>());
                    }

                  stanzaGiorni[p.roomname.ToString()].AddRange(this.GetDayStanze(p.giorniarrivo, p.giornipartenza));
                   
                }

                

          return stanzaGiorni;

            }
        }

        private List<int> GetDayStanze(int giorno1, int giorno2)
        {


            List<int> g = new List<int>();

            int i = giorno1;

            while (giorno1 <= giorno2)
            {
                g.Add(i);
                i++;
                giorno1 = i;

            }




            return g;
        }





Nella View di conseguenza mi faccio un ciclo foreach per prendermi i giorni e il nome della camera

ma poi come faccio a dirgli che se questo giorno non esiste nel mese in cui si è fatta la ricerca coloramelo di nero?


Grazie e spero di essere stato chiaro
alla fine di sicuro visualizzarai un perido tipo da 1 a 30

tiri fuori tutte le preonotazioni in questo periodo

inizi a ciclare da 1 a 30 e controlli per ogni giorno la disponibilità

io mentalmente farei così

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
118 messaggi dal 09 luglio 2007
Ciao e grazie per il tuo intervento,ma io alla fine non visualizzo un range di giorni che vanno da 1 a 30, ma visualizzerò un range di giorni in cui la camera è stata occupata quindi se io ho una datainizio con 01/03/2010 e una datafine con 15/03/2010 e poi ancora dal 20/03/2010 al 25/03/2010 io nel mio dictionary per quella camaera avrò una lista di interi(giorni) che vanno dal 1 al 15 e dopo dal 20 al 25 che si traducono in 21 record totali in quella lista per quella camera.

Adesso io stavo provando a prendermi i giorni del mese in questione e cilcare ancora per stabilire se quel giorno nella lista di interi esiste nella lista dei giorni del mese,ma non funziona.

Qualcuno ha un idea?

Grazie ancora

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.