コード例 #1
0
        public ActionResult Delete([Bind(Include = "EmployeeId,EmployeeName,FollowId")] FollowsDeleteViewModel deleteViewModel)
        {
            //フォロー解除するユーザ情報をModelに格納
            deleteViewModel = new FollowsDeleteViewModel
            {
                FollowId     = deleteViewModel.FollowId,
                EmployeeId   = deleteViewModel.EmployeeId,
                EmployeeName = deleteViewModel.EmployeeName
            };

            //ログインユーザがフォローしてる従業員IDのリスト
            var follows = db.Follows
                          .Where(r => r.EmployeeId == deleteViewModel.EmployeeId)
                          .ToList();

            //followにfollowsリストのIDと解除要求したIDが一致するデータを格納
            Follow follow = follows.Find(f => f.FollowId == deleteViewModel.FollowId);

            //データベースからfollowの情報を削除
            db.Follows.Remove(follow);
            //更新データを保存
            db.SaveChanges();
            TempData["flush"] = deleteViewModel.EmployeeName + "さんのフォローを解除しました。";
            return(RedirectToAction("Index"));
        }
コード例 #2
0
        // GET: Follows/Delete/5
        public ActionResult Delete()
        {
            //ビューに送る為のFollowsCreateViewModelのリストを作成
            List <FollowsDeleteViewModel> deleteViewModels = new List <FollowsDeleteViewModel>();
            //ユーザ一覧を、IDが若い順に登録
            List <ApplicationUser> users = db.Users.OrderBy(u => u.Id).ToList();
            string MyId = User.Identity.GetUserId();
            //ログインユーザがフォローしてる従業員IDのリスト
            var follows = db.Follows
                          .Where(f => f.EmployeeId == MyId)
                          .Select(f => f.FollowId)
                          .ToList();

            follows.Add(MyId);

            //ユーザのリストをFollowsCreateViewModelのリストに変換
            //ApplicationUserはユーザ作成に必要なモデル
            foreach (ApplicationUser applicationUser in users)
            {
                //FollowCreateViewModelをApplicationUsersから必要なプロパティだけ抜き出して作成
                FollowsDeleteViewModel deleteViewModel = new FollowsDeleteViewModel
                {
                    FollowId     = applicationUser.Id,
                    EmployeeName = applicationUser.EmployeeName,
                    EmployeeId   = MyId
                };
                if (deleteViewModel.FollowId == deleteViewModel.EmployeeId)
                {
                    deleteViewModel.FollowFlg = FollowStatus.MyUser;
                }
                //フォローしていたユーザと一致した
                else if (follows.Contains(applicationUser.Id))
                {
                    deleteViewModel.FollowFlg = FollowStatus.Followed;
                    //Modelに追加する
                    deleteViewModels.Add(deleteViewModel);
                }
                else
                {
                    deleteViewModel.FollowFlg = FollowStatus.UnFollow;
                }
            }
            //作成したリストをIndexビューに送る
            return(View(deleteViewModels));
        }