Beispiel #1
0
        public void ReloadEntries()
        {
            RecordsManager manager = DataContext as RecordsManager;

            if (DataContext == null)
            {
                return;
            }
            List <Record> l = manager.Select(Conditions, StartOffset, MaxPerPage);

            if (l.Count == 0)
            {
                ParentContent.OnInfo("No more entries");
                return;
            }
            Results.Clear();
            List <RecordDescription> d = manager.Description;

            foreach (Record r in l)
            {
                BindableDynamicDictionary o = new BindableDynamicDictionary();
                o["ID"] = r.ID;
                for (int i = 0; i < d.Count; i++)
                {
                    o[d[i].Name] = d[i].ShowText(r.GetValue(i));
                }
                Results.Add(o);
            }
        }
Beispiel #2
0
        public Task <bool> DisplayChildForm(Action <Form> setupChildForm, int height = 600, int width = 800,
                                            Func <Form, bool?> onClosing             = null,
                                            Action <Form> onDisplay = null,
                                            bool useIsolatedModelForThisChildForm = false,
                                            bool isDialog = false)
        {
            var promise = new System.Threading.Tasks.TaskCompletionSource <bool>();
            // default to use the parent's model, but some child will use a DataContext and need an isolated model
            var childFormModel = this.Model;

            if (useIsolatedModelForThisChildForm == true)
            {
                childFormModel = new BindableDynamicDictionary();
            }
            var childForm = new Form(_parentForm: this, _model: childFormModel);

            setupChildForm(childForm);

            childForm.Display_Internal(height: height, width: width, onClosing: onClosing,
                                       onDisplay: onDisplay,
                                       isDialog: isDialog)
            .ContinueWith(t =>
            {
                promise.SetResult(t.Result);
            });

            return(promise.Task);
        }
Beispiel #3
0
        public void SetWorkSessionHistory(IEnumerable <WorkSession> workSessionHistory)
        {
            History = new ObservableCollection <BindableDynamicDictionary>();

            var taskNames = workSessionHistory.SelectMany(s => s.Tasks.Select(t => t.Name)).Distinct();

            foreach (var workSession in workSessionHistory)
            {
                var historyItem = new BindableDynamicDictionary();
                historyItem["Date"] = workSession.Today.ToString("ddd dd MMM");

                foreach (var taskName in taskNames)
                {
                    historyItem[taskName] = 0.ToString(HoursFormat);
                }

                var total = 0d;
                foreach (var workSessionTask in workSession.Tasks)
                {
                    historyItem[workSessionTask.Name] = workSessionTask.DurationHours.ToString(HoursFormat);
                    total += workSessionTask.DurationHours;
                }

                historyItem["Total"] = total.ToString(HoursFormat);
                History.Add(historyItem);
            }
        }