Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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());
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
        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);
 }