Example #1
0
        /// <summary>
        /// Tries to implement the Get [] semantics, but it cuts corners.
        /// Specifically, it gets all friendships even if they weren't accepted yet.
        /// </summary>
        /// <param name="fields"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public FriendsData[] GetFriends(string userID)
        {
            lock (m_Data)
            {
                List <FriendsData> lst = m_Data.FindAll(fdata =>
                {
                    return(fdata.PrincipalID == userID.ToString());
                });

                if (lst != null)
                {
                    lst.ForEach(f =>
                    {
                        FriendsData f2 = m_Data.Find(candidateF2 => f.Friend == candidateF2.PrincipalID);
                        if (f2 != null)
                        {
                            f.Data["TheirFlags"] = f2.Data["Flags"];
                        }

                        //                    m_log.DebugFormat(
                        //                        "[NULL FRIENDS DATA]: Got {0} {1} {2} for {3}",
                        //                        f.Friend, f.Data["Flags"], f2 != null ? f.Data["TheirFlags"] : "not found!", f.PrincipalID);
                    });

                    //                m_log.DebugFormat("[NULL FRIENDS DATA]: Got {0} friends for {1}", lst.Count, userID);

                    return(lst.ToArray());
                }
            }

            return(new FriendsData[0]);
        }
Example #2
0
        public virtual bool StoreFriend(string PrincipalID, string Friend, int flags)
        {
            FriendsData d = new FriendsData();

            d.PrincipalID   = PrincipalID;
            d.Friend        = Friend;
            d.Data          = new Dictionary <string, string>();
            d.Data["Flags"] = flags.ToString();

            return(m_Database.Store(d));
        }
Example #3
0
        public bool Store(FriendsData data)
        {
            if (data == null)
            {
                return(false);
            }

            m_Data.Add(data);

            return(true);
        }
Example #4
0
        public void ChangedCache()
        {
            var  watch   = Stopwatch.StartNew();
            int  fuserId = 1000;
            var  cache   = new PersonalCacheStruct <UserFriend>();
            long userId  = cache.GetNextNo();

            cache.FindKey(userId.ToString());

            UserFriend Jim = PersonalCacheStruct.GetOrAdd <UserFriend>(userId.ToString(), new Lazy <UserFriend>(() =>
            {
                var f = new UserFriend()
                {
                    UserId = userId, Name = "Jim"
                };
                f.Friends.Add(new FriendsData()
                {
                    UserId = fuserId, Num = 1
                });
                f.FriendDict.Add(fuserId, new FriendsData()
                {
                    UserId = fuserId, Num = 1
                });
                return(f);
            }));

            //Jim.SetChangeProperty("Name");
            Assert.IsTrue(cache.AddOrUpdate(Jim));
            Assert.IsTrue(Jim.IsInCache);

            var         temp  = cache.FindKey(userId.ToString());
            FriendsData fdata = null;

            //list
            fdata = temp.Friends[0];
            if (fdata != null)
            {
                Trace.WriteLine("num:" + fdata.Num);
                fdata.Num++;
                Assert.IsTrue(Jim.Friends.HasChanged, "list error");
                Assert.IsTrue(Jim.HasChangePropertys, "list error");
            }
            //dict
            if (temp.FriendDict.TryGetValue(fuserId, out fdata))
            {
                fdata.Num++;
                Assert.IsTrue(Jim.FriendDict.HasChanged, "dict error");
                Assert.IsTrue(Jim.HasChangePropertys, "entity error");
            }
            WaitEnd(watch);
        }
Example #5
0
        public ActionResult FriendsRequest()
        {
            RegisteredUser ru = registeredUserRepository.Get(this.UserId);
            FriendsData    fd = new FriendsData();

            fd.List    = false;
            fd.Friends = ru.FriendsThatInvitedMe;

            ViewData["GMailAuthUrl"] = new GoogleProvider().GetAuthorizationURL();
            ViewData["LiveAuthUrl"]  = new LiveProvider().GetAuthorizationURL();
            ViewData["YahooAuthUrl"] = "N/D";

            return(View("Index", fd));
        }
        public bool Store(FriendsData data)
        {
            if (data == null)
            {
                return(false);
            }

//            m_log.DebugFormat(
//                "[NULL FRIENDS DATA]: Storing {0} {1} {2}", data.PrincipalID, data.Friend, data.Data["Flags"]);

            m_Data.Add(data);

            return(true);
        }
Example #7
0
        public bool Delete(string userID, string friendID)
        {
            List <FriendsData> lst = m_Data.FindAll(delegate(FriendsData fdata) { return(fdata.PrincipalID == userID.ToString()); });

            if (lst != null)
            {
                FriendsData friend = lst.Find(delegate(FriendsData fdata) { return(fdata.Friend == friendID); });
                if (friendID != null)
                {
                    m_Data.Remove(friend);
                    return(true);
                }
            }

            return(false);
        }
        public bool Delete(string userID, string friendID)
        {
            List <FriendsData> lst = m_Data.FindAll(delegate(FriendsData fdata) { return(fdata.PrincipalID == userID.ToString()); });

            if (lst != null)
            {
                FriendsData friend = lst.Find(delegate(FriendsData fdata) { return(fdata.Friend == friendID); });
                if (friendID != null)
                {
//                    m_log.DebugFormat(
//                        "[NULL FRIENDS DATA]: Deleting friend {0} {1} for {2}",
//                        friend.Friend, friend.Data["Flags"], friend.PrincipalID);

                    m_Data.Remove(friend);
                    return(true);
                }
            }

            return(false);
        }
Example #9
0
        public ActionResult AddFriend(FriendsData friendData)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    inviteContactsService.InviteUser(this.ProxyLoggedUser, string.Empty, null, new UserContact()
                    {
                        EmailAddress = friendData.NewFriend.Email, FirstName = friendData.NewFriend.FirstName, LastName = friendData.NewFriend.LastName
                    }, Convert.ToBoolean(ConfigurationManager.AppSettings["IsInBeta"]));
                    TempData["NewFriendsAdded"] = true;
                    return(RedirectToAction("Index"));
                }
                catch (LimitOfFriendsExceededException ex)
                {
                    ModelState.AddModelError("NewFriend.Email", ex.Message);
                }
            }

            LoadFriendData(null);
            dataView.NewFriend = friendData.NewFriend;
            return(View("Index", dataView));
        }
Example #10
0
        /// <summary>
        /// Tries to implement the Get [] semantics, but it cuts corners.
        /// Specifically, it gets all friendships even if they weren't accepted yet.
        /// </summary>
        /// <param name="fields"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public FriendsData[] GetFriends(string userID)
        {
            List <FriendsData> lst = m_Data.FindAll(fdata =>
            {
                return(fdata.PrincipalID == userID.ToString());
            });

            if (lst != null)
            {
                lst.ForEach(f =>
                {
                    FriendsData f2 = m_Data.Find(candidateF2 => f.Friend == candidateF2.PrincipalID);
                    if (f2 != null)
                    {
                        f.Data["TheirFlags"] = f2.Data["Flags"];
                    }
                });

                return(lst.ToArray());
            }

            return(new FriendsData[0]);
        }
        public bool Store(FriendsData data)
        {
            if (data == null)
                return false;

//            m_log.DebugFormat(
//                "[NULL FRIENDS DATA]: Storing {0} {1} {2}", data.PrincipalID, data.Friend, data.Data["Flags"]);

            m_Data.Add(data);

            return true;
        }