Exemple #1
0
        public ActionResult Index()
        {
            MembershipUser user = Membership.GetUser();

            if (user == null)
            {
                return(RedirectToAction("Index", "Account"));
            }

            Int32            currentUserId = (int?)user.ProviderUserKey ?? 0;
            FriendsViewModel model         = new FriendsViewModel();

            //выбираем друзей
            IEnumerable <UserViewModel> friends = new List <UserViewModel>();

            FillUsersList(dataManager.Friends.GetFriendIdsByUserId(currentUserId),
                          ref friends);
            model.Friends = friends;

            //выбираем входящие заявки
            IEnumerable <UserViewModel> incomingRequests = new List <UserViewModel>();

            FillUsersList(dataManager.FriendRequests.GetIncomingRequestUserIdsByUserId(currentUserId),
                          ref incomingRequests);
            model.IncomingRequests = incomingRequests;

            //выбираем исходящие заявки
            IEnumerable <UserViewModel> outgoingRequests = new List <UserViewModel>();

            FillUsersList(dataManager.FriendRequests.GetOutgoingRequestUserIdsByUserId(currentUserId),
                          ref outgoingRequests);
            model.OutgoingRequests = outgoingRequests;

            return(View(model));
        }
        public async Task <IActionResult> Friends(FriendsViewModel command)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
            }

            // add friend
            var friend = await _userManager.FindByNameAsync(command.NewFriend);

            if (friend == null)
            {
                var newModel = await _service.GetFriends(User);

                ModelState.AddModelError("NewFriend", "Error: user does not exist in database");
                return(View(newModel));
            }

            var newFriend = new Claim(Claims.Friend, command.NewFriend);
            await _userManager.RemoveClaimAsync(user, newFriend);

            await _userManager.AddClaimAsync(user, newFriend);

            // refresh claims
            await _signInManager.RefreshSignInAsync(user);

            var model = await _service.GetFriends(User);

            return(View(model));
        }
Exemple #3
0
        // public async Task<IActionResult> Friends_Beta(int? id)
        // {
        //     // Get user info and pre-setup
        //     User_Infor usr = await _userService.Get_User_Infor(Request, Response);
        //     if (usr == null)
        //     {
        //         return RedirectToAction("Index", "Login");
        //     };

        //     FriendsViewModel vm = new FriendsViewModel
        //     {
        //         UserID = usr.id,
        //         UserToken = usr.token,
        //         RoomID = id != null ? (int)id : 0
        //     };

        //     // Fetch all chat rooms
        //     vm.RoomList = await _chatService.FetchAllChatRoom(Request, Response);

        //     // Fetch all messages
        //     if (vm.RoomID > 0)
        //     {
        //         vm.Messages = await _chatService.FetchMessage(Request, Response, vm.RoomID, 20);
        //     }
        //     return View(vm);
        // }
        // public async Task<IActionResult> Chat_Beta()
        // {
        //     User_Infor usr = await _userService.Get_User_Infor(Request, Response);
        //     return View(usr);
        // }

        public async Task <IActionResult> Friends(int?id)
        {
            // Get user info and pre-setup
            User_Infor usr = await _userService.Get_User_Infor(Request, Response);

            if (usr == null)
            {
                return(RedirectToAction("Index", "Login"));
            }
            ;

            FriendsViewModel vm = new FriendsViewModel
            {
                UserID    = usr.id,
                UserToken = usr.token,
                RoomID    = id != null ? (int)id : 0
            };

            // Fetch all chat rooms
            List <ChatBox> list = await _chatService.GetListChatBox(Request, Response, usr.id);

            ViewBag.ListChatBox = list;

            vm.RoomList = await _chatService.FetchAllChatRoom(Request, Response);

            // Fetch all messages
            if (vm.RoomID > 0)
            {
                vm.Messages = await _chatService.FetchMessage(Request, Response, vm.RoomID, 20);
            }
            return(View(vm));
        }
        public FriendsView()
        {
            InitializeComponent();

            _viewModel       = new FriendsViewModel();
            this.DataContext = _viewModel;
        }
