public ActionResult Index(int?page) { string userId = User.Identity.GetUserId(); bool usrIsAdmiNOrPM = helper.IsUserInAnyRole(userId, "Admin", "PM"); foreach (var item in db.Project.ToList()) { ApplicationUser usr = db.Users.Find(item.UserId); projectslist.Add(new Project { Id = item.Id, Title = item.Title, Body = item.Body, //Owner = item.Owner, Created = item.Created, Updated = item.Updated, //Priority =item.Priority, //Status = item.Status, UserId = item.UserId, }); } if (usrIsAdmiNOrPM) // if logged in user is admin { return(View(projectslist.OrderBy(x => x.Id).ToList())); //all projects } else { // ApplicationUser usr = db.Users.Find(userId); //var dbproject = db.Project.Include(p => p.ApplicationUsers); //var list = projectslist.Where(x => x.UserId == usr.Id) // .OrderBy(x => x.Id).ToList(); var usr = db.Users.Find(User.Identity.GetUserId()); var rolesHelper = new UserRolesHelper(db); if (rolesHelper.IsUserInRole(usr.Id, "Developer")) { //projectslist.Clear(); var dbproject = db.Project.Include(p => p.ApplicationUsers).Where(x => x.UserId == usr.Id).ToList(); foreach (var item in dbproject) { projectslist.Add(new Project { Id = item.Id, Title = item.Title, Body = item.Body, //Owner = item.Owner, Created = item.Created, Updated = item.Updated, //Priority =item.Priority, //Status = item.Status, UserId = item.UserId }); } //string userselected = null; //projectslist.Clear(); //foreach (var item in dbproject) //{ // var sss = item.ApplicationUsers.Where(x => x.Id == usr.Id); // foreach (var itemuser in sss) // { // userselected = itemuser.Id; // } // if (userselected != null) // { // projectslist.Add(new Project // { // Id = item.Id, // Title = item.Title, // Body = item.Body, // //Owner = item.Owner, // Created = item.Created, // Updated = item.Updated, // //Priority =item.Priority, // //Status = item.Status, // UserId = userselected // }); // } //} return(View(projectslist));//user's projects. } else { return(View()); } } }
public ActionResult Index() { // var ticket = db.Ticket.Include(t => t.Project); //join user in db.Users // on userRoles.UserId equals user.Id // select user; var allusers = db.Users.ToList(); var ticket = from e in db.Ticket join a in db.TicketStatuses on e.TicketStatusId equals a.Id join c in db.TicketTypes on e.TicketTypeId equals c.Id select new TicketViewModel() { Id = e.Id, Title = e.Title, ProjectName = e.Project.Title, Description = e.Description, Created = e.Created, Updated = e.Updated, TicketPriority = e.TicketPriorities.Name, TicketStatus = a.Name, TicketType = c.Name, CreatedBy = e.CreatedBy, AssigneeId = e.AssigneeId }; string UserId = User.Identity.GetUserId(); Guid user = new Guid(UserId); ApplicationUser ap = db.Users.Find(UserId); bool usrIsAdmiNOrPM = urhelper.IsUserInAnyRole(UserId, "Admin", "PM"); bool usrIsDev = urhelper.IsUserInRole(UserId, "Developer"); if (usrIsAdmiNOrPM) { //tickets of projects whose project id exits in tickets tbl //var usrprojtik = (from tik in ticket // join proj in ap.Projects on new { tik.Project.Id } equals new { proj.Id } // select tik).ToList(); //return View(usrprojtik); return(View(ticket.OrderBy(x => x.Id).ToList())); } else { if (usrIsDev) { var devassgnedtik = (from tik in ticket where tik.AssigneeId == ap.Email select tik).OrderBy(x => x.Id).ToList(); return(View(devassgnedtik)); } else { var submittertik = (from tik in ticket where tik.CreatedBy == ap.Email select tik).OrderBy(x => x.Id).ToList(); return(View(submittertik)); } } }