コード例 #1
0
        public static void ChangeGroupMessage(SocketAsyncEventArgs e)
        {
            MClient        mClient = MClient.CreateInstance();
            AsyncUserToken token   = (AsyncUserToken)e.UserToken;
            //得到一个完整的包的数据,放入新list,第二个参数是数据长度,所以要减去8
            List <byte> onePackage = token.receiveBuffer.GetRange(8, token.packageLen - 8);

            //将复制出来的数据从receiveBuffer旧list中删除
            token.receiveBuffer.RemoveRange(0, token.packageLen);
            //list要先转换成数组,再转换成字符串
            String jsonStr = Encoding.Default.GetString(onePackage.ToArray());
            //得到用户名和密码
            JArray jArray = JArray.Parse(jsonStr);

            //先保存好友信息
            if (jArray[0]["isOk"].ToString().Equals("True"))
            {
                Console.WriteLine("保存好友信息");

                foreach (var obj in jArray)
                {
                    SqliteConnect.SaveFriendInfo(obj["id"].ToString(), obj["Group"].ToString(), obj["UserName"].ToString(), obj["RealName"].ToString(), obj["Sex"].ToString(),
                                                 obj["BirthDay"].ToString(), obj["Address"].ToString(), obj["Email"].ToString(), obj["PhoneNumber"].ToString(),
                                                 obj["Remarks"].ToString());
                }
            }
            //然后删除原分组List中的好友
            Application.Current.Dispatcher.Invoke(
                new Action(() =>
            {
                FriendListViewModel friendListViewModel = FriendListViewModel.CreateInstance();
                FriendEntity.InGroupListDelete(friendListViewModel.friendGroups, jArray[0]["id"].ToString());
            })
                );
        }
コード例 #2
0
 public AcceptFriendRequestCommand(FriendListViewModel friendListViewModel, Action updateFriendAction, IFriendService friendService, ILogger logger)
 {
     _friendListViewModel = friendListViewModel;
     _updateFriendAction  = updateFriendAction;
     _friendService       = friendService;
     _logger = logger;
 }
コード例 #3
0
        // GET: Friends
        public ActionResult Index(string DistanceSearch, string FromWhere, string FromWhereCity)
        {
            GoogleMapsAPI maps = GoogleMapsAPI.getInstance();

            // retrieve the current Client's IP
            string clientIp = getUsersIP();

            // use IpApi to retrieve the client's location
            // or use search city
            string lat = null, lng = null;

            if (!String.IsNullOrEmpty(FromWhere) && FromWhere == "other" && !String.IsNullOrEmpty(FromWhereCity))
            {
                string[] location = maps.getAddressInfoByStreet(FromWhereCity);
                if (location != null)
                {
                    lat = location[0];
                    lng = location[1];
                }
            }
            if (String.IsNullOrEmpty(lat) || String.IsNullOrEmpty(lng))
            {
                string location = new WebClient().DownloadString(String.Format("https://ipapi.co/{0}/latlong/", clientIp));
                lat = location.Substring(0, location.IndexOf(",")).Trim();
                lng = location.Substring(lat.Length + 1).Trim();
            }


            // check distance from search
            double dist = 10000;

            if (!String.IsNullOrEmpty(DistanceSearch))
            {
                Double.TryParse(DistanceSearch, out dist);
            }

            //set up for query call
            var pLat  = new SqlParameter("p_lat", lat);
            var pLng  = new SqlParameter("p_lng", lng);
            var pDist = new SqlParameter("p_dist", dist);

            // call the procedure
            var friendList = db.Database.SqlQuery <FriendWithDistanceViewModel>("exec geodist @p_lat, @p_lng, @p_dist", pLat, pLng, pDist);

            // setup info for display
            string address = maps.getAddressInfoByLocation(lat, lng);

            ViewBag.IntellisenseScript = GoogleMapsAPI.getIntellisenseScriptURL();

            FriendListViewModel viewModel = new FriendListViewModel()
            {
                friendList = friendList,
                clientIp   = clientIp,
                lat        = lat,
                lng        = lng,
                location   = address
            };

            return(View(viewModel));
        }
