Example #1
0
        public void TestUDCListModel()
        {
            UDCListModel udc = new UDCListModel("Data Source=isostore:/Test1.sdf", true);
            UserModel testUser = new UserModel("1", "foo", "bar", "");
            udc.addUser(testUser);

            Assert.Equals(testUser, udc.UsersByFirstName[0]);
            Assert.IsTrue(udc.SubmitChanges());

            udc.LoadListsFromDatabase();

            Assert.Equals(testUser, udc.UsersByFirstName[0]);

            GroupModel testGroup = new GroupModel("TestGroup");
            udc.addGroup(testGroup);
            udc.addToGroup(testUser, testGroup);

            Assert.IsTrue(udc.GroupList[0].Users.Contains(testUser));

            CallLogEntry testEntry = new CallLogEntry();
            CallLogModel testLog = new CallLogModel(1);
            testLog.addEntry(testEntry);
            testUser.CallLogs.Add(testLog);

            Assert.IsTrue(udc.SubmitChanges());
            Assert.IsTrue(testUser.CallLogs.Any());
            Assert.Equals(testUser.CallLogs.First(), testLog);

            udc.removeGroup("TestGroup");
            Assert.IsTrue(udc.GroupList.Count == 0);
        }
Example #2
0
        protected override void OnActivate()
        {
            base.OnActivate();
            var log = from CallLogModel clm in udc.DataContext.CallLogTable
                      where clm.CallLogID.Equals(CallLogID)
                      select clm;
            if (log.Any()) {
                CallLog = log.First();
            } else {
                return;
            }
            User = CallLog.User;

            // Select all the call logs from the 7 days before the requested Log
            var olderLogs = from CallLogModel clm in User.CallLogs
                            where (clm.StartTime < CallLog.StartTime)
                                && (CallLog.StartTime - clm.StartTime <= TimeSpan.FromDays(7))
                            orderby clm.StartTime
                            select clm;
            var tmpCollection = new List<CallLogEntry>();
            foreach (CallLogModel clm in olderLogs) {
                tmpCollection.AddRange(clm.Entries);
            }
            tmpCollection.OrderBy(x => x.Timestamp);
            OldEntries = new ObservableCollection<CallLogEntry>(tmpCollection);
        }
Example #3
0
 public void removeFromGroup(UserModel u, GroupModel g)
 {
     var junction = from GroupMapModel gmm in udc.JunctionTable where gmm.UserID.Equals(u.UserID) && gmm.GroupName.Equals(g.GroupName) select gmm;
     GroupMapModel junctionModel;
     if (junction.Any())
     {
         junctionModel = junction.First();
         udc.JunctionTable.DeleteOnSubmit(junctionModel);
         udc.SubmitChanges();
     }
 }
Example #4
0
        public void removeUser(UserModel User)
        {
            if (udc.UserTable.Contains(User))
            {
                foreach (TitleGroup<UserModel> lettergroup in UsersByFirstName)
                {
                    if (lettergroup.Contains(User))
                    {
                        lettergroup.Remove(User);
                    }
                }
                foreach (TitleGroup<UserModel> lettergroup in UsersByLastName)
                {
                    if (lettergroup.Contains(User))
                    {
                        lettergroup.Remove(User);
                    }
                }
                var junctions = from GroupMapModel gmm in udc.JunctionTable where gmm.UserID.Equals(User.ID) select gmm;
                var logs = from CallLogModel clm in udc.CallLogTable where clm.CalleeID.Equals(User.ID) select clm;
                foreach (CallLogModel e in logs)
                {
                    var entries = from CallLogEntry en in udc.EntryTable where en.CallLogID.Equals(e.CallLogID) select en;
                    udc.EntryTable.DeleteAllOnSubmit(entries);
                    AllLogsList.Remove(e);
                }

                if (User.HasImage)
                {
                    using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
                    {
                        if (myIsolatedStorage.FileExists(User.UserImagePath))
                        {
                            myIsolatedStorage.DeleteFile(User.UserImagePath);
                        }
                    }
                }
                udc.CallLogTable.DeleteAllOnSubmit(logs);
                udc.SubmitChanges();
                udc.JunctionTable.DeleteAllOnSubmit(junctions);
                udc.SubmitChanges();
                udc.UserTable.DeleteOnSubmit(User);
                udc.SubmitChanges();
            }
        }
Example #5
0
        public bool addUser(UserModel User)
        {
            if ((from u in udc.UserTable where u.UserID.Equals(User.UserID) select u).Any())
                return false;

            udc.UserTable.InsertOnSubmit(User);
            try { udc.SubmitChanges(); }
            catch (Exception dbe) { return false; }

            string firstInitial = findInitial(User.FirstName);
            string lastInitial = findInitial(User.LastName);
            foreach (TitleGroup<UserModel> gr in UsersByFirstName)
            {
                if (gr.Title.Equals(firstInitial))
                {
                    gr.Add(User);
                    gr.OrderBy((u, v) => u.FirstName.CompareTo(v.FirstName));
                    NotifyOfPropertyChange("UsersByFirstName");
                }
            }
            foreach (TitleGroup<UserModel> gr in UsersByLastName)
            {
                if (gr.Title.Equals(lastInitial))
                {
                    gr.Add(User);
                    gr.OrderBy((u, v) => u.LastName.CompareTo(v.LastName));
                    NotifyOfPropertyChange("UsersByLastName");
                }
            }
            return true;
        }