Exemple #5
0
 public async void SetSelectedUser(string fromId)
 {
     try
     {
         if (String.IsNullOrWhiteSpace(fromId) == false)
         {
             Friend senderFriend = FriendsViewModel.Where(friend => friend.Id == fromId).FirstOrDefault();
             if (senderFriend != null)
             {
                 await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                 {
                     if (senderFriend != _selectedFriend)
                     {
                         SelectedFriend = senderFriend;
                     }
                     else
                     {
                     }
                 });
             }
         }
     }
     catch (Exception ex)
     {
         ex.ToString();
     }
 }
Exemple #6
0
        public ActionResult Index()
        {
            var index = this.identity.Identity.Name.IndexOf("@");

            if (index < 0)
            {
                Guard.WhenArgument(index, "Name cannot be null").IsLessThan(0)
                .Throw();
            }

            var friendListName = this.identity.Identity.Name.Substring(0, index);

            var friends = this.friendList.GetAllFriends(friendListName);

            var friendList  = new FriendsViewModel();
            var friendsView = new List <FriendViewModel>();

            if (friends.Count != 0)
            {
                friendsView = friends.Select(x => new FriendViewModel()
                {
                    Name     = x.Name,
                    Birthday = x.Birthday,
                    Gender   = x.Gender
                })
                              .ToList();
            }

            return(View(friendsView));
        }
Exemple #7
0
        public IActionResult Friends()
        {
            string username = HttpContext.Session.GetString("Account");

            if (username != "" && username != null)
            {
                try
                {
                    User             u  = repo.GetUser(username);
                    FriendsViewModel vm = new FriendsViewModel(u);
                    vm.Friends = repo.GetAcceptedFriends(u.ID);
                    vm.Pending = repo.GetPendingUserFriends(u.ID);
                    vm.Waiting = repo.GetWaitingUserFriends(u.ID);
                    if (u != null)
                    {
                        return(View(vm));
                    }
                }
                catch (Exception)
                {
                    return(View("Error"));
                }
            }
            return(RedirectToAction("LogIn", "User"));
        }
Exemple #8
0
        public async Task <FriendsViewModel> GetFriends(ClaimsPrincipal User)
        {
            var user = await userService.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{userService.GetUserId(User)}'.");
            }
            var model = new FriendsViewModel {
            };

            model.Friends          = User.Claims.Where(x => x.Type == Claims.Friend);
            model.FriendsConfirmed = new bool[model.Friends.Count()];
            var claim = new Claim(Claims.Friend, user.UserName);
            var users = await userService.GetUsersForClaimAsync(claim);

            if (users != null)
            {
                for (int i = 0; i < model.Friends.Count(); i++)
                {
                    bool status;
                    if (users.Where(x => x.UserName == model.Friends.ElementAt(i).Value).Count() > 0)
                    {
                        status = true;
                    }
                    else
                    {
                        status = false;
                    }
                    model.FriendsConfirmed[i] = status;
                }
            }
            return(model);
        }
