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); }
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); } }