Esempio n. 1
0
        public async Task <bool> UnregisterSubjectAsync(Subject subject)
        {
            var actualRegsiteredSubject = subject.ActualRegisteredSubject;
            var result = subject.Unregister();

            if (result)
            {
                await Task.Factory.StartNew(() => Model.DataManager.Instance.DeleteRegisteredSubject(actualRegsiteredSubject));

                await Task.Factory.StartNew(() => Model.DataManager.Instance.UpdateSubject(subject));

                RegisteredSubjectsChanged?.Invoke(this, null);

                return(true);
            }

            return(false);
        }
Esempio n. 2
0
        public async Task RegisterSubjectAsync(Subject subject, Term selectedTerm)
        {
            var registeredSubject = subject.Register();

            var result = selectedTerm.RegisterSubject(registeredSubject);

            if (result)
            {
                await Task.Factory.StartNew(() => Model.DataManager.Instance.AddRegisteredSubject(registeredSubject));

                await Task.Factory.StartNew(() => Model.DataManager.Instance.UpdateSubject(subject));

                RegisteredSubjectsChanged?.Invoke(this, null);
            }
            else
            {
                subject.RollbackRegistration(registeredSubject);
            }
        }