コード例 #4
0
        public static void DeleteFriendMessage(SocketAsyncEventArgs e)
        {
            MClient        mClient = MClient.CreateInstance();
            AsyncUserToken token   = (AsyncUserToken)e.UserToken;
            //得到一个完整的包的数据,放入新list,第二个参数是数据长度,所以要减去8
            List <byte> onePackage = token.receiveBuffer.GetRange(8, token.packageLen - 8);

            //将复制出来的数据从receiveBuffer旧list中删除
            token.receiveBuffer.RemoveRange(0, token.packageLen);
            //list要先转换成数组,再转换成字符串
            String jsonStr = Encoding.Default.GetString(onePackage.ToArray());

            //得到用户名和密码
            Console.WriteLine("jsonStr = " + jsonStr);
            JObject obj = JObject.Parse(jsonStr);

            //先从数据库中删除
            SqliteConnect.DeleteFriendById(obj["Id"].ToString());
            //然后从好友队列中删除
            Application.Current.Dispatcher.Invoke(
                new Action(() =>
            {
                FriendListViewModel friendListViewModel = FriendListViewModel.CreateInstance();
                FriendEntity.InGroupListDelete(friendListViewModel.friendGroups, obj["Id"].ToString());
            })
                );
        }
コード例 #5
0
        //更新好友状态
        public static void FriendStatusMessage(SocketAsyncEventArgs e)
        {
            MClient        mClient = MClient.CreateInstance();
            AsyncUserToken token   = (AsyncUserToken)e.UserToken;
            //得到一个完整的包的数据,放入新list,第二个参数是数据长度,所以要减去8
            List <byte> onePackage = token.receiveBuffer.GetRange(8, token.packageLen - 8);

            //将复制出来的数据从receiveBuffer旧list中删除
            token.receiveBuffer.RemoveRange(0, token.packageLen);
            //list要先转换成数组,再转换成字符串
            String jsonStr = Encoding.Default.GetString(onePackage.ToArray());

            //得到用户名和密码
            Console.WriteLine("jsonStr = " + jsonStr);
            JArray jArray = JArray.Parse(jsonStr);

            foreach (var obj in jArray)
            {
                //修改好友状态
                Application.Current.Dispatcher.Invoke(
                    new Action(() =>
                {
                    FriendListViewModel friendListViewModel = FriendListViewModel.CreateInstance();
                    try
                    {
                        FriendEntity.UpdateFriendStatus(friendListViewModel.friendGroups, obj["id"].ToString(), obj["Group"].ToString(), obj["Status"].ToString());
                    }
                    catch (Exception ex)
                    {
                        Console.Write(ex);
                    }
                })
                    );
            }
        }
コード例 #6
0
 public RemoveFriendCommand(FriendListViewModel friendListViewModel, Action updateFriendAction, IFriendService friendService, ILogger logger)
 {
     _friendListViewModel = friendListViewModel;
     _updateFriendAction  = updateFriendAction;
     _friendService       = friendService;
     _logger = logger;
 }
コード例 #7
0
        public IActionResult GetAllFriends([FromBody] GetMoodByUserViewModel user)
        {
            List <User> friends = new List <User>();
            List <FriendListViewModel> friendList = new List <FriendListViewModel>();

            try
            {
                friends = _friendshipRepo.GetAllFriendsByUserId(user.UserId);
                if (friends != null)
                {
                    foreach (var friend in friends)
                    {
                        FriendListViewModel friendListViewModel = new FriendListViewModel
                        {
                            FirstName = friend.FirstName,
                            LastName  = friend.LastName,
                            UserId    = friend.Id,
                            Phone     = friend.PhoneNumber
                        };
                        friendList.Add(friendListViewModel);
                    }
                }
                return(Ok(friendList));
            }
            catch (Exception e)
            {
                return(BadRequest());
            }
        }