Exemple #9
0
        public ActionResult RequestFriend()
        {
            FriendsViewModel       Friends         = new FriendsViewModel();
            List <Customer>        AlreadyFriends  = new List <Customer>();
            List <Customer>        AllCustomers    = db.Customers.ToList();
            List <Friend>          FriendPairs     = db.Friends.ToList();
            List <PendingRequests> PendingRequests = db.PendingRequests.ToList();
            string currentUserId = User.Identity.GetUserId();

            Friends.LoggedInCustomer = (from x in AllCustomers where x.UserId == currentUserId select x).FirstOrDefault();
            Friends.Requests         = (from x in db.PendingRequests.Include("RequesterId").Include("RequesteeId") where x.CustomerIdTwo == Friends.LoggedInCustomer.CustomerId || x.CustomerIdOne == Friends.LoggedInCustomer.CustomerId select x).ToList();
            AllCustomers.Remove(Friends.LoggedInCustomer);
            List <int?> ConfirmedFriends    = (from f in FriendPairs where f.CustomerIdOne == Friends.LoggedInCustomer.CustomerId select f.CustomerIdTwo).ToList();
            List <int?> ConfirmedFriendsTwo = (from f in FriendPairs where f.CustomerIdTwo == Friends.LoggedInCustomer.CustomerId select f.CustomerIdOne).ToList();
            List <int?> PendingFriends      = (from f in PendingRequests where f.CustomerIdOne == Friends.LoggedInCustomer.CustomerId select f.CustomerIdTwo).ToList();

            ConfirmedFriends.AddRange(ConfirmedFriendsTwo);
            for (int i = 0; i < AllCustomers.Count; i++)
            {
                for (int j = 0; j < ConfirmedFriends.Count; j++)
                {
                    if (AllCustomers[i].CustomerId == ConfirmedFriends[j])
                    {
                        AlreadyFriends.Add(AllCustomers[i]);
                    }
                }
            }
            for (int i = 0; i < AllCustomers.Count; i++)
            {
                for (int j = 0; j < PendingFriends.Count; j++)
                {
                    if (AllCustomers[i].CustomerId == PendingFriends[j])
                    {
                        AlreadyFriends.Add(AllCustomers[i]);
                    }
                }
            }

            for (int i = 0; i < AllCustomers.Count; i++)
            {
                bool matchFound = false;
                for (int j = 0; j < AlreadyFriends.Count; j++)
                {
                    if (AlreadyFriends[j] == AllCustomers[i])
                    {
                        matchFound = true;
                    }
                }
                if (!matchFound)
                {
                    SelectListItem item = new SelectListItem
                    {
                        Text  = AllCustomers[i].FullName,
                        Value = AllCustomers[i].CustomerId.ToString()
                    };
                    Friends.AvailableToRequest.Add(item);
                }
            }
            return(View("Friends", Friends));
        }
        public ActionResult Friends(FriendsViewModel model)
        {
            User user;

            user = userService.GetUser(model.id);
            if (user == null)
            {
                user = userService.GetUserByEmail(User.Identity.Name);
            }
            var friends = userService.GetFriends(user.UserId, model.Users.Settings);
            var mapped  = Mapper.Map <IEnumerable <ProfileViewModel> >(friends.Entities);

            var viewModel = new FriendsViewModel()
            {
                Users = new PagedCollection <ProfileViewModel>()
                {
                    Entities = mapped,
                    Settings = friends.Settings,
                },
                IsFriends = true,
                id        = model.id,
            };

            return(View(viewModel));
        }
Exemple #11
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            FriendsViewModel viewModel = (this.DataContext as FriendsViewModel);

            viewModel.RefreshCommand.Execute(e);
            viewModel.RegisterPushCommand.Execute(e);
        }
Exemple #12
0
        public FriendsWindow(User user)
        {
            InitializeComponent();
            var vm = new FriendsViewModel(user);

            this.DataContext     = vm;
            vm.CloseWindowEvent += Vm_CloseWindowEvent;
        }
 private void Init()
 {
     FriendsFilter       = new FriendsViewModel();
     GroupsFilter        = new GroupsViewModel();
     AudioPlayerVM       = new AudioPlayerViewModel();
     ShowMyAudiosCommand = new DelegateCommand(() => AudioPlayerVM.ShowMyAudios());
     SelectedFilter      = AudioFilters.My;
     AudioPlayerVM.OnLoadingStateChanged += audioPlayerVM_OnLoadingStateChanged;
 }
        void btnAdd_Click(object sender, EventArgs e)
        {
            FriendsViewModel context = (this.DataContext as FriendsViewModel);

            if (context.AddNewFriend.CanExecute(null))
            {
                context.AddNewFriend.Execute(null);
            }
        }
