Ejemplo n.º 1
0
        // GET: Follows/Create
        public ActionResult Create()
        {
            //ビューに送る為のFollowsCreateViewModelのリストを作成
            List <FollowsCreateViewModel> createViewModels = new List <FollowsCreateViewModel>();
            //ユーザ一覧を、IDが若い順に登録
            List <ApplicationUser> users = db.Users.OrderBy(u => u.Id).ToList();
            //ログインユーザのIDを保持
            string MyId = User.Identity.GetUserId();

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

            follows.Add(MyId);

            //ユーザのリストをFollowsCreateViewModelのリストに変換
            foreach (ApplicationUser applicationUser in users)
            {
                //FollowCreateViewModelをApplicationUsersから必要なプロパティだけ抜き出して作成
                FollowsCreateViewModel createViewModel = new FollowsCreateViewModel
                {
                    FollowId     = applicationUser.Id,
                    EmployeeName = applicationUser.EmployeeName,
                };
                //followsにapplicationUserのIDがあった場合
                if (follows.Contains(applicationUser.Id))
                {
                    //フォロー済みなのでフォローフラグを立てておく
                    createViewModel.FollowFlg = FollowStatus.Followed;
                }
                //IDがなかった場合
                //【フォローしていないユーザのみを一覧で出したい為】
                else
                {
                    //フォローフラグを非に設定し、Modelを追加する
                    createViewModel.FollowFlg = FollowStatus.UnFollow;
                    //作成したEmployeesIndexViewModelをリストに追加
                    createViewModels.Add(createViewModel);
                }
            }
            //作成したリストをIndexビューに送る
            return(View(createViewModels));
        }
Ejemplo n.º 2
0
        //public ActionResult Create([Bind(Include = "ReportDate")] ReportsCreateViewModel createViewModel)
        public ActionResult Create([Bind(Include = "EmployeeName,FollowId")] FollowsCreateViewModel createViewModel)
        {
            if (ModelState.IsValid)
            {
                //フォローボタンを押下した時ログインしていたユーザのIDと
                //フォローするユーザIDをfollowに格納
                Follow follow = new Follow()
                {
                    EmployeeId = User.Identity.GetUserId(),
                    FollowId   = createViewModel.FollowId
                };
                //Followsデータベースに追加
                db.Follows.Add(follow);
                //更新情報を保存
                db.SaveChanges();
                TempData["flush"] = createViewModel.EmployeeName + "さんをフォローしました。";
                return(RedirectToAction("Index"));
            }

            return(View(createViewModel));
        }