using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Web.Mvc; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; using DevExpress.XtraReports.UI; namespace BeWoPlanerMobil.Models { public class ReportViewerModel : AbstractModel { public List AllEmployees { get; set; } public List AllTeams { get; set; } public List Queries { get; set; } [Display(Name = "Monat")] public int? SelectedMonth { get; set; } public List Months { get { var result = new List(); for(var i = 1; i < 13; i++) { result.Add(new SelectListItem { Value = i.ToString(), Text = new DateTime(DateTime.Now.Year, i, 1).ToString("MMMM") }); } return result; } } [Display(Name = "Jahr")] public int? SelectedYear { get; set; } public List Years { get { var result = new List(); for(var i = DateTime.Today.Year; i > DateTime.Today.Year - 11; i--) { result.Add(new SelectListItem { Value = i.ToString(), Text = i.ToString() }); } return result; } } [Display(Name="Bericht")] public ReportType SelectedReportType { get; set; } public List ReportTypes { get; set; } [Display(Name = "Bericht")] public long? SelectedCustomReport { get; set; } public List CustomReports { get { var result = new List(); if(Queries is null) { return result; } foreach(var query in Queries) { result.Add(new SelectListItem { Text = query.Title, Value = query.Oid.ToString() }); } return result; } } [Display(Name="Mitarbeiter")] public long? SelectedEmployeeOid { get; set; } public List Employees { get { var result = new List(); if(AllEmployees is null) { return result; } foreach(var employee in AllEmployees) { result.Add(new SelectListItem { Text = employee.SimpleDescription, Value = employee.EmployeeOid.ToString() }); } return result; } } [Display(Name = "Team")] public long? SelectedTeamOid { get; set; } public List Teams { get { var result = new List(); if(AllTeams is null) { return result; } foreach(var team in AllTeams) { result.Add(new SelectListItem { Text = team.Name, Value = team.TeamOid.ToString() }); } return result; } } public List SelectedEmployees { get; set; } public List SelectedTeams { get; set; } public XtraReport Report { get; set; } } public enum ReportType { Berichte = 0, Mitarbeiterstundenkonto = 1 } }