public void KnownTitleUpdated() { var unknown1 = new CategoryConfigInfo() { CategoryTitle = "Dude", DisplayOnHomePage = true, MeetingList = new myMeetingListRef() }; var list = new List <CategoryConfigInfo>() { unknown1 }; CategoryDB.SaveCategories(list); var unknown = new CategoryConfigInfo() { CategoryTitle = "hi", DisplayOnHomePage = false, MeetingList = new myMeetingListRef() }; var ccvm = new CategoryConfigViewModel(unknown.MeetingList); ccvm.CategoryTitle = "There"; var info = FindDBConfigInfo(unknown.MeetingList); Assert.IsNotNull(info); Assert.AreEqual("There", info.CategoryTitle); }
public void KnownUnsubscribed() { var unknown1 = new CategoryConfigInfo() { CategoryTitle = "hi", DisplayOnHomePage = true, MeetingList = new myMeetingListRef() }; var list = new List <CategoryConfigInfo>() { unknown1 }; CategoryDB.SaveCategories(list); var unknown = new CategoryConfigInfo() { CategoryTitle = "hi", DisplayOnHomePage = false, MeetingList = new myMeetingListRef() }; var ccvm = new CategoryConfigViewModel(unknown.MeetingList); ccvm.IsSubscribed = false; var info = FindDBConfigInfo(unknown.MeetingList); Assert.IsNull(info); }
/// <summary> /// Initialize the settings interface for a particular category. /// </summary> public CategoryConfigViewModel(IMeetingListRef meeting) { // First, we need to determine if this meeting is already in the // database. _meetingInfo = CategoryDB.Find(meeting); InitializeVM(meeting); }
public void FindThere() { var ci = new CategoryConfigInfo() { CategoryTitle = "hi", DisplayOnHomePage = false, MeetingList = new myMeetingListRef() }; CategoryDB.UpdateOrInsert(ci); var m = new myMeetingListRef(); var r = CategoryDB.Find(ci.MeetingList); Assert.IsNotNull(r); Assert.AreEqual("hi", r.CategoryTitle); }
public void RemoveNonCategoryInfo() { var ci = new CategoryConfigInfo() { CategoryTitle = "hi", DisplayOnHomePage = false, MeetingList = new myMeetingListRef() }; CategoryDB.Remove(ci); var r = CategoryDB.LoadCategories(); Assert.IsNotNull(r); Assert.AreEqual(0, r.Count); }
/// <summary> /// Get everything else up and configured. /// </summary> /// <param name="meeting"></param> private void InitializeVM(IMeetingListRef meeting) { _isSubscribed = _meetingInfo != null; if (_meetingInfo == null) { _meetingInfo = new CategoryConfigInfo() { MeetingList = meeting, CategoryTitle = "Meeting List", DisplayOnHomePage = false }; } _title = _meetingInfo.CategoryTitle; // If they want it to be displayed on the main page, then we have to subscribe to it. this.WhenAny(x => x.IsDisplayedOnMainPage, x => x.Value) .Where(isDisplayedValue => isDisplayedValue) .Subscribe(v => IsSubscribed = true); // If they don't want to subscribe, then we can't display it. _isDisplayedOnMainPage = _meetingInfo.DisplayOnHomePage; this.WhenAny(x => x.IsSubscribed, x => x.Value) .Where(isSubscribed => !isSubscribed) .Subscribe(x => IsDisplayedOnMainPage = false); // When things change, we need to reflect the changes back into the main store. this.WhenAny(x => x.IsSubscribed, x => x.GetValue()) .Where(x => x && !string.IsNullOrWhiteSpace(CategoryTitle)) .Subscribe(_ => CategoryDB.UpdateOrInsert(GetMeetingInfo())); this.WhenAny(x => x.IsSubscribed, x => x.GetValue()) .Where(x => !x) .Subscribe(_ => CategoryDB.Remove(GetMeetingInfo())); this.WhenAny(x => x.IsDisplayedOnMainPage, x => x.GetValue()) .Where(_ => IsSubscribed && !string.IsNullOrWhiteSpace(CategoryTitle)) .Subscribe(x => CategoryDB.UpdateOrInsert(GetMeetingInfo())); this.WhenAny(x => x.CategoryTitle, x => x.GetValue()) .Where(x => !string.IsNullOrWhiteSpace(x)) .Where(_ => IsSubscribed && !string.IsNullOrWhiteSpace(CategoryTitle)) .Subscribe(x => CategoryDB.UpdateOrInsert(GetMeetingInfo())); // Setup the logic for subscribing (or not). UpdateToCI = this.WhenAny(x => x.CategoryTitle, x => x.IsDisplayedOnMainPage, (x, y) => default(Unit)) .Where(_ => !string.IsNullOrWhiteSpace(CategoryTitle)) .Select(_ => GetMeetingInfo()); }
public void UpdateNewCategoryInfo() { var ci = new CategoryConfigInfo() { CategoryTitle = "hi", DisplayOnHomePage = false, MeetingList = new myMeetingListRef() }; CategoryDB.UpdateOrInsert(ci); var r = CategoryDB.LoadCategories(); Assert.IsNotNull(r); Assert.AreEqual(1, r.Count); Assert.AreEqual("hi", r[0].CategoryTitle); Assert.IsFalse(r[0].DisplayOnHomePage); }
public void UnkonwnSubscribed() { var unknown = new CategoryConfigInfo() { CategoryTitle = "hi", DisplayOnHomePage = false, MeetingList = new myMeetingListRef() }; var ccvm = new CategoryConfigViewModel(unknown.MeetingList); ccvm.IsSubscribed = true; Assert.IsTrue(ccvm.IsSubscribed); Assert.IsFalse(ccvm.IsDisplayedOnMainPage); Assert.IsTrue(HaveDBConfigInfo()); var info = FindDBConfigInfo(unknown.MeetingList); Assert.IsNotNull(info); Assert.IsFalse(info.DisplayOnHomePage); Assert.AreEqual("Meeting List", info.CategoryTitle); }
public void KnownDisplayed() { var unknown1 = new CategoryConfigInfo() { CategoryTitle = "hi", DisplayOnHomePage = true, MeetingList = new myMeetingListRef() }; var list = new List <CategoryConfigInfo>() { unknown1 }; CategoryDB.SaveCategories(list); var unknown2 = new CategoryConfigInfo() { CategoryTitle = "hi", DisplayOnHomePage = false, MeetingList = new myMeetingListRef() }; var ccvm = new CategoryConfigViewModel(unknown2.MeetingList); Assert.IsTrue(ccvm.IsSubscribed); Assert.IsTrue(ccvm.IsDisplayedOnMainPage); }
/// <summary> /// Init with a total category UI. /// </summary> /// <param name="ci"></param> public CategoryConfigViewModel(CategoryConfigInfo ci) { _meetingInfo = ci; InitializeVM(null); }