コード例 #8
0
        public ActionResult ViewFriendList(int profileId)
        {
            try
            {
                var ctx = new AppDbContext();
                FriendListViewModel viewModel = new FriendListViewModel();

                var result = (from Friend in ctx.Friends
                              join Category in ctx.Categories on Friend.CategoryId equals Category.CategoryId
                              join Profile in ctx.Profiles on Friend.SenderId equals Profile.ProfileId
                              where Friend.RecieverId == profileId &&
                              Profile.Active == true
                              select new FriendListViewModel
                {
                    ProfileId = Profile.ProfileId,
                    Förnamn = Profile.Förnamn,
                    Efternamn = Profile.Efternamn,
                    CategoryId = Category.CategoryId,
                    CategoryName = Category.CategoryName,
                    ImagePath = ctx.Images.FirstOrDefault(a => a.ProfileId == Profile.ProfileId).ImgPath
                }).ToList();

                var categories = ctx.Categories.ToList();
                ViewBag.Category = new SelectList(categories, "CategoryId", "CategoryName");

                return(View(result));
            }
            catch (Exception)
            {
                return(RedirectToAction("GenericError", "ErrorHandler"));
            }
        }
コード例 #9
0
        //private readonly UserViewModel _userViewModel;


        #endregion

        #region Ctor

        public FriendList(IUserService userService, string userName)
        {
            InitializeComponent();
            var friendListView = new FriendListViewModel(userService, userName);

            DataContext = friendListView;
            FriendListBox.ItemsSource = friendListView.FriendList;
        }
コード例 #10
0
        public FriendListViewModel GetFriendsCtrl(int id)
        {
            FriendListViewModel    fvm = new FriendListViewModel();
            FriendsBusinessLayer   fbl = new FriendsBusinessLayer();
            List <PersonalDetails> f   = fbl.getAllFriends(id);

            fvm.friendListViewModel = f;
            return(fvm);
        }
コード例 #11
0
        public ActionResult UserFriends(string id)
        {
            FriendListViewModel model = new FriendListViewModel();

            model.ProfileDisplayed = UserService.Service.GetUserById(id);
            model.FriendRequests   = UserService.Service.GetFriendRequestsForUser(id);
            model.Friends          = UserService.Service.GetFriendsForUser(id);
            model.UserDisplayed    = UserService.Service.GetUserById(User.Identity.GetUserId());
            return(View(model));
        }
コード例 #12
0
        public static void AddFriendRetMessage(SocketAsyncEventArgs e)
        {
            MClient        mClient = MClient.CreateInstance();
            AsyncUserToken token   = (AsyncUserToken)e.UserToken;
            //得到一个完整的包的数据,放入新list,第二个参数是数据长度,所以要减去8
            List <byte> onePackage = token.receiveBuffer.GetRange(8, token.packageLen - 8);

            //将复制出来的数据从receiveBuffer旧list中删除
            token.receiveBuffer.RemoveRange(0, token.packageLen);
            //list要先转换成数组,再转换成字符串
            String jsonStr = Encoding.Default.GetString(onePackage.ToArray());

            //得到用户名和密码
            Console.WriteLine("jsonStr = " + jsonStr);
            JArray jArray = JArray.Parse(jsonStr);

            if (jArray[0]["isOk"].ToString().Equals("True"))
            {
                AddFriendViewModel addFriendViewModel = AddFriendViewModel.CreateInstance();
                Console.WriteLine("显示模糊搜索到的用户信息");
                FriendListViewModel friendListViewModel = FriendListViewModel.CreateInstance();
                MClientViewModel    mClientViewModel    = MClientViewModel.CreateInstance();
                foreach (var obj in jArray)
                {
                    //如果这个用户已经是好友了,那么就继续看下一个
                    if (friendListViewModel.isFriendList(obj["Id"].ToString()))
                    {
                        continue;
                    }
                    //把自己的id也排除出去
                    if (mClientViewModel.UserName.Equals(obj["UserName"].ToString()))
                    {
                        continue;
                    }
                    FriendInfo friendInfo = new FriendInfo();
                    friendInfo.Id         = obj["Id"].ToString();
                    friendInfo.FriendName = obj["UserName"].ToString();
                    //把搜索到的好友数据添加进去
                    Application.Current.Dispatcher.Invoke(
                        new Action(() =>
                    {
                        //更新查询到的好友信息
                        addFriendViewModel.FrienInfoGroup.Add(friendInfo);
                    })
                        );
                }
            }
            else
            {
                MessageBox.Show("没有查询到接近的用户");
            }
        }
