/// <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]); }
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)); }
public bool Store(FriendsData data) { if (data == null) { return(false); } m_Data.Add(data); return(true); }
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); }
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); }
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); }
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)); }
/// <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; }