public LoginPage(IKitsTajmService service, App app) { this._app = app; this._service = service; InitializeComponent(); }
public TimePage(IKitsTajmService service) { InitializeComponent(); this._service = service; this._model = new TimeViewModel(); this._weekmodels = new WeekModelRepository(this._service, this._model); var currentmodel = this._weekmodels.GetModel(DateTime.Now); var currentpage = new WeekPage(this._service, currentmodel); var previouspage = GetPreviousWeek( currentmodel, this._weekmodels, this._service); var nextpage = GetNextWeek( currentmodel, this._weekmodels, this._service); this.Children.Add(currentpage); this.Children.Insert(0, previouspage); this.Children.Add(nextpage); this._initialized = true; }
private static async Task Load(WeekViewModel weekmodel, IKitsTajmService service) { var projects = await service.GetProjects(); var trs = await service.GetTimeRecords(weekmodel.Monday.Date, weekmodel.Sunday.Date); var rows = trs .GroupBy( tr => tr.ProjectId, (pid, trs2) => new { Project = projects.FirstOrDefault(p => p.Id == pid), Activities = trs2.GroupBy( tr => tr.ActivityId, (aid, trs3) => new { Activity = projects .Where(p => p.Id == pid) .SelectMany(p => p.Activities) .FirstOrDefault(a => a.Id == aid), TimeRecords = trs3 }) }) .OrderBy(pa => pa.Project.Name) .SelectMany( pa => pa.Activities .OrderBy(at => at.Activity.Name), (pa, at) => new { Project = pa.Project, Activity = at.Activity, TimeRecords = at.TimeRecords }) .Select((pat, rownumber) => new WeekViewModel.RowViewModel( new WeekViewModel.RowViewModel.ProjectViewModel.ProjectViewModelParameters { SelectedItem = pat.Project }, new WeekViewModel.RowViewModel.ActivityViewModel.ActivityViewModelParameters { SelectedItem = pat.Activity }, pat.TimeRecords .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Monday.Date)) .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = tr.ReportedDate, RecordId = tr.RecordId, Text = tr.Time.ToString() }) .FirstOrDefault() ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = weekmodel.Monday.Date }, pat.TimeRecords .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Tuesday.Date)) .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = tr.ReportedDate, RecordId = tr.RecordId, Text = tr.Time.ToString() }) .FirstOrDefault() ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = weekmodel.Tuesday.Date }, pat.TimeRecords .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Wednesday.Date)) .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = tr.ReportedDate, RecordId = tr.RecordId, Text = tr.Time.ToString() }) .FirstOrDefault() ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = weekmodel.Wednesday.Date }, pat.TimeRecords .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Thursday.Date)) .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = tr.ReportedDate, RecordId = tr.RecordId, Text = tr.Time.ToString() }) .FirstOrDefault() ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = weekmodel.Thursday.Date }, pat.TimeRecords .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Friday.Date)) .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = tr.ReportedDate, RecordId = tr.RecordId, Text = tr.Time.ToString() }) .FirstOrDefault() ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = weekmodel.Friday.Date }, pat.TimeRecords .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Saturday.Date)) .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = tr.ReportedDate, RecordId = tr.RecordId, Text = tr.Time.ToString() }) .FirstOrDefault() ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = weekmodel.Saturday.Date }, pat.TimeRecords .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Sunday.Date)) .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = tr.ReportedDate, RecordId = tr.RecordId, Text = tr.Time.ToString() }) .FirstOrDefault() ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters { Date = weekmodel.Sunday.Date }, weekmodel, rownumber)); weekmodel.Projects = projects .OrderBy(p => p.Name) .ToList(); foreach (var row in rows) { weekmodel.Rows.Add(row); } }
public WeekModelRepository(IKitsTajmService service, TimeViewModel timemodel) { this._models = new LinkedList<WeekViewModel>(); this._service = service; this._timemodel = timemodel; }
public App() { this._service = new KitsTajmService(); this.MainPage = new LoginPage(this._service, this); }
private static WeekPage GetNextWeek( WeekViewModel currentmodel, WeekModelRepository weekmodels, IKitsTajmService service) { return GetAnotherWeek( currentmodel, weekmodels, service, TimeSpan.FromDays(7)); }
private static WeekPage GetAnotherWeek( WeekViewModel currentmodel, WeekModelRepository weekmodels, IKitsTajmService service, TimeSpan span) { var newpage = new WeekPage( service, weekmodels.GetModel(currentmodel.Monday.Date.Add(span))); return newpage; }