コード例 #13
0
        public async Task <ActionResult> Index()
        {
            var friends = (await _friendAppService.GetAll(new PagedResultRequestDto {
                MaxResultCount = int.MaxValue
            })).Items;                                                                                                         // Paging not implemented yet

            var model = new FriendListViewModel
            {
                Friends = friends,
            };

            return(View(model));
        }
コード例 #14
0
        public async Task <List <UserViewModel> > GetFriendsAsync(string username)
        {
            var client = _twitterConnection.GetTwitterClient();

            string url = $"1.1/friends/list.json?screen_name={username}&include_user_entities=false";

            HttpResponseMessage response = await client.GetAsync(url);

            response.EnsureSuccessStatusCode();
            var responseBody = await response.Content.ReadAsStringAsync();

            FriendListViewModel friends = JsonConvert.DeserializeObject <FriendListViewModel>(responseBody);

            return(friends.Users);
        }
コード例 #15
0
        public async Task Navigate_to_chat_command_null_selected_friend()
        {
            var _userRepository     = new Mock <IUserRepository>();
            var _chatRepository     = new Mock <IChatRepository>();
            var _navigationService  = new Mock <IMvxNavigationService>();
            var friendListViewModel = new FriendListViewModel(
                _userRepository.Object,
                _chatRepository.Object,
                _navigationService.Object
                );

            await friendListViewModel.NavigateToSelectedFriendChat();

            _userRepository.Verify(x => x.GetUser(It.IsAny <string>()), Times.Never());
            _chatRepository.Verify(x => x.GetChat(It.IsAny <User>(), It.IsAny <User>()), Times.Never());
            _navigationService.Verify(x => x.Navigate <ChatViewModel, ChatParameters>(It.IsAny <ChatParameters>(), null), Times.Never());
        }
コード例 #16
0
        public FriendListViewModel GetFriendsByMessageRegime(long accountId, MessageRegime?messageRegime, int pageNumber, int pageSize)
        {
            var account = _accountManager.GetAccountById(accountId);

            var friends = new GetFriendsByMessageRegimeQueryHandler(new DataBaseContext()).Handle(new GetFriendsByMessageRegimeQuery
            {
                AccountId       = accountId,
                GroupSettingsId = account.GroupSettingsId,
                MessageRegime   = messageRegime,
                Page            = new PageModel {
                    PageNumber = pageNumber, PageSize = pageSize
                }
            });

            var pageInfo = new PageInfoModel
            {
                PageNumber = pageNumber,
                PageSize   = pageSize,
                TotalItems = friends.CountAllFriends
            };

            var result = new FriendListViewModel
            {
                AccountId = accountId,
                Friends   = friends.Friends.Select(model => new FriendViewModel
                {
                    AddDateTime           = model.AddedDateTime,
                    Id                    = model.Id,
                    Deleted               = model.Deleted,
                    FacebookId            = model.FacebookId,
                    MessagesEnded         = model.DialogIsCompleted,
                    Name                  = model.FriendName,
                    Href                  = model.Href,
                    IsAddedToGroups       = model.IsAddedToGroups,
                    IsAddedToPages        = model.IsAddedToPages,
                    IsWinked              = model.IsWinked,
                    MessageRegime         = model.MessageRegime,
                    AddedToRemoveDateTime = model.AddedToRemoveDateTime,
                    CountWinksToFriends   = model.CountWinksToFriends
                }).ToList(),
                PageInfo = pageInfo
            };

            return(result);
        }
