private void FrmDetail_Load(object sender, EventArgs e) { var years = Db.Context.Schedules.Select(t => t.Date.Year).Distinct().OrderBy(t => t).ToList(); cbYear.DataSource = years; var user = Db.Context.Users.FirstOrDefault(t => t.FirstName + " " + t.LastName == User); userReport = new UserReport { User = user, Tickets = user.Tickets.Where(k => k.Confirmed).ToList(), Commission = 0.0 }; cbCriterias.SelectedIndex = 0; this.Text = $"{Type} detail of {User}"; this.Cursor = Cursors.Default; }
private void LoadData() { chartDetail.Series[0].Points.Clear(); chartDetail.Series[1].Points.Clear(); chartDetail.Series[2].Points.Clear(); var users = Db.Context.Users.Where(t => t.Role.Title == "Agent").ToList(); var userReports = new List <UserReport>(); foreach (var item in users) { var ur = new UserReport() { User = item, Commission = 0 }; if (rdbByDate.Checked) { var date = dtpDate.Value.Date; ur.Amenities = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date == date).SelectMany(k => k.AmenitiesTickets).ToList(); ur.Tickets = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date == date).ToList(); } else if (rdbByMonth.Checked) { var month = dtpMonth.Value.Date.Month; var year = dtpMonth.Value.Date.Year; ur.Amenities = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date.Month == month && k.Schedule.Date.Year == year).SelectMany(k => k.AmenitiesTickets).ToList(); ur.Tickets = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date.Month == month && k.Schedule.Date.Year == year).ToList(); } else { var year = int.Parse(cbYear.Text); ur.Amenities = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date.Year == year).SelectMany(k => k.AmenitiesTickets).ToList(); ur.Tickets = item.Tickets.Where(k => k.Confirmed && k.Schedule.Date.Year == year).ToList(); } userReports.Add(ur); } userReports = userReports.OrderByDescending(t => t.Tickets.Count()).ToList(); foreach (var item in userReports) { item.Commission = UpdateCommission(item.Tickets); } CommissionDataSet.CommisstionReportDataTable dt = new CommissionDataSet.CommisstionReportDataTable(); int i = 0; foreach (var item in userReports) { dt.AddCommisstionReportRow(item.User.FirstName + " " + item.User.LastName, "Amennities Sold", item.Amenities.Count); dt.AddCommisstionReportRow(item.User.FirstName + " " + item.User.LastName, "Tickets Sold", item.Tickets.Count); dt.AddCommisstionReportRow(item.User.FirstName + " " + item.User.LastName, "Commission Earned", item.Commission); chartDetail.Series[0].Points.AddXY(item.User.FirstName + " " + item.User.LastName, item.Amenities.Count); chartDetail.Series[0].Points[i].Label = item.Amenities.Count.ToString(); chartDetail.Series[1].Points.AddXY(item.User.FirstName + " " + item.User.LastName, item.Tickets.Count); chartDetail.Series[1].Points[i].Label = item.Tickets.Count().ToString(); chartDetail.Series[2].Points.AddXY(item.User.FirstName + " " + item.User.LastName, item.Commission); chartDetail.Series[2].Points[i].Label = item.Commission.ToString("C0"); i++; } ReportBindingSource.DataSource = dt; reportViewer1.RefreshReport(); }