/// <summary>
 /// Creates an instance of NewUserRegistrationViewModel
 /// </summary>
 public NewUserRegistrationViewModel()
     : this(YapperServiceProxy.Instance)
 {
     DataSync.Instance.SyncUsers();
         trial = new RegisteredUsersViewModel();
         Messenger.Default.Register<NewContactEvent>(this, this.ReadRegisteredUsersFromDB);
 }
Exemple #2
0
        public YapperChatViewModel(bool startup)
        {
            Messenger.Default.Register<RefreshGroupsEvent>(this, this.ReadGroupsRefreshContactsPage);

            this.conversationsViewModel = ViewModelLocator.Instance.CreateOrGetViewModel<AllConversationsViewModel>();
            this.newTaskCountViewModel = ViewModelLocator.Instance.CreateOrGetViewModel<NewTaskCountViewModel>();
            this.newMessageCountViewModel = ViewModelLocator.Instance.CreateOrGetViewModel<NewMessageCountViewModel>();

            if (!startup)
            {
                this.registeredUsersViewModel = ViewModelLocator.Instance.CreateOrGetViewModel<RegisteredUsersViewModel>();
                this.groupsViewModel = ViewModelLocator.Instance.CreateOrGetViewModel<AllGroupsViewModel>();
                this.tasksViewModel = ViewModelLocator.Instance.CreateOrGetViewModel<AllTasksViewModel>();
            }
        }
Exemple #3
0
        public YapperChatViewModel(bool startup)
        {
            Messenger.Default.Register <RefreshGroupsEvent>(this, this.ReadGroupsRefreshContactsPage);

            this.conversationsViewModel   = ViewModelLocator.Instance.CreateOrGetViewModel <AllConversationsViewModel>();
            this.newTaskCountViewModel    = ViewModelLocator.Instance.CreateOrGetViewModel <NewTaskCountViewModel>();
            this.newMessageCountViewModel = ViewModelLocator.Instance.CreateOrGetViewModel <NewMessageCountViewModel>();

            if (!startup)
            {
                this.registeredUsersViewModel = ViewModelLocator.Instance.CreateOrGetViewModel <RegisteredUsersViewModel>();
                this.groupsViewModel          = ViewModelLocator.Instance.CreateOrGetViewModel <AllGroupsViewModel>();
                this.tasksViewModel           = ViewModelLocator.Instance.CreateOrGetViewModel <AllTasksViewModel>();
            }
        }
        public void LoadContactsFromDatabase()
        {
            MockServiceProxy serviceProxy = new MockServiceProxy() { };
            MockUserSettings userSettings = new MockUserSettings();
            MockDataContextWrapper dataContextWrapper = new MockDataContextWrapper(new MockDatabase() {Users = this.users});
            MockContactSearchController searchController = new MockContactSearchController();

            RegisteredUsersViewModel ruvm = new RegisteredUsersViewModel(serviceProxy, userSettings, dataContextWrapper, searchController);

            // start loading the users from database
            NotifyCollectionOfCollectionChangedTester<UserModel> collectionChanged = new NotifyCollectionOfCollectionChangedTester<UserModel>(ruvm.RegisteredUsers);
            ruvm.Search();

            Assert.AreEqual(this.users.Count, collectionChanged.Count, "The users were not read from the database correctly");
            Assert.AreEqual(this.users.Count, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
        }
Exemple #5
0
        public void SetGroup(GroupModel group)
        {
            if (group != null)
            {
                this.group = group;
                this.Name  = group.Name;
                this.Owner = group.Owner.Name;
                this.registeredUsersViewModel = ViewModelLocator.Instance.CreateOrGetViewModel <RegisteredUsersViewModel>();
                Messenger.Default.Register <GroupMemberAddedEvent>(this, this.MemberAdded);
                Messenger.Default.Register <GroupMemberRemovedEvent>(this, this.MemberRemoved);
                this.group.Members.Sort((x, y) => { return(String.Compare(x.Name, y.Name)); });
                for (int i = 0; i < group.Members.Count; i++)
                {
                    this.AddGroupMember(group.Members[i]);
                    this.nonGroupedMembers.Add(group.Members[i]);
                }

                this.NotifyPropertyChanged("RegisteredUsers");
            }
        }
        public void LoadContactsFromDatabaseAndAddExistingContact()
        {
            MockServiceProxy serviceProxy = new MockServiceProxy() { Users = this.users };
            MockUserSettings userSettings = new MockUserSettings();
            MockDataContextWrapper dataContextWrapper = new MockDataContextWrapper(new MockDatabase() { Users = this.users });
            MockContactSearchController searchController = new MockContactSearchController() { Users = this.users };

            RegisteredUsersViewModel ruvm = new RegisteredUsersViewModel(serviceProxy, userSettings, dataContextWrapper, searchController);

            // start loading the users from database
            ruvm.Search();

            while (ruvm.IsLoading)
            {
                System.Threading.Thread.Sleep(1000);
            }

            NotifyCollectionOfCollectionChangedTester<UserModel> collectionChanged = new NotifyCollectionOfCollectionChangedTester<UserModel>(ruvm.RegisteredUsers);

            Messenger.Default.Send<NewContactEvent>(new NewContactEvent() { Contact = this.users[0] });

            Assert.AreEqual(0, collectionChanged.Count, "The contact should not be added");
            Assert.AreEqual(this.users.Count, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
        }
 public PhoneContactsJumpListViewModel()
 {
     vm = new RegisteredUsersViewModel();
 }
Exemple #8
0
 public AddNewGroupViewModel()
 {
     this.registeredUsers = ViewModelLocator.Instance.CreateOrGetViewModel<RegisteredUsersViewModel>();
     Messenger.Default.Register<NewGroupEvent>(this, this.GroupCreated);
 }
        public void TestContactGroups()
        {
            MockServiceProxy serviceProxy = new MockServiceProxy() { Users = new List<UserModel>() };
            MockUserSettings userSettings = new MockUserSettings();
            MockDataContextWrapper dataContextWrapper = new MockDataContextWrapper(new MockDatabase() { Users = new List<UserModel>() });
            MockContactSearchController searchController = new MockContactSearchController() { Users = new List<UserModel>() };

            RegisteredUsersViewModel ruvm = new RegisteredUsersViewModel(serviceProxy, userSettings, dataContextWrapper, searchController);

            // start loading the users from database
            ruvm.Search();

            while (ruvm.IsLoading)
            {
                System.Threading.Thread.Sleep(1000);
            }

            NotifyCollectionOfCollectionChangedTester<UserModel> collectionChanged = new NotifyCollectionOfCollectionChangedTester<UserModel>(ruvm.RegisteredUsers);
            int id = 1;

            // Add one user whose first letter is 't'
            UserModel tUser = new UserModel() { Name = "tUser", Id = id++, PhoneNumber = "123 456 789" + id };
            Messenger.Default.Send<NewContactEvent>(new NewContactEvent() { Contact = tUser }, userSettings);

            Assert.AreEqual(1, collectionChanged.Count, "The contact should not be added");
            Assert.AreEqual(1, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
            Assert.AreEqual(1, ruvm.RegisteredUsers.Count, "Wrong number of contact groups created");

            // Add another user whose first letter is 'd'
            UserModel dUser = new UserModel() { Name = "dUser", Id = id++, PhoneNumber = "123 456 789" + id };
            Messenger.Default.Send<NewContactEvent>(new NewContactEvent() { Contact = dUser }, userSettings);

            Assert.AreEqual(2, collectionChanged.Count, "The contact should not be added");
            Assert.AreEqual(2, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
            Assert.AreEqual(2, ruvm.RegisteredUsers.Count, "Wrong number of contact groups created");

            // Add another user whose first letter is 's'
            UserModel sUser = new UserModel() { Name = "sUser", Id = id++, PhoneNumber = "123 456 789" + id };
            Messenger.Default.Send<NewContactEvent>(new NewContactEvent() { Contact = sUser }, userSettings);

            Assert.AreEqual(3, collectionChanged.Count, "The contact should not be added");
            Assert.AreEqual(3, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
            Assert.AreEqual(3, ruvm.RegisteredUsers.Count, "Wrong number of contact groups created");

            // Add another user whose first letter is 'd'
            UserModel dSecondUser = new UserModel() { Name = "dSecondUser", Id = id++, PhoneNumber = "123 456 789" + id };
            Messenger.Default.Send<NewContactEvent>(new NewContactEvent() { Contact = dSecondUser }, userSettings);

            Assert.AreEqual(4, collectionChanged.Count, "The contact should not be added");
            Assert.AreEqual(4, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
            Assert.AreEqual(3, ruvm.RegisteredUsers.Count, "Wrong number of contact groups created");

            // Add another user whose first letter is 's'.
            UserModel sSecondUser = new UserModel() { Name = "sSecondUser", Id = id++, PhoneNumber = "123 456 789" + id };
            Messenger.Default.Send<NewContactEvent>(new NewContactEvent() { Contact = sSecondUser }, userSettings);

            Assert.AreEqual(5, collectionChanged.Count, "The contact should not be added");
            Assert.AreEqual(5, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
            Assert.AreEqual(3, ruvm.RegisteredUsers.Count, "Wrong number of contact groups created");

            // Add another user whose first letter is 's'. Try different position in
            // the 's' groups sorted list
            UserModel sZUser = new UserModel() { Name = "sZUser", Id = id++, PhoneNumber = "123 456 789" + id };
            Messenger.Default.Send<NewContactEvent>(new NewContactEvent() { Contact = sZUser }, userSettings);

            Assert.AreEqual(6, collectionChanged.Count, "The contact should not be added");
            Assert.AreEqual(6, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
            Assert.AreEqual(3, ruvm.RegisteredUsers.Count, "Wrong number of contact groups created");
        }
        public void TestAddContactReverseAlphabeticalOrder()
        {
            MockServiceProxy serviceProxy = new MockServiceProxy() { Users = new List<UserModel>() };
            MockUserSettings userSettings = new MockUserSettings();
            MockDataContextWrapper dataContextWrapper = new MockDataContextWrapper(new MockDatabase() { Users = new List<UserModel>() });
            MockContactSearchController searchController = new MockContactSearchController() { Users = new List<UserModel>() };

            RegisteredUsersViewModel ruvm = new RegisteredUsersViewModel(serviceProxy, userSettings, dataContextWrapper, searchController);

            // start loading the users from database
            ruvm.Search();

            while (ruvm.IsLoading)
            {
                System.Threading.Thread.Sleep(1000);
            }

            NotifyCollectionOfCollectionChangedTester<UserModel> collectionChanged = new NotifyCollectionOfCollectionChangedTester<UserModel>(ruvm.RegisteredUsers);

            // Sort it in reverse order
            this.users.Sort((x, y) => { return -1 * string.Compare(x.Name, y.Name, StringComparison.OrdinalIgnoreCase); });

            for (int i = 0; i < this.users.Count; i++)
            {
                Messenger.Default.Send<NewContactEvent>(new NewContactEvent() { Contact = this.users[i] }, userSettings);
            }

            Assert.AreEqual(this.users.Count, collectionChanged.Count, "The contact should not be added");
            Assert.AreEqual(this.users.Count, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");

            // Sort it in alphabetical order and attempt to insert again
            this.users.Sort((x, y) => { return string.Compare(x.Name, y.Name, StringComparison.OrdinalIgnoreCase); });

            for (int i = 0; i < this.users.Count; i++)
            {
                Messenger.Default.Send<NewContactEvent>(new NewContactEvent() { Contact = this.users[i] }, userSettings);
            }

            Assert.AreEqual(this.users.Count, collectionChanged.Count, "The contact should not be added");
            Assert.AreEqual(this.users.Count, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
        }
        public void LoadContactsFromDatabaseAndNewServiceContacts()
        {
            List<UserModel> newUsers = new List<UserModel>();
            Random random = new Random();
            for (int i = 0; i < 5; i++)
            {
                newUsers.Add(new UserModel(){ Id = 1000 + 100*i, Name = "LoadContactsFromDatabaseAndNewServiceContacts" + i, PhoneNumber = "+1 100-200-300" + i});
            }

            MockServiceProxy serviceProxy = new MockServiceProxy() { Users =  newUsers};
            MockUserSettings userSettings = new MockUserSettings();
            MockDataContextWrapper dataContextWrapper = new MockDataContextWrapper(new MockDatabase() { Users = this.users });
            MockContactSearchController searchController = new MockContactSearchController() { Users = newUsers };

            RegisteredUsersViewModel ruvm = new RegisteredUsersViewModel(serviceProxy, userSettings, dataContextWrapper, searchController);

            // start loading the users from database
            NotifyCollectionOfCollectionChangedTester<UserModel> collectionChanged = new NotifyCollectionOfCollectionChangedTester<UserModel>(ruvm.RegisteredUsers);
            ruvm.Search();

            while (ruvm.IsLoading)
            {
                System.Threading.Thread.Sleep(1000);
            }

            Assert.AreEqual(this.users.Count + newUsers.Count, collectionChanged.Count, "The users were not read from the database correctly");
            Assert.AreEqual(this.users.Count + newUsers.Count, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
        }
        public void LoadContactsFromDatabaseAndAddNewContact()
        {
            MockServiceProxy serviceProxy = new MockServiceProxy() { Users = this.users };
            MockUserSettings userSettings = new MockUserSettings();
            MockDataContextWrapper dataContextWrapper = new MockDataContextWrapper(new MockDatabase() { Users = this.users });
            MockContactSearchController searchController = new MockContactSearchController() { Users = this.users };

            RegisteredUsersViewModel ruvm = new RegisteredUsersViewModel(serviceProxy, userSettings, dataContextWrapper, searchController);

            // start loading the users from database
            ruvm.Search();

            while (ruvm.IsLoading)
            {
                System.Threading.Thread.Sleep(1000);
            }

            Random random = new Random();
            UserModel user = new UserModel() { Id = random.Next(100, 500), Name = "LoadContactsFromDatabaseAndNewServiceContacts", PhoneNumber = "+1 100-200-3000"};
            NotifyCollectionOfCollectionChangedTester<UserModel> collectionChanged = new NotifyCollectionOfCollectionChangedTester<UserModel>(ruvm.RegisteredUsers);

            Messenger.Default.Send<NewContactEvent>(new NewContactEvent() { Contact = user }, userSettings);

            Assert.AreEqual(1, collectionChanged.Count, "The contact was not added");
            Assert.AreEqual(this.users.Count + 1, ((MockTable<UserModel>)dataContextWrapper.Table<UserModel>()).Count, "The database was not supposed to be modified.");
        }
Exemple #13
0
 public PhoneContactsJumpListViewModel()
 {
     vm = new RegisteredUsersViewModel();
 }
Exemple #14
0
 public AddNewGroupViewModel()
 {
     this.registeredUsers = ViewModelLocator.Instance.CreateOrGetViewModel <RegisteredUsersViewModel>();
     Messenger.Default.Register <NewGroupEvent>(this, this.GroupCreated);
 }
Exemple #15
0
 /// <summary>
 /// Creates an instance of NewUserRegistrationViewModel
 /// </summary>
 public NewUserRegistrationViewModel() : this(YapperServiceProxy.Instance)
 {
     DataSync.Instance.SyncUsers();
     trial = new RegisteredUsersViewModel();
     Messenger.Default.Register <NewContactEvent>(this, this.ReadRegisteredUsersFromDB);
 }