コード例 #17
0
        public async Task Add_user_to_friend_list_command_success()
        {
            var  _userRepository     = new Mock <IUserRepository>();
            User user                = new User();
            var  friendListViewModel = new FriendListViewModel(
                _userRepository.Object,
                null,
                null
                );

            await friendListViewModel.PrepareAsync(user);

            friendListViewModel.SelectedNewFriend = new UserViewModel(user);
            friendListViewModel.SelectedNewFriend.EmailAddress = "*****@*****.**";;

            await friendListViewModel.AddUserToFriendList();

            _userRepository.Verify(x => x.AddUserToFriendList(It.IsAny <User>(), It.IsAny <Friend>()));
        }
コード例 #18
0
        public async Task Search_for_user_command_success()
        {
            var _userRepository     = new Mock <IUserRepository>();
            var _chatRepository     = new Mock <IChatRepository>();
            var _navigationService  = new Mock <IMvxNavigationService>();
            var friendListViewModel = new FriendListViewModel(
                _userRepository.Object,
                _chatRepository.Object,
                _navigationService.Object
                );

            List <User> userList = new List <User>();

            userList.Add(new User());
            userList.Add(new User());
            userList.Add(new User());

            _userRepository.Setup(x => x.FindUsers(It.IsAny <string>())).Returns(Task.Run(() => userList));

            await friendListViewModel.SearchForUser();

            _userRepository.Verify(x => x.FindUsers(It.IsAny <string>()));
        }
コード例 #19
0
        public IViewComponentResult Invoke()
        {
            //List<IdentityUser> friends = new List<IdentityUser>();
            //List<UserRelationship> userRelationships = _db.UserRelationships.Where(u => u.UserId == "XXXXXX").ToList();

            //foreach (UserRelationship ur in userRelationships)
            //{
            //    IdentityUser friend = _identityDb.Users.FirstOrDefault(i => i.Id == ur.FriendId);
            //    friends.Add(friend);
            //}

            FriendListViewModel friendListViewModel = new FriendListViewModel
            {
                //Friends = friends
                Friends = new List <User>
                {
                    new User {
                        Id = 1, Name = "Gerda Larsen"
                    },
                    new User {
                        Id = 2, Name = "Karsten Olsen"
                    },
                    new User {
                        Id = 3, Name = "Kim Nielsen"
                    },
                    new User {
                        Id = 4, Name = "Morten Pedersen"
                    },
                    new User {
                        Id = 5, Name = "Hanne Holm"
                    }
                }
            };


            return(View(friendListViewModel));
        }
コード例 #20
0
        public FriendListViewModel CreateFriendListViewModel(FriendList friendList, Action refreshFriendListAction)
        {
            var friendListViewModel = new FriendListViewModel()
            {
                FriendListItems = new ObservableCollection <FriendListItem>()
            };

            var acceptFriendCommand = new AcceptFriendRequestCommand(friendListViewModel, refreshFriendListAction, _friendService, _logger);
            var removeFriendCommand = new RemoveFriendCommand(friendListViewModel, refreshFriendListAction, _friendService, _logger);

            foreach (var incomingRequest in friendList.IncomingRequests)
            {
                friendListViewModel.FriendListItems.Add(MapFriendRequestToViewModel(incomingRequest, acceptFriendCommand, removeFriendCommand));
            }

            foreach (var friend in friendList.Friends.Where(t => t.IsOnline))
            {
                friendListViewModel.FriendListItems.Add(MapFriendToViewModel(friend, removeFriendCommand));
            }

            foreach (var friend in friendList.Friends.Where(t => !t.IsOnline))
            {
                friendListViewModel.FriendListItems.Add(MapFriendToViewModel(friend, removeFriendCommand));
            }

            friendListViewModel.FriendListItems.Add(new FriendListSeparator());

            foreach (var outgoingRequest in friendList.OutgoingRequests)
            {
                friendListViewModel.FriendListItems.Add(MapOutoingFriendRequest(outgoingRequest, removeFriendCommand));
            }

            friendListViewModel.OnlineFriendsCount = friendListViewModel.FriendListItems.Count(t => t is OnlineFriend);
            friendListViewModel.FriendListCount    = friendList.Friends.Count;

            return(friendListViewModel);
        }
