public virtual void Add(TEvent theEvent)
        {
            if (string.IsNullOrEmpty(theEvent.EventId))
            {
                theEvent.EventId = Guid.NewGuid().ToString();
            }

            if (theEvent.IsFinal)
            {
                theEvent.Created = DateTime.Now;
                Latest           = theEvent;
                History.Add(theEvent);
                Drafts.Clear();
                return;
            }
            else
            {
                theEvent.Created = theEvent.Created == null ? DateTime.Now : theEvent.Created;
                var usersDraft = Drafts.SingleOrDefault(draft => draft.UserId == theEvent.UserId);
                if (usersDraft != null)
                {
                    Drafts.Remove(usersDraft);
                    Drafts.Add(theEvent);
                    return;
                }

                Drafts.Add(theEvent);
            }
        }
Beispiel #2
0
        public override void Add(OtherEvent theEvent)
        {
            if (string.IsNullOrEmpty(theEvent.EventId))
            {
                theEvent.EventId = Guid.NewGuid().ToString();
            }

            if (theEvent.IsFinal)
            {
                theEvent.Created = DateTime.Now;
                Latest           = theEvent;
                History.Add(theEvent);
                var draft = Drafts.SingleOrDefault(d => d.EventId == theEvent.EventId);
                if (draft != null)
                {
                    Drafts.Remove(draft);
                }

                return;
            }
            else
            {
                theEvent.Created = theEvent.Created == null ? DateTime.Now : theEvent.Created;
                var userHasDraft = Drafts.Any(draft => draft.UserId == theEvent.UserId);
                if (userHasDraft)
                {
                    var usersDraft = Drafts.SingleOrDefault(draft => draft.EventId == theEvent.EventId);

                    if (usersDraft == null)
                    {
                        throw new ArgumentException(nameof(theEvent.EventId));
                    }

                    Drafts.Remove(usersDraft);
                    Drafts.Add(theEvent);
                    return;
                }

                Drafts.Add(theEvent);
            }
        }
Beispiel #3
0
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            if (e.Parameter?.ToString() == "Tut")
            {
                isTutorialPlaying = true;
                CurrentBatch      = new BatchedFeedbackModel();
                LoadTeacherTask   = FetchTeachers().ContinueWith(x => UpdateIncludedTeacher());

                FBStatusCount = IncludedTeachers.Count.ToString();
                DataContext   = this;

                await Task.Delay(500);

                ttForms.IsOpen = true;
            }
            else
            {
                if (Drafts.Count == 0)
                {
                    Drafts.Add(new BatchedFeedbackModel()
                    {
                        FeedbackerAccountEmail = Provider.CurrentAccount.Email
                    });
                }

                CurrentBatch    = Drafts.Last(x => x.FeedbackerAccountEmail == Provider.CurrentAccount.Email);
                LoadTeacherTask = FetchTeachers().ContinueWith(x => UpdateIncludedTeacher());
                await Task.Delay(1000);

                await LoadTeacherTask;
                FBStatusCount = IncludedTeachers.Count.ToString();
                DataContext   = this;
            }
        }