如何为用户选择分配的作业?

时间:2017-03-28 11:10:52

标签: c# asp.net-mvc grid.mvc

我在MVC中有任务系统。我为很多用户提供同样的使命或不同的使命。我会显示标题,描述,开始日期,完成日期以及谁在执行任务。这些是在grid.mvc中显示视图页面。但是当我登录时,我可以看到每一个任务。我不希望每一项任务我只想看到我的使命。当然其他用户也看到了他们的使命。

在我的控制器中,我分了名字。

这是我的代码,

控制器:

TicketDbContext db = new TicketDbContext();

    public ActionResult Index()
    {       


        var result = db.Missions.OrderByDescending(x=>x.GivenDate).ToList();

        string ad = string.Empty;
        foreach (var item in result)
        {
            if (!string.IsNullOrEmpty(item.GivenUsers))
            {
                string[] Ids = item.GivenUsers.Split(',');

                for (int i = 0; i < Ids.Length; i++)
                {
                    int id = Convert.ToInt32(Ids[i]);
                    item.GivenUsers += db.Users.FirstOrDefault(x => x.Id == id).Name+ " " + db.Users.FirstOrDefault(x => x.Id == id).Surname+ ",";
                } 
            }               

        }

        return View(result);

    }

我的网格的ScreenShot

enter image description here

1 个答案:

答案 0 :(得分:1)

首先,我建议您将分配的用户ID保留在单独的表中

这可以处理你的情况..

var currentUserId = "";// set current userId from Where are you holding (session,identity etc..)
var result = db.Missions.OrderByDescending(x=>x.GivenDate).ToList();
result = result.Where(x=> x.GivenUsers.Split(',').Contains(currentUserId));
    foreach (var item in result)
    {
        if (!string.IsNullOrEmpty(item.GivenUsers))
        {
            int[] Ids = Array.ConvertAll(item.GivenUsers.Split(','),
                                      delegate(string s) { return int.Parse(s); }) ;
            string[] names = db.Users.Where(u => Ids.Contains(u.Id)).Select(u => u.Name+ " " + u.Surname).ToArray();
            item.GivenUsers = string.Join(",",names);

        }               

    }