コード例 #21
0
        public async Task <IActionResult> FriendList()
        {
            var name = User.FindFirstValue(ClaimTypes.Name);

            if (name == null)
            {
                return(View());
            }
            var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == name);

            if (user == null)
            {
                return(View());
            }
            var userId = user.Id;

            var friendList = await _context.Friends.Where(a => a.UserId == userId).ToListAsync <FriendList>();

            var friendUserList     = new List <User>();
            var friendAnimeUpdates = new List <AnimeItem>();
            var friendMangaUpdates = new List <MangaItem>();
            var friendNovelUpdates = new List <NovelItem>();

            foreach (var row in friendList)
            {
                var friend = await _context.User.FirstOrDefaultAsync(a => a.Id == row.FriendId);

                if (friend != null)
                {
                    friendUserList.Add(friend);
                }

                var animeList = await _context.AnimeList.OrderByDescending(a => a.Id).FirstOrDefaultAsync(a => a.UserId == row.FriendId);

                if (animeList != null)
                {
                    var animeItem = await _context.AnimeItem.FirstOrDefaultAsync(a => a.Id == animeList.AnimeItemId);

                    if (animeItem != null)
                    {
                        friendAnimeUpdates.Add(animeItem);
                    }
                    else
                    {
                        var blankAnime = new AnimeItem();
                        friendAnimeUpdates.Add(blankAnime);
                    }
                }
                else
                {
                    var blankAnime = new AnimeItem();
                    friendAnimeUpdates.Add(blankAnime);
                }

                var mangaList = await _context.MangaList.OrderByDescending(a => a.Id).FirstOrDefaultAsync(a => a.UserId == row.FriendId);

                if (mangaList != null)
                {
                    var mangaItem = await _context.MangaItem.FirstOrDefaultAsync(a => a.Id == mangaList.MangaItemId);

                    if (mangaItem != null)
                    {
                        friendMangaUpdates.Add(mangaItem);
                    }
                    else
                    {
                        var blankManga = new MangaItem();
                        friendMangaUpdates.Add(blankManga);
                    }
                }
                else
                {
                    var blankManga = new MangaItem();
                    friendMangaUpdates.Add(blankManga);
                }

                var novelList = await _context.NovelList.OrderByDescending(a => a.Id).FirstOrDefaultAsync(a => a.UserId == row.FriendId);

                if (novelList != null)
                {
                    var novelItem = await _context.NovelItem.FirstOrDefaultAsync(a => a.Id == novelList.NovelItemId);

                    if (novelItem != null)
                    {
                        friendNovelUpdates.Add(novelItem);
                    }
                    else
                    {
                        var blankNovel = new NovelItem();
                        friendNovelUpdates.Add(blankNovel);
                    }
                }
                else
                {
                    var blankNovel = new NovelItem();
                    friendNovelUpdates.Add(blankNovel);
                }
            }
            var friendListViewModel = new FriendListViewModel
            {
                UserList            = friendUserList,
                LastAnimeUpdateList = friendAnimeUpdates,
                LastMangaUpdateList = friendMangaUpdates,
                LastNovelUpdateList = friendNovelUpdates
            };

            return(View(friendListViewModel));
        }
コード例 #22
0
        public MainPage()
        {
            InitializeComponent();

            _friendList = DataContext as FriendListViewModel;
        }
コード例 #23
0
 public FriendList()
 {
     InitializeComponent();
     BindingContext = viewModel = new FriendListViewModel();
     MessagingCenter.Subscribe <MainPage>(this, "LoadFriends", (c) => viewModel.GetContacts.Execute(null));
 }
コード例 #24
0
 public FriendListWindow()
 {
     InitializeComponent();
     this.DataContext = FriendListViewModel.CreateInstance();
 }