public ActionResult AssignUser(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ticket ticket = db.Tickets.Find(id);

            if (ticket == null)
            {
                return(HttpNotFound());
            }
            AssignTicketUserViewModel AssignModel = new AssignTicketUserViewModel();

            AssignModel.TicketId    = ticket.Id;
            AssignModel.TicketTitle = ticket.Title;
            ProjectUsersHelper helper     = new ProjectUsersHelper(db);
            UserRolesHelper    userHelper = new UserRolesHelper(db);
            var projectUsers      = helper.ListUsers(ticket.ProjectId);
            var projectDevelopers = new List <ApplicationUser>();

            foreach (var user in projectUsers)
            {
                if (userHelper.IsUserInRole(user.Id, "Developer"))
                {
                    projectDevelopers.Add(user);
                }
            }
            if (ticket.Assignee != null)
            {
                AssignModel.TicketAssignedTo = ticket.Assignee.FullName;
            }
            AssignModel.UsersList = new SelectList(projectDevelopers, "Id", "FullName");
            return(View(AssignModel));
        }
        public async Task <ActionResult> AcceptInvitation(AcceptInvitationViewModel invitationvm)
        {
            if (ModelState.IsValid)
            {
                UserRolesHelper helper = new UserRolesHelper();
                var             user   = new ApplicationUser
                {
                    FirstName   = invitationvm.FirstName,
                    LastName    = invitationvm.LastName,
                    UserName    = invitationvm.Email,
                    Email       = invitationvm.Email,
                    HouseholdId = invitationvm.HouseholdId
                };

                var result = await UserManager.CreateAsync(user, invitationvm.Password);

                if (result.Succeeded)
                {
                    InvitationExtensions.MarkAsInvalid(invitationvm.Id);
                    helper.RemoveUserFromRole(user.Id, "Guest");
                    helper.AddUserToRole(user.Id, "Household Member");

                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }
            return(View(invitationvm));
        }
Exemple #3
0
        public UserAddEdit(UserViewModel userViewModel, bool isCreateProcess, bool isPopup = false)
        {
            // Initialize service
            this.userService    = DependencyResolver.Kernel.Get <IUserService>();
            this.companyService = DependencyResolver.Kernel.Get <ICompanyService>();
            InitializeComponent();

            this.DataContext = this;

            CurrentUser     = userViewModel;
            IsCreateProcess = isCreateProcess;
            IsPopup         = isPopup;

            RolesFromDB       = new ObservableCollection <UserRoleViewModel>(UserRolesHelper.GetAvailableRoles());
            UserRolesItemForm = new CompanyUserViewModel();

            Thread td = new Thread(() => DisplayItems());

            td.IsBackground = true;
            td.Start();

            Thread displayThread = new Thread(() => PopulateCompanyData());

            displayThread.IsBackground = true;
            displayThread.Start();
        }
Exemple #4
0
        //
        // GET: /Manage/Index
        public async Task <ActionResult> Index(ManageMessageId?message)
        {
            UserRolesHelper helper = new UserRolesHelper();

            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
                : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
                : message == ManageMessageId.Error ? "An error has occurred."
                : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
                : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
                : "";

            var userId = User.Identity.GetUserId();
            var model  = new IndexViewModel
            {
                HasPassword       = HasPassword(),
                ProfilePic        = db.Users.FirstOrDefault(u => u.Id == userId).ProfilePic,
                FirstName         = db.Users.FirstOrDefault(u => u.Id == userId).FirstName,
                LastName          = db.Users.FirstOrDefault(u => u.Id == userId).LastName,
                Roles             = helper.ListUserRoles(userId),
                PhoneNumber       = await UserManager.GetPhoneNumberAsync(userId),
                TwoFactor         = await UserManager.GetTwoFactorEnabledAsync(userId),
                Logins            = await UserManager.GetLoginsAsync(userId),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId)
            };

            return(View(model));
        }
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, FirstName = model.FName, LastName = model.LName, DisplayName = model.DName
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    UserRolesHelper helper = new UserRolesHelper(db);
                    helper.AddUserToRole(user.Id, "Submitter");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        // GET: Tickets
        public ActionResult Index()
        {
            var userId = User.Identity.GetUserId();
            TicketIndexViewModel model    = new TicketIndexViewModel();
            UserRolesHelper      urHelper = new UserRolesHelper();

            var alltickets = db.Tickets.Include(t => t.AssignedUser)
                             .Include(t => t.CreatorUser)
                             .Include(t => t.Project)
                             .Include(t => t.TicketPriority)
                             .Include(t => t.TicketStatus)
                             .Include(t => t.TicketType);

            model.AdminTickets = alltickets.ToList();


            if (User.IsInRole("ProjectManager"))
            {
                var tickets = db.Projects.Where(p => p.PMID == userId).SelectMany(p => p.Tickets)
                              .Include(t => t.AssignedUser)
                              .Include(t => t.CreatorUser)
                              .Include(t => t.Project)
                              .Include(t => t.TicketPriority)
                              .Include(t => t.TicketStatus)
                              .Include(t => t.TicketType);
                model.PMTickets  = tickets.ToList();
                ViewBag.PMAmount = model.PMTickets.Count();
            }

            if (User.IsInRole("Developer"))
            {
                var tickets = db.Tickets.Where(t => t.AssignedUserId == userId)
                              .Include(t => t.AssignedUser)
                              .Include(t => t.CreatorUser)
                              .Include(t => t.Project)
                              .Include(t => t.TicketPriority)
                              .Include(t => t.TicketStatus)
                              .Include(t => t.TicketType);

                model.DevTickets  = tickets.ToList();
                ViewBag.DevAmount = model.DevTickets.Count();
            }

            if (User.IsInRole("Submitter"))
            {
                var tickets = db.Tickets.Where(t => t.CreatorUserId == userId)
                              .Include(t => t.AssignedUser)
                              .Include(t => t.CreatorUser)
                              .Include(t => t.Project)
                              .Include(t => t.TicketPriority)
                              .Include(t => t.TicketStatus)
                              .Include(t => t.TicketType);

                model.SubTickets  = tickets.ToList();
                ViewBag.SubAmount = model.SubTickets.Count();
            }


            return(View(model));
        }
        // GET: Projects/Details/5
        public ActionResult Details(int?id)
        {
            ProjectDetailViewModel vm = new ProjectDetailViewModel();
            //AdminProjectViewModel vm = new AdminProjectViewModel();
            UserRolesHelper helper  = new UserRolesHelper();
            ProjectsHelper  phelper = new ProjectsHelper();

            var pSub = phelper.ProjectUsersByRole(id.Value, "Submitter");
            var pDev = phelper.ProjectUsersByRole(id.Value, "Developer");

            var pms = helper.UsersInRole("ProjectManager");

            vm.PMUsers     = new SelectList(pms, "Id", "FirstName");
            vm.TeamMembers = new SelectList(db.Users, "Id", "FullName");
            vm.Developers  = pDev;
            vm.Submitters  = pSub;
            vm.Project     = db.Projects.Find(id);


            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            //Project project = db.Projects.Find(id);
            if (vm.Project == null)
            {
                return(HttpNotFound());
            }
            return(View(vm));
        }
        // GET: Tickets/Edit/5
        public ActionResult EditDash(int?id)
        {
            var roleHelper = new UserRolesHelper();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ticket ticket = db.Tickets.Find(id);

            if (ticket == null)
            {
                return(HttpNotFound());
            }

            if (ticket.AssignedToUserId == User.Identity.GetUserId() || ticket.OwnerUser.Email == User.Identity.Name || User.IsInRole("Admin") || projHelper.IsUserOnProject(User.Identity.GetUserId(), ticket.ProjectId))
            {
                ViewBag.AssignedToUserId = new SelectList(roleHelper.UsersInRole("Developer"), "Id", "FirstName", ticket.AssignedToUser);
                ViewBag.OwnerUserId      = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId);
                ViewBag.ProjectId        = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId);
                ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId);
                ViewBag.TicketStatusId   = new SelectList(db.TicketStatuses.Where(s => s.Name != "New"), "Id", "Name", ticket.TicketStatusId);
                ViewBag.TicketTypeId     = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId);
                return(View(ticket));
            }
            return(RedirectToAction("InvalidAttempt", "Home"));
        }
