public IList <Partecipazione> GetPartecipation(long cdEvento) { Evento evento = GetEventFromNumber(cdEvento); var query = (from iscrizioni in context.EventoGiorniPersonaggios where iscrizioni.CdEvento == cdEvento group iscrizioni by iscrizioni.NumeroPg into element select new { NumeroPG = element.Key, DatiGiorni = element }); List <Partecipazione> partecipazioni = new List <Partecipazione>(); foreach (var item in query) { Partecipazione partecipation = new Partecipazione(); partecipation.CdEvento = cdEvento; partecipation.NumeroPG = item.NumeroPG; foreach (var giorno in item.DatiGiorni) { partecipation.NumeroGiorni++; partecipation.Giocatore = giorno.NomeGiocatore; partecipation.Personaggio = giorno.Personaggio.Nome; partecipation.Prezzo += giorno.EventoGiorni.CostoGiorno.HasValue ? giorno.EventoGiorni.CostoGiorno.Value : 0; partecipation.Pagato = partecipation.Pagato && giorno.Pagato; partecipation.Partecipato = partecipation.Partecipato && giorno.Partecipato; partecipation.PX += giorno.EventoGiorni.PuntiAssegnati.HasValue ? giorno.EventoGiorni.PuntiAssegnati.Value : 0; } if (partecipation.NumeroGiorni == evento.EventoGiornis.Count) { partecipation.Prezzo = (float)evento.Costo; partecipation.PX = evento.PuntiAssegnati; } if (!partecipation.Partecipato) //mostro solo quelli a cui NON sono già stati assegnati i PX. { partecipazioni.Add(partecipation); } } return(partecipazioni); }
public IList<Partecipazione> GetPartecipation(long cdEvento) { Evento evento = GetEventFromNumber(cdEvento); var query = (from iscrizioni in context.EventoGiorniPersonaggios where iscrizioni.CdEvento == cdEvento group iscrizioni by iscrizioni.NumeroPg into element select new { NumeroPG = element.Key, DatiGiorni = element }); List<Partecipazione> partecipazioni = new List<Partecipazione>(); foreach (var item in query) { Partecipazione partecipation = new Partecipazione(); partecipation.CdEvento = cdEvento; partecipation.NumeroPG = item.NumeroPG; foreach (var giorno in item.DatiGiorni) { partecipation.NumeroGiorni++; partecipation.Giocatore = giorno.NomeGiocatore; partecipation.Personaggio = giorno.Personaggio.Nome; partecipation.Prezzo += giorno.EventoGiorni.CostoGiorno.HasValue ? giorno.EventoGiorni.CostoGiorno.Value : 0; partecipation.Pagato = partecipation.Pagato && giorno.Pagato; partecipation.Partecipato = partecipation.Partecipato && giorno.Partecipato; partecipation.PX += giorno.EventoGiorni.PuntiAssegnati.HasValue ? giorno.EventoGiorni.PuntiAssegnati.Value : 0; } if (partecipation.NumeroGiorni == evento.EventoGiornis.Count) { partecipation.Prezzo = (float)evento.Costo; partecipation.PX = evento.PuntiAssegnati; } if (!partecipation.Partecipato) //mostro solo quelli a cui NON sono già stati assegnati i PX. { partecipazioni.Add(partecipation); } } return partecipazioni; }