Exemple #15
0
        public async Task <IActionResult> Recieved()
        {
            var user = (await _userManager.GetUserAsync(HttpContext.User)).Id;
            var applicationDbContext = _context.Friendships.Include(f => f.Receiver)
                                       .Include(f => f.Sender).Where(f => f.ReceiverId == user).Where(f => f.Approved == false);
            List <FriendsViewModel> friendList = FriendsViewModel.Recieved(applicationDbContext.ToList());

            return(View(friendList));
        }
Exemple #16
0
        // GET: Friends
        public ActionResult Index(string search)
        {
            FriendsViewModel vm = new FriendsViewModel()
            {
                Friends = db.GetUsers(search),
                Search  = search
            };

            return(View(vm));
        }
 public async Task Initialize()
 {
     try
     {
         await FriendsViewModel.Initialize();
     }
     catch (Exception exception)
     {
         //Log it, fix it or show it
     }
 }
        public async Task <IActionResult> Following()
        {
            User user = await _userService.GetAsync(User);

            var model = new FriendsViewModel
            {
                Users = _userService.GetFollowing(user)
            };

            return(View(model));
        }
Exemple #19
0
        public ActionResult FriendsList()
        {
            var userId = User.Identity.GetUserId();
            FriendsViewModel allFriends = new FriendsViewModel();

            allFriends.Friends           = _userService.GetFriendsForCard(userId);
            allFriends.Requests          = _userService.GetRequestsForCard(userId);
            allFriends.UnasweredRequests = _userService.GetUnansweredRequestsForCard(userId);

            return(View(allFriends));
        }
Exemple #20
0
        public MainView()
        {
            InitializeComponent();

            //Poor mans dependency injection
            m_friendsViewModel = new FriendsViewModel(new FriendService());
            DataContext        = new MainViewModel(m_friendsViewModel);


            Loaded += OnLoaded;
        }
        public async Task <IActionResult> ConfirmRequest(string id)
        {
            var friend = await _db.ApplicationUsers.FindAsync(id);

            var friends = new FriendsViewModel
            {
                applicationUser = await _db.ApplicationUsers.FindAsync(id),
                friends         = _db.Friends.ToList()
            };

            return(View(friends));
        }
