public ConventionStatisticsViewModel BuildStatisticView(string conventionId) { var viewModel = new ConventionStatisticsViewModel(); var selectConvention = Session .Include <Convention>(x => x.DayIds) .Load <Convention>(conventionId); var engagements = Session.Query <ConventionEngagement>() .Include(x => x.ParticipantId) .Where(x => x.ConventionId == conventionId) .ToList(); var activities = Session.Query <Activity>().ToDictionary(x => x.Id, x => x); var days = Session.Load <Day>(selectConvention.DayIds); viewModel.SelectedConvention = selectConvention; viewModel.TotalLongTermParticipants = engagements.Count(x => x.IsLongTerm); viewModel.TotalShortTermParticipants = engagements.Count(x => x.IsLongTerm == false); var actualEvents = Session .Query <Event>() .Where(x => x.ConventionId == conventionId) .ToList(); foreach (var actualEvent in actualEvents) { var activity = "לא ידוע"; if (actualEvent.ActivityId != null && activities.ContainsKey(actualEvent.ActivityId)) { activity = activities[actualEvent.ActivityId].Name; } viewModel.AddEventSeats(days, actualEvent, activity); } foreach (var engagement in engagements) { var ticketName = engagement.Payment.TicketCopy != null ? engagement.Payment.TicketCopy.Name : "לא שולם"; viewModel.AddPayment(ticketName, engagement.Payment.IsPaid); foreach (var eventId in engagement.EventIds) { viewModel.AddEventTakenSeat(eventId); } } return(viewModel); }
public IActionResult Index(string conventionId) { var viewModel = new ConventionStatisticsViewModel(); if (conventionId.IsEmptyString() && Actor.HasManagedConvention) { conventionId = Actor.ManagedConvention.ConventionId; } if (conventionId.IsEmptyString()) { return(View(viewModel)); } viewModel = Gateway.BuildStatisticView(conventionId); return(View(viewModel)); }