public IActionResult ChangeMembershipRank(string projectid, string accountid, string rankid)
        {
            ViewBag.IsLogin = !string.IsNullOrEmpty(cache.GetString("user"));
            if (ViewBag.IsLogin)
            {
                ViewBag.User = JsonConvert.DeserializeObject <AccountModel>(cache.GetString("user"));
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }

            var account = accountSvc.GetAllAccount().First(it => it._id == accountid);
            var ranks   = rankSvc.GetAllRank().Where(it => it._id != serviceConfig.MasterRankId).ToList();
            var member  = membershipSvc.GetAllProjectMember(projectid).FirstOrDefault(it => it.Account_id == account._id);

            var model = new EditRankModel
            {
                ProjectId               = projectid,
                AccountId               = accountid,
                Email                   = account.Email,
                Name                    = account.AccountName,
                RankId                  = rankid,
                Ranks                   = ranks,
                CanSeeAllWork           = member.CanSeeAllWork,
                CanEditAllWork          = member.CanEditAllWork,
                CanAssign               = member.CanAssign,
                BeAssigned              = member.BeAssigned,
                CanCreateFeature        = member.CanCreateFeature,
                CanCreateStoryUnderSelf = member.CanCreateStoryUnderSelf,
                CanCreateTaskUnderSelf  = member.CanCreateTaskUnderSelf
            };

            return(View(model));
        }
        public IActionResult ChangeMembershipRank(string projectid, string accountid, string rankid, EditRankModel body)
        {
            ViewBag.IsLogin = !string.IsNullOrEmpty(cache.GetString("user"));
            if (ViewBag.IsLogin)
            {
                ViewBag.User = JsonConvert.DeserializeObject <AccountModel>(cache.GetString("user"));
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }

            var memberships = membershipSvc.GetAllProjectMember(projectid);
            var membership  = memberships.FirstOrDefault(it => it.Account_id == accountid);

            membership.ProjectRank_id          = rankid;
            membership.CanSeeAllWork           = body.CanSeeAllWork;
            membership.CanEditAllWork          = body.CanEditAllWork;
            membership.CanAssign               = body.CanAssign;
            membership.BeAssigned              = body.BeAssigned;
            membership.CanCreateFeature        = body.CanCreateFeature;
            membership.CanCreateStoryUnderSelf = body.CanCreateStoryUnderSelf;
            membership.CanCreateTaskUnderSelf  = body.CanCreateTaskUnderSelf;

            membershipSvc.EditMember(membership);
            return(RedirectToAction(nameof(AllMemberships), new { projectid = projectid }));
        }