Exemple #22
0
        public ActionResult Index()
        {
            FriendsViewModel model = new FriendsViewModel();

            //Выбираем всех пользователей
            IEnumerable <User> allUsers = dataManager.Users.GetUsers();

            //Выбираем все заявки в друзья (входящие и исходящие) для пользователя, который залогинен на сайте
            IEnumerable <FriendRequest> allRequests = dataManager.FriendRequests.GetFriendRequests().Where(
                x =>
                x.UserId == GetCurrentUserId() ||
                x.PossibleFiendId == GetCurrentUserId());

            //Из всех заявок выбираем входящие
            IEnumerable <FriendRequest> incomingRequests = allRequests.Where(x => x.UserId == GetCurrentUserId());

            //Из всех заявок выбираем исходящие
            IEnumerable <FriendRequest> outgoingRequests = allRequests.Where(x => x.PossibleFiendId == GetCurrentUserId());


            //По Id из входящих заявок выбираем соответствующих User'ов и передаём их в модель
            model.IncomingRequests =
                (
                    from aU in allUsers
                    from iR in incomingRequests
                    where aU.Id == iR.PossibleFiendId
                    select aU
                );
            //То же самое для исходящих заявок
            model.OutgoingRequests =
                (
                    from aU in allUsers
                    from oR in outgoingRequests
                    where aU.Id == oR.UserId
                    select aU
                );

            //Выбираем все записи о друзьях для пользователя, который залогинен на сайте
            IEnumerable <Friend> allFriends = dataManager.Friends.GetFriends().Where(x => x.FriendId == GetCurrentUserId());

            //По Id из записей о друзьях выбираем User'ов и передаём их в модель
            model.Friends =
                (
                    from aU in allUsers
                    from aF in allFriends
                    where aU.Id == aF.UserId
                    select aU
                );


            return(View(model));
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            viewModel = App.FriendsViewModel;
            SetUpCollectionView();
            SetUpPullToRefresh();

            var layout = (UICollectionViewFlowLayout)CollectionView.CollectionViewLayout;

            layout.MinimumLineSpacing      = 0;
            layout.MinimumInteritemSpacing = 0;
            layout.SectionInset            = new UIEdgeInsets(10, 0, 0, 0);

            CollectionView.RegisterClassForCell(typeof(UICollectionViewFriendCell), UICollectionViewFriendCell.CellId);

            gestureAttacher = new LongPressGestureAttacher(CollectionView, (gesture) =>
            {
                var p         = gesture.LocationInView(CollectionView);
                var indexPath = CollectionView.IndexPathForItemAtPoint(p);
                if (indexPath == null)
                {
                    return;
                }
                var friend = viewModel.Friends[indexPath.Row];
                if (friend == null)
                {
                    return;
                }
                viewModel.ExecuteFlagFriendCommand(friend.FriendId, friend.Name);
            });

            var addFriend = new UIBarButtonItem(UIBarButtonSystemItem.Add, delegate {
                App.MessageDialog.SelectOption("Add Friend", new[] { "Enter Email", "Pick Contact" }, (which) =>
                {
                    if (which == 0)
                    {
                        App.MessageDialog.AskForString("Enter friend's email:", "Add Friend", (email) =>
                        {
                            viewModel.ExecuteSearchForFriendCommand(email);
                        });
                    }
                    else if (which == 1)
                    {
                        PresentViewController(AddressBookManager.PeoplePicker, true, null);
                    }
                }
                                               );
            });

            NavigationItem.RightBarButtonItem = addFriend;
        }
        public async Task Initialize()
        {
            try
            {
                await FriendsViewModel.Initialize();

                HairCountingViewModel.EvaluateFriendsWithBlackHair(FriendsViewModel.Friends.ToList());
            }
            catch (Exception exception)
            {
                //Log it, fix it or show it
            }
        }
Exemple #25
0
 public ActionResult Delete(int id, IFormCollection collection)
 {
     try
     {
         // TODO: Add delete logic here
         FriendsViewModel.Delete(id);
         return(RedirectToAction(nameof(Index)));
     }
     catch
     {
         return(View());
     }
 }
Exemple #26
0
 public ActionResult Edit(int id, string name, string lastName, string email, DateTime birthday)
 {
     try
     {
         // TODO: Add update logic here
         FriendsViewModel.Edit(id, name, lastName, email, birthday);
         return(RedirectToAction(nameof(Index)));
     }
     catch
     {
         return(View());
     }
 }
Exemple #27
0
        public async Task Initialize()
        {
            try
            {
                await FriendsViewModel.Initialize(EvaluateHairCounter);

                EvaluateHairCounter();
            }
            catch (Exception exception)
            {
                //Log it, fix it or show it
            }
        }