Exemple #9
0
        public ActionResult CreateDB()
        {
            UserRolesHelper rolesHelper = new UserRolesHelper();

            ViewBag.ProjectManagerId = new SelectList(rolesHelper.UsersInRole("ProjectManager"), "Id", "FirstName");
            return(View());
        }
        public ActionResult Update(string Id)
        {
            var currUser = userRepo.ResultTable.Where(x => x.Id == Id).First();
            var helper   = new UserRolesHelper(_db);
            var model    = new UpdateUserViewModel()
            {
                Id        = Id,
                FirstName = currUser.FirstName,
                LastName  = currUser.LastName,
                Email     = currUser.Email,
                Phone     = currUser.PhoneNumber
            };

            try
            {
                model.CurrentRole = helper.ListUserRoles(Id).First();
            }
            catch
            {
                model.CurrentRole = "No Current Role";
            }
            var selectListSetup = helper.ListAbsentUserRoles(Id).ToList();

            selectListSetup.Insert(0, " ");

            model.AvailableRoles = new SelectList(selectListSetup);

            return(View(model));
        }
Exemple #11
0
        public ActionResult SidebarPartial2()
        {
            var currentuser = db.Users.Find(User.Identity.GetUserId());

            if (currentuser != null)
            {
                ProjectAssignHelper ph = new ProjectAssignHelper();
                UserRolesHelper     uh = new UserRolesHelper(db);
                UsersRolesViewModel vm = new UsersRolesViewModel();
                var userId             = User.Identity.GetUserId();
                var user = db.Users.Find(userId);
                vm.User  = db.Users.Find(User.Identity.GetUserId());
                vm.Roles = uh.ListUserRoles(vm.User.Id);
                if (uh.IsUserInRole(userId, "Admin") || uh.IsUserInRole(userId, "Administrator") || uh.IsUserInRole(userId, "Project Manager1") || uh.IsUserInRole(userId, "Project Manager2") || uh.IsUserInRole(userId, "Project Manager3"))
                {
                    vm.Projectsb = db.Projects.ToList();
                }
                else
                {
                    vm.Projectsb = ph.ListProjectsForAUser(userId);
                }

                return(PartialView("~/Areas/BugTracker/Views/Projects/_SidebarPartial2.cshtml", vm));
            }
            return(RedirectToAction("Index", "Home"));
        }
        // GET: Tickets/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ticket ticket = db.Ticket.Find(id);

            if (ticket == null)
            {
                return(HttpNotFound());
            }

            UserRolesHelper helper = new UserRolesHelper();



            ViewBag.AssignedUserId   = new SelectList(helper.UsersInRole("Developer"), "Id", "DisplayName", ticket.AssignedUserId);
            ViewBag.OwnerUserId      = new SelectList(db.Users, "Id", "DisplayName", ticket.OwnerUserId);
            ViewBag.ProjectId        = new SelectList(db.Project, "Id", "Name", ticket.ProjectId);
            ViewBag.TicketPriorityId = new SelectList(db.TicketPriority, "Id", "Name", ticket.TicketPriorityId);
            ViewBag.TicketStatusId   = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId);
            ViewBag.TicketTypeId     = new SelectList(db.TicketType, "Id", "Name", ticket.TicketTypeId);

            TempData["OldTicket"] = ticket;

            return(View(ticket));
        }
        // GET: Tickets/Details/5
        //public ActionResult Details(int? id)

        //{
        //    if (id == null)
        //    {
        //        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        //    }
        //    var ticket = db.Tickets.Find(id);
        //    if (ticket == null)
        //    {
        //        return HttpNotFound();
        //    }
        //    TicketDetailsViewModel TicketDetailsVM = new TicketDetailsViewModel();
        //    TicketDetailsVM.Histories = db.TicketHistories.Where(tH => tH.TicketId == id).ToList();
        //    return View(ticket);
        //}

        // GET: Tickets/Details/5
        public ActionResult Details(int?id)

        {
            UserRolesHelper userRolesHelper = new UserRolesHelper();
            //UserRolesViewModel userRoles = userRolesViewModel();
            var          userId       = User.Identity.GetUserId();
            TicketHelper ticketHelper = new TicketHelper();
            Ticket       ticket       = db.Tickets.Find(id);

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (ticket == null)
            {
                return(HttpNotFound());
            }

            var userTickets = ticketHelper.GetUserTickets(userId);

            if (userTickets.Any(t => t.Id == ticket.Id) || User.IsInRole("Admin") || ticket.Project.ProjectManagerId == User.Identity.GetUserId())
            {
                TicketDetailsViewModel TicketDetailsVM = new TicketDetailsViewModel();
                TicketDetailsVM.Histories = db.TicketHistories.Where(tH => tH.TicketId == id).ToList();
                return(View(ticket));
            }
            return(RedirectToAction("Index", "Home"));
        }
Exemple #14
0
        // GET: Projects/Create
        public ActionResult Create()


        {
            List <ApplicationUser> ProjectManagerId = new List <ApplicationUser>();
            UserRolesHelper        helper           = new UserRolesHelper(db);
            ProjectAssignHelper    ph = new ProjectAssignHelper();
            var userId = User.Identity.GetUserId();
            var user   = db.Users.Find(userId);



            var PMs  = helper.UsersInRole("Project Manager1");
            var PMs2 = helper.UsersInRole("Project Manager2");
            var PMs3 = helper.UsersInRole("Project Manager3");
            var AD   = helper.UsersInRole("Admin");
            var AD2  = helper.UsersInRole("Administrator");

            foreach (var PM in PMs)
            {
                ProjectManagerId.Add(PM);
            }
            foreach (var PM in PMs2)
            {
                ProjectManagerId.Add(PM);
            }
            foreach (var PM in PMs3)
            {
                ProjectManagerId.Add(PM);
            }

            ViewBag.ProjectManagerId = new SelectList(ProjectManagerId, "Id", "FirstName");

            return(View());
        }
Exemple #15
0
        public ActionResult Manage(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var model   = new AssignPageModel();
            var theUser = db.Users.Find(id);
            // send a select list of projects the user is NOT on
            // send a select list of tickets the user is NOT on
            // send a select list of roles the user is NOT on

            // send a list of projects, tickets, roles the user is on
            var roles = new List <IdentityRole>();

            foreach (var rol in db.Roles)
            {
                if (!theUser.Roles.Any(r => r.RoleId == rol.Id))
                {
                    roles.Add(rol);
                }
            }
            var tick    = db.Tickets;
            var helper  = new UserRolesHelper();
            var helperP = new UserProjectsHelper();

            model.TicketOwner = id;
            model.DisplayName = theUser.DisplayName;

            var UNP = helperP.ListUserNOTProjects(theUser.Id);

            model.UserNotProjects = new MultiSelectList(UNP.OrderBy(p => p.Name), "Id", "Name");

            var UNT = db.Tickets.Where(t => t.AssignedUser.Id != theUser.Id).OrderBy(m => m.Title);

            model.UserNotTickets = new MultiSelectList(UNT, "Id", "Title");

            model.UserNotRoles = new MultiSelectList(roles, "Id", "Name");

            var UP = theUser.Projects.OrderBy(p => p.Name);

            model.UserProjects = new MultiSelectList(UP, "Id", "Name");

            //model.UserProjects = null;

            var UT = theUser.Tickets.OrderBy(t => t.Title);

            model.UserTickets = new MultiSelectList(UT, "Id", "Title");
            //model.UserTickets = null;

            model.UserRoles = new MultiSelectList(helper.ListUserRoles(theUser.Id));
            //model.UserRoles = null;

            if (model == null)
            {
                return(HttpNotFound());
            }

            return(View(model));
        }
Exemple #16
0
        public ActionResult Edit([Bind(Include = "Id,Title,Description,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId")] Ticket ticket)
        {
            var userId = User.Identity.GetUserId();

            if (ModelState.IsValid)
            {
                var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id);
                ticket.Updated         = DateTime.Now;
                ticket.OwnerUserId     = User.Identity.GetUserId();
                db.Entry(ticket).State = EntityState.Modified;
                db.SaveChanges();
                var newTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id);

                NotificationManager.ManageTicketNotifications(oldTicket, newTicket);

                //var userId = User.Identity.GetUserId();
                HistoryHelper.GenerateHistory(oldTicket, newTicket, userId);
                return(RedirectToAction("Index"));
            }


            UserRolesHelper helper = new UserRolesHelper();

            var users = helper.UsersInRole("Developer").ToList();



            ViewBag.AssignedToUserId = new SelectList(users, "Id", "FirstName", ticket.AssignedToUserId);
            ViewBag.OwnerUserId      = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId);
            ViewBag.ProjectId        = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId);
            ViewBag.TicketPriorityId = new SelectList(projectsHelper.ListUserProjects(userId), "Id", "Name", ticket.TicketPriorityId);
            ViewBag.TicketStatusId   = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId);
            ViewBag.TicketTypeId     = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId);
            return(View(ticket));
        }
Exemple #17
0
        // GET: Households/Create
        //[Authorize(Roles = ApplicationRoleName.ADMINISTRATOR)]
        public ActionResult Create()
        {
            Household household = new Household();

            household.HeadOfHousehold = UserRolesHelper.GetUserById(User.Identity.GetUserId());;
            return(View(household));
        }
Exemple #18
0
        public ActionResult UserTicketsIndex()
        {
            //find the id of the current user
            var userId = User.Identity.GetUserId();

            TicketIndexViewModel model = new TicketIndexViewModel();
            //use roles helper to check for the roles
            UserRolesHelper helper = new UserRolesHelper();


            if (User.IsInRole("Admin"))
            {
                var tickets = db.Tickets.Include(t => t.AssignedToUser)
                              .Include(t => t.OwnerUser)
                              .Include(t => t.Project)
                              .Include(t => t.TicketPriority)
                              .Include(t => t.TicketStatus)
                              .Include(t => t.TicketType);
                model.AdminTickets = tickets.ToList();
            }
            if (User.IsInRole("Developer"))
            {
                var tickets = db.Tickets.Include(t => t.AssignedToUser)
                              .Include(t => t.OwnerUser)
                              .Include(t => t.Project)
                              .Include(t => t.TicketPriority)
                              .Include(t => t.TicketStatus)
                              .Include(t => t.TicketType)
                              //.Include(t => t.ProjectId)
                ;
                tickets          = tickets.Where(s => s.AssignedToUserId == userId);
                model.DevTickets = tickets.ToList();
            }
            if (User.IsInRole("ProjectManager"))
            {
                var tickets = db.Tickets.Include(t => t.AssignedToUser)
                              .Include(t => t.OwnerUser)
                              .Include(t => t.Project)
                              .Include(t => t.TicketPriority)
                              .Include(t => t.TicketStatus)
                              .Include(t => t.TicketType);
                tickets         = tickets.Where(s => s.Project.PMID == userId);
                model.PMTickets = tickets.ToList();
            }
            if (User.IsInRole("Submitter"))
            {
                var tickets = db.Tickets.Include(t => t.AssignedToUser)
                              .Include(t => t.OwnerUser)
                              .Include(t => t.Project)
                              .Include(t => t.TicketPriority)
                              .Include(t => t.TicketStatus)
                              .Include(t => t.TicketType);
                tickets          = tickets.Where(s => s.OwnerUserId == userId);
                model.SubTickets = tickets.ToList();
            }


            return(View(model));
        }
        private string BindRole(int flag)
        {
            UserRolesHelper helper   = new UserRolesHelper();
            DataSet         roles    = helper.getRoleList(flag);
            string          xmlroles = roles.GetXml();

            return(xmlroles);
        }
Exemple #20
0
        public List <ApplicationUser> ProjectUsersByRole(int projectId, string role)
        {
            UserRolesHelper uHelper = new UserRolesHelper();

            var users = uHelper.UsersInRole(role);

            return(users.Where(m => m.Projects.Select(p => p.Id).Contains(projectId)).ToList());
        }
        private string BindAllRole(int roleid)
        {
            UserRolesHelper helper   = new UserRolesHelper();
            DataSet         roles    = helper.getAllRole(roleid);
            string          xmlroles = roles.GetXml();

            return(xmlroles);
        }
        // GET: Tickets
        public ActionResult Index()
        {
            var userId = User.Identity.GetUserId();
            TicketIndexViewModel model  = new TicketIndexViewModel();
            UserRolesHelper      helper = new UserRolesHelper();

            if (User.IsInRole("Admin"))
            {
                var tickets = db.Tickets.Include(t => t.AssignedToUser)
                              .Include(t => t.OwnerUser)
                              .Include(t => t.Project)
                              .Include(t => t.TicketPriority)
                              .Include(t => t.TicketStatus)
                              .Include(t => t.TicketType);
                model.AdminTickets = tickets.ToList();
            }

            if (User.IsInRole("ProjectManager"))
            {
                var proj   = db.Projects;
                var myproj = proj.Where(p => p.PMID == userId);
                var tkts   = myproj.SelectMany(t => t.Tickets);

                tkts.Include(t => t.AssignedToUser)
                .Include(t => t.OwnerUser)
                .Include(t => t.Project)
                .Include(t => t.TicketPriority)
                .Include(t => t.TicketStatus)
                .Include(t => t.TicketType);
                model.PMTickets = tkts.ToList();
            }

            if (User.IsInRole("Developer"))
            {
                var tickets = db.Tickets.Where(t => t.AssignedToUserId == userId)
                              .Include(t => t.AssignedToUser)
                              .Include(t => t.OwnerUser)
                              .Include(t => t.Project)
                              .Include(t => t.TicketPriority)
                              .Include(t => t.TicketStatus)
                              .Include(t => t.TicketType);
                model.DevTickets = tickets.ToList();
            }

            if (User.IsInRole("Submitter"))
            {
                var tickets = db.Tickets.Where(t => t.OwnerUserId == userId)
                              .Include(t => t.AssignedToUser)
                              .Include(t => t.OwnerUser)
                              .Include(t => t.Project)
                              .Include(t => t.TicketPriority)
                              .Include(t => t.TicketStatus)
                              .Include(t => t.TicketType);
                model.SubTickets = tickets.ToList();
            }

            return(View(model));
        }
        public async Task <ActionResult> Register(RegisterViewModel model, HttpPostedFileBase image, int hourConversion, int serverTime)
        {
            ViewBag.ServerHourRegister = System.DateTime.Now.Hour;
            var now  = System.DateTime.Now.Hour;
            var diff = Math.Abs(now - serverTime);

            if (ModelState.IsValid)
            {
                var joinChapter = db.Chapters.First(c => c.CurrentChapter == true).Id;
                var pPic        = "/assets/images/DefaultProfilePic.png";
                if (ImageUploadValidator.IsWebFriendlyImage(image))
                {
                    //Counter
                    var num = 0;
                    //Gets Filename without the extension
                    var fileName = Path.GetFileNameWithoutExtension(image.FileName);
                    pPic = Path.Combine("/ProfilePics/", fileName + Path.GetExtension(image.FileName));
                    //Checks if pPic matches any of the current attachments,
                    //if so it will loop and add a (number) to the end of the filename
                    while (db.Users.Any(u => u.ProfilePic == pPic))
                    {
                        //Sets "filename" back to the default value
                        fileName = Path.GetFileNameWithoutExtension(image.FileName);
                        //Add's parentheses after the name with a number ex. filename(4)
                        fileName = string.Format(fileName + "(" + ++num + ")");
                        //Makes sure pPic gets updated with the new filename so it could check
                        pPic = Path.Combine("/ProfilePics/", fileName + Path.GetExtension(image.FileName));
                    }
                    image.SaveAs(Path.Combine(Server.MapPath("~/ProfilePics/"), fileName + Path.GetExtension(image.FileName)));
                }

                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, PhoneNumber = model.PhoneNumber, ProfilePic = pPic, JoinChapterId = joinChapter, FirstName = model.FirstName, LastName = model.LastName, DisplayName = model.FirstName + ' ' + model.LastName, Company = model.Company, JobTitle = model.JobTitle, HourConversion = hourConversion - diff
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    var helper = new UserRolesHelper(db);
                    helper.AddUserToRole(user.Id, "User");
                    db.SaveChanges();

                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    //// For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    //// Send an email with this link
                    //string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    //await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        //GET: Assign Ticket
        public ActionResult AssignTicket(int?id)
        {
            UserRolesHelper helper = new UserRolesHelper();
            var             ticket = db.Tickets.Find(id);
            var             users  = helper.UsersInRole("Developer").ToList();

            ViewBag.AssignedToUserId = new SelectList(users, "Id", "FirstName", ticket.AssignedToUserId);
            return(View(ticket));
        }
        public int insertRoles(Roles Role)
        {
            UserRolesHelper helper = new UserRolesHelper();

            Role.IsActive = true;
            int res = helper.insertUpdateRole(Role, 'I');

            return(res);
        }
Exemple #26
0
        // GET: Projects/AssignProject
        public ActionResult AssignProject(int?id)
        {
            UserRolesHelper helper  = new UserRolesHelper();
            var             project = db.Projects.Find(id);
            var             users   = helper.UsersInRole("ProjectManager").ToList();

            ViewBag.ProjectManagerId = new SelectList(users, "Id", "Email", project.ProjectManagerId);
            return(View(project));
        }
        //GET
        public ActionResult Details(string Id)


        {
            ProjectAssignHelper ph = new ProjectAssignHelper();
            UserRolesHelper     UH = new UserRolesHelper(db);
            var userId             = User.Identity.GetUserId();
            var user = db.Users.Find(userId);

            if (UH.IsUserInRole(userId, "Admin") || UH.IsUserInRole(userId, "Administrator") || userId == Id)
            {
                if (Id != null)
                {
                    UsersRolesViewModel userRoleViewModel2 = new UsersRolesViewModel();
                    userRoleViewModel2.User      = db.Users.Find(Id);
                    userRoleViewModel2.Roles     = helper.ListUserRoles(Id);
                    userRoleViewModel2.Tickets   = db.Tickets.ToList();
                    userRoleViewModel2.Projectsb = db.Projects.ToList();

                    //userRoleViewModel.Projects = helper.
                    var SubmitterlessRolesList = db.Roles.Where(r => r.Name != "Submitter");
                    ViewBag.Roles = new MultiSelectList(SubmitterlessRolesList, "Name", "Name");

                    //ViewBag.Roles = new MultiSelectList(db.Topics, "Id", "TopicName");

                    return(View(userRoleViewModel2));
                }
                else
                {
                    UsersRolesViewModel userRoleViewModel = new UsersRolesViewModel();
                    userRoleViewModel.User    = db.Users.Find(userId);
                    userRoleViewModel.Roles   = helper.ListUserRoles(userId);
                    userRoleViewModel.Tickets = db.Tickets.ToList();
                    List <Project> UserProjects = new List <Project>();
                    foreach (var project in db.Projects)
                    {
                        if (ph.IsUserOnAProject(userId, project.Id))
                        {
                            UserProjects.Add(project);
                        }
                    }
                    userRoleViewModel.Projectsb = UserProjects;
                    //userRoleViewModel.Projects = helper.
                    var SubmitterlessRolesList = db.Roles.Where(r => r.Name != "Submitter");
                    ViewBag.Roles = new MultiSelectList(SubmitterlessRolesList, "Name", "Name");

                    //ViewBag.Roles = new MultiSelectList(db.Topics, "Id", "TopicName");

                    return(View(userRoleViewModel));
                }
            }
            var Temporary = "You cannot view Details of this User.  Please revisit your role assignment.  You may view your own user details, but other user's details can only be viewed by Administrators. ";

            TempData["message"] = Temporary;
            return(RedirectToAction("Index", "Users"));
        }
        // GET: AssignTicket
        public ActionResult AssignTicket(int?id)
        {
            UserRolesHelper helper = new UserRolesHelper();
            var             ticket = db.Tickets.Find(id);
            var             users  = helper.UsersInRole("DEVELOPER").ToList();

            ViewBag.DevelperID = new SelectList(users, "Id", "FullName",
                                                ticket.DeveloperID);
            return(View(ticket));
        }
        public ActionResult AssignTicket(int?id)
        {
            UserRolesHelper helper = new UserRolesHelper();
            var             ticket = db.Tickets.Find(id);
            var             users  = helper.UsersInRole("Developer").ToList();
            var             currentTicketDevelopers = users.Where(u => u.Projects.Any(p => p.Id.Equals(ticket.ProjectId)));

            ViewBag.AssignedToUserId = new SelectList(currentTicketDevelopers, "Id", "FullName", ticket.AssignedToUserId);

            return(View(ticket));
        }
Exemple #30
0
 public bool RemoveHouseholdMember(string userId, int householdId)
 {
     if (IsMemberOfHousehold(userId, householdId))
     {
         UserRolesHelper.RemoveUserFromRole(userId, HouseholdRoleName.MEMBER);
         UserRolesHelper.AddUserToRole(userId, HouseholdRoleName.NONE);
         db.Households.Find(householdId).Members.Remove(db.Users.Find(userId));
         db.SaveChanges();
     }
     return(!IsMemberOfHousehold(userId, householdId));
 }
        public ActionResult EditUser(string id, AdminUserViewModel model)
        {
            if (id == null) {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            var user = db.Users.Find(id);
            UserRolesHelper helper = new UserRolesHelper();

            foreach (var role in db.Roles.ToList()) {
                //If selected but user doesn't have, add
                if (model.SelectedRoles.Contains(role.Id)) {
                    helper.AddUserToRole(id, role.Name);
                }
                //If not selected but user *does* have, remove
                else if (!model.SelectedRoles.Contains(role.Id)) {
                    helper.RemoveUserFromRole(id, role.Name);
                }
            }

            return RedirectToAction("Index", new { id });
        }
        public ActionResult ManageRoles(string role, string[] assignedUsers)
        {
            var helper = new UserRolesHelper();//a new 'UserRolesHelper' object is instantiated and named 'helper'. It has all of the methods
            //defined in the 'UserRolesHelper' class.
            var dbRole = db.Roles.FirstOrDefault(r => r.Name == role);//go to the 'Roles' table in the database and find the first role where
            //it's 'Name' property has the same value as the 'role' parameter that was passed to this action method and assign that role
            //(it's 'Name' and 'Id' properties and their values) to the variable called 'dbRole'.

            if (dbRole == null)
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);

            dbRole.Users.Clear();//remove all of the users from the 'Users' property of 'dbRole'
            db.SaveChanges();//save any changes made to the database.

            foreach (var user in assignedUsers ?? new string[0])//loop over the string array 'assignedUser', which was passed as a parameter
                //to this acton method....LOOK INTO THE SECOND PART OF THIS LOOP STATEMENT...NOT REALLY SURE WHAT THAT IS ABOUT...
                helper.AddUserToRole(user, role);//call the 'AddUserToRole' method from the 'helper' object and pass it the current user from
            //the 'assignedUsers' array and the specified 'role'.

            return RedirectToAction("ManageRoles", new { role });//redirect to the 'ManageRoles' action method with a new object of the
            //'role' that was passed to this action method.
        }
        //When the administrator wants to add many users to a role at once they will click
        //the button that indicates which role they want to add users to. that button submits a url request that is processed and
        //matched to a pattern in the route.config file, which will direct to the 'ManageRoles' action method in the 'admin' controller.
        //the 'string role' parameter of this method receives the parameter indicated in the button that was clicked. The parameter will
        //be either 'admin', 'project manager', 'developer' or 'submitter'.
        //GET: Admin/ManageRoles/(role)
        public ActionResult ManageRoles(string role)
        {
            if (role == "Admin")
            {
                ViewBag.Title = "Manage Admin Role";
            }
            else if (role == "Project Manager")
            {
                ViewBag.Title = "Manage Project Manager Role";
            }
            else if (role == "Developer")
            {
                ViewBag.Title = "Manage Developer Role";
            }
            else
            {
                ViewBag.Title = "Manage Submitter Role";
            }

            var helper = new UserRolesHelper();//this creates a new instance of the 'UserRolesHelper' class. the 'helper' object has
            //all of the methods defined in the 'UserRolesHelper' class.
            ViewBag.AssignedUsers = new MultiSelectList(db.Users.ToList(),"Id","DisplayName", helper.UsersInRole(role).Select(u => u.Id));
            //the 'AssignedUsers' variable is a new instance of the 'MultiSelectList' class and is attached to the 'ViewBag' so that a
            //multiselect list can be created in the view.  The parameters given to the 'MultiSelectList' object are 1.) a list of all users
            //in the database, 2.) the property that is going to be selectable in the list (the users Id), 3.) the property that will be displayed
            //in the multiselect list (the users DisplayName), 4.)...the 'UsersInRole' method is called from the 'helper' object and passed the
            //'role' parameter that was passed to the 'ManageRoles' action method. From the 'UsersInRole' method is returned a list of users
            //whose 'RoleId' value matches the 'Id' value for that role in the 'Roles' table. So, this multiselect list will be populated with
            //all of the Users in the database and the end user will see the user's display names and those display names will have the users'
            //id's tied to them and any user that the end user selects on that multiselect list will be added to the role specified.
            return View();//return the ManageRoles view.
        }
        public ActionResult Edit(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Ticket tickets = db.Tickets.Find(id);
            if (tickets == null)
            {
                return HttpNotFound();
            }

            UserRolesHelper helper = new UserRolesHelper();

            ViewBag.AssignedUserId = new SelectList(db.Users, "Id", "FirstName", tickets.AssignedUserId);
            ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", tickets.OwnerUserId);
            ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", tickets.ProjectId);
            ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", tickets.TicketPriorityId);
            ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", tickets.TicketStatusId);
            ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", tickets.TicketTypeId);

            TempData["OldTicket"] = tickets;
            
            return View(tickets);
        }
        // GET: Tickets/Edit/5
        public ActionResult Edit(int id) {

            TicketsModel ticketsModel = db.TicketsData.Find(id);
            if (ticketsModel == null) {
                return HttpNotFound();
            }
            var projectId = db.ProjectsData.Find(ticketsModel.ProjectId);
            var projectUser = projectId.Users.ToList();
            var projUserList = new List<ApplicationUser>();

            List<ApplicationUser> projdevs = new List<ApplicationUser>();
            UserRolesHelper helper = new UserRolesHelper();

            foreach (var user in projectId.Users) {
                if ((helper.IsUserInRole(user.Id, "Developer")) || (helper.IsUserInRole(user.Id, "ProjectManager"))) {
                    projdevs.Add(user);
                }
            }

            ViewBag.ProjectId = new SelectList(db.ProjectsData, "Id", "Name", ticketsModel.ProjectId);
            ViewBag.TicketPriorityId = new SelectList(db.TicketPrioritiesData, "Id", "Name", ticketsModel.TicketPriorityId);
            ViewBag.TicketStatusId = new SelectList(db.TicketStatusesData, "Id", "Name", ticketsModel.TicketStatusId);
            ViewBag.TicketTypeId = new SelectList(db.TicketTypesData, "Id", "Name", ticketsModel.TicketTypeId);
            ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "DisplayName", ticketsModel.OwnerUserId);
            ViewBag.AssignedToUserId = new SelectList(projectUser.ToList(), "Id", "DisplayName", ticketsModel.AssignedToUserId);
            ViewBag.Comments = new SelectList(db.Users, "Id", "Comment", ticketsModel.Comments);
            ViewBag.Historys = new SelectList(db.TicketHistoriesData, "Id", "Property", ticketsModel.History);

            return View(ticketsModel);
        }