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