Exemple #28
0
        public ActionResult RequestFriend(FriendsViewModel model)
        {
            int             customerIdTwo = Int32.Parse(model.RequestedCustomerId);
            string          userId        = User.Identity.GetUserId();
            int             customerIdOne = (from x in db.Customers where x.UserId == userId select x.CustomerId).FirstOrDefault();
            PendingRequests request       = new PendingRequests();

            request.CustomerIdOne = customerIdOne;
            request.CustomerIdTwo = customerIdTwo;
            db.PendingRequests.Add(request);
            db.SaveChanges();

            return(RedirectToAction("RequestFriend", "Friends"));
        }
        // GET: Friends
        //public async Task<IActionResult> Index()
        public async Task <IActionResult> Index(FriendsViewModel viewModel)
        {
            // Get current user
            var user = await GetCurrentUserAsync();

            //var friends = (await _context.Friend
            //    .Include(f => f.FriendA)
            //        .ThenInclude(fA => fA.TripList)
            //            .ThenInclude(t => t.Cities)
            //    .Include(f => f.FriendB)
            //        .ThenInclude(fB => fB.TripList)
            //            .ThenInclude(t => t.Cities)
            //    .Where(f => (f.FriendAId == user.Id || f.FriendBId == user.Id) && f.Status == "accepted")
            //    .ToListAsync())
            //    .Select(f => f.FriendA.Id == user.Id ? f.FriendB : f.FriendA);

            //return View(friends);

            var friends = (await _context.Friend
                           .Include(f => f.FriendA)
                           .ThenInclude(fA => fA.TripList) //.OrderByDescending(t => t.StartDate)
                           .ThenInclude(t => t.Cities)
                           .Include(f => f.FriendB)
                           .ThenInclude(fB => fB.TripList)
                           .ThenInclude(t => t.Cities)
                           .Where(f => (f.FriendAId == user.Id || f.FriendBId == user.Id) && f.Status == "accepted")
                           .ToListAsync())
                          .Select(f => f.FriendA.Id == user.Id ? f.FriendB : f.FriendA);

            var received = (await _context.Friend
                            .Include(f => f.FriendA)
                            .Include(f => f.FriendB)
                            .Where(f => f.FriendBId == user.Id && f.Status == "pending")
                            .ToListAsync());

            var sent = (await _context.Friend
                        .Include(f => f.FriendA)
                        .Include(f => f.FriendB)
                        .Where(f => f.FriendAId == user.Id && f.Status == "pending")
                        .ToListAsync());

            viewModel = new FriendsViewModel()
            {
                CurrentFriends   = friends.ToList(),
                SentRequests     = sent,
                ReceivedRequests = received
            };

            return(View(viewModel));
        }
Exemple #30
0
        public async Task Initialize()
        {
            try
            {
                await FriendsViewModel.Initialize();

                EvaluateHairColorCount();
                SubscribeToEvents();
            }
            catch (Exception exception)
            {
                //Log it, fix it or show it
            }
        }
		public override void ViewDidLoad ()
		{
			base.ViewDidLoad ();

			viewModel = App.FriendsViewModel;
			SetUpCollectionView ();
			SetUpPullToRefresh ();

			var layout = (UICollectionViewFlowLayout)CollectionView.CollectionViewLayout;
			layout.MinimumLineSpacing = 0;
			layout.MinimumInteritemSpacing = 0;
			layout.SectionInset = new UIEdgeInsets (10, 0, 0, 0);

			CollectionView.RegisterClassForCell (typeof(UICollectionViewFriendCell), UICollectionViewFriendCell.CellId);

			gestureAttacher = new LongPressGestureAttacher (CollectionView, (gesture)=>
				{
					var p = gesture.LocationInView(CollectionView);
					var indexPath = CollectionView.IndexPathForItemAtPoint(p);
					if(indexPath == null)
						return;
					var friend = viewModel.Friends[indexPath.Row];
					if(friend == null)
						return;
					viewModel.ExecuteFlagFriendCommand(friend.FriendId, friend.Name);
				});

			var addFriend = new UIBarButtonItem (UIBarButtonSystemItem.Add, delegate {
				App.MessageDialog.SelectOption("Add Friend", new[]{"Enter Email", "Pick Contact"}, (which) =>
					{
						if(which == 0)
						{
							App.MessageDialog.AskForString("Enter friend's email:", "Add Friend", (email)=>
								{
									viewModel.ExecuteSearchForFriendCommand(email);
								});
						}
						else if(which == 1)
						{
							PresentViewController (AddressBookManager.PeoplePicker, true, null);
						}
					}
				);
			});
			NavigationItem.RightBarButtonItem = addFriend;
		}