Esempio n. 1
0
        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());
                }
            }
        }
Esempio n. 2
0
        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));
                }
            }
        }