Example #6
0
        public bool changeUserID(UserModel m, string NewUserID)
        {
            if ((from u in udc.UserTable where u.UserID.Equals(NewUserID) select u).Any())
                return false;
            m.UserID = NewUserID;
            try
            {
                udc.SubmitChanges();
            }
            catch (Exception e) { return false; }

            return true;
            //if (!NewUserID.Equals(m.UserID))
            //{
            //    UserModel newUser = new UserModel(NewUserID, m.FirstName, m.LastName, m.UserImagePath);
            //    if (addUser(newUser))
            //    {
            //        var junctions = from GroupMapModel gmm in udc.JunctionTable where gmm.UserID.Equals(m.UserID) select gmm;
            //        var logs = from CallLogModel clm in udc.CallLogTable where clm.CalleeID.Equals(m.UserID) select clm;
            //        List<GroupMapModel> newGmm = new List<GroupMapModel>();
            //        List<CallLogModel> newClm = new List<CallLogModel>();
            //        foreach (GroupMapModel gmm in junctions)
            //        {
            //            //newGmm.Add(new GroupMapModel(gmm.GroupName, newUser.UserID));
            //            gmm.UserID = newUser.ID;
            //        }
            //        udc.SubmitChanges();
            //        foreach (CallLogModel clm in logs)
            //        {
            //            //var tmp = new CallLogModel(newUser.UserID, clm.StartTime);
            //            //newClm.Add(new CallLogModel(newUser.UserID, clm.StartTime));
            //            clm.CalleeID = newUser.ID;
            //        }
            //        udc.SubmitChanges();
            //        this.removeUser(m);
            //        try
            //        {
            //            udc.SubmitChanges();
            //        }
            //        catch (Exception e)
            //        {
            //            bool foo = false;
            //        }
            //        return newUser;
            //    }
            //    else
            //    {
            //        return m;
            //    }
            //}
            //else
            //{
            //    return m;
            //}
        }
Example #7
0
 public void EditContact(UserModel um)
 {
     navService.UriFor<ContactEditPageViewModel>().
         WithParam(x => x.CreateUser, false).
         WithParam(x => x.TargetUserID, um.ID).
         Navigate();
 }
Example #8
0
        public void addToGroup(UserModel u, GroupModel g)
        {
            GroupMapModel junctionModel = new GroupMapModel(g.GroupName, u.ID);
            //JunctionTable.InsertOnSubmit(junctionModel);

            g.addJunction(junctionModel);
            udc.SubmitChanges();
        }
Example #9
0
 public void DeleteContact(UserModel um)
 {
     if (MessageBox.Show("Are you sure you want to delete " + um.FirstLast + "?", "Delete", MessageBoxButton.OKCancel).Equals(MessageBoxResult.OK))
     {
         udc.removeUser(um);
         refreshBinding();
     }
 }
Example #10
0
 public void ContactTapped(UserModel um)
 {
     navService.UriFor<ContactDetailsPageViewModel>().
             WithParam(x => x.TargetUserID, um.ID).
             Navigate();
 }
        protected override void OnActivate()
        {
            base.OnActivate();
            if (ClearBackStack)
            {
                navService.RemoveBackEntry();
                navService.RemoveBackEntry();
            }
            User = udc.GetUser(TargetUserID);
            if (User == null)
                return;
            else
                NotifyOfPropertyChange("User");
            var logList = User.CallLogs.OrderByDescending((log) => log.StartTime);
            if (logList.Any() && logList.First().Entries.Any()) {
                LastCallLog = logList.First();
                LastCallLogEntry = logList.First().Entries.First();
            }
            else
            {
                LastCallLogEntry = new CallLogEntry("You have no recent calls with " + User.FirstLast + ".", DateTime.Now, "[none]");
                //LastCallLog = new CallLogModel(User.ID, DateTime.Now);

                //LastCallLog.addEntry("Echo park synth fixie, accusamus anim gentrify occaecat photo booth.");
                //User.CallLogs.Add(LastCallLog);
                //udc.CallLogTable.InsertOnSubmit(log);
                //udc.SubmitChanges();
                //log.addEntry("And now we're testing the wrapping abilities... god, I hope this works...");
                //User.CallLogs.Add(log);
                //udc.SubmitChanges();
            }
        }
Example #12
0
 public void addUser(UserModel um)
 {
     NotifyPropertyChanging("UserGroups");
     this.UserGroups.Add(new GroupMapModel(this.GroupName, um.ID));
     NotifyOfPropertyChange("UserGroups");
 }
Example #13
0
        private void incomingCall(byte[] data, SocketAsyncEventArgs e)
        {
            UserModel caller;
            string fromID = decryptAndVerify(data);
            var userMatch = from UserModel u in udc.DataContext.UserTable where u.UserID.Equals(fromID) select u;
            if (userMatch.Any())
            {
                caller = userMatch.First();
            }
            else
            {
                caller = new UserModel(fromID, "Unknown", "Unknown", "");
                udc.addUser(caller);
                udc.SubmitChanges();
            }

            Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                Coroutine.BeginExecute(IncomingCall(caller.ID));
            });
            //do something
        }