コード例 #1
0
        public LoginPage(IKitsTajmService service, App app)
        {
            this._app = app;
            this._service = service;

            InitializeComponent();
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 public WeekModelRepository(IKitsTajmService service, TimeViewModel timemodel)
 {
     this._models = new LinkedList<WeekViewModel>();
     this._service = service;
     this._timemodel = timemodel;
 }
コード例 #5
0
ファイル: App.cs プロジェクト: Stolpe/KitsTajmMobile
        public App()
        {
            this._service = new KitsTajmService();

            this.MainPage = new LoginPage(this._service, this);
        }
コード例 #6
0
 private static WeekPage GetNextWeek(
     WeekViewModel currentmodel,
     WeekModelRepository weekmodels,
     IKitsTajmService service)
 {
     return GetAnotherWeek(
         currentmodel,
         weekmodels,
         service,
         TimeSpan.FromDays(7));
 }
コード例 #7
0
        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;
        }