Exemplo n.º 1
0
        public ActionResult AssignUser([Bind(Include = "Id,Name")] Project project, /*List<int> Projects,*/ List <string> Devs, List <string> Subs)
        {
            if (ModelState.IsValid)
            {
                //Assign the user to the selected role
                //Determine if the user currently occupies a project, and if so remove them from it
                var UsersOnProject = projectHelper.UsersOnProject(project.Id).ToList();

                foreach (var user in UsersOnProject)
                {
                    if (!rolesHelper.IsUserInRole(user.Id, "Project Manager"))
                    {
                        projectHelper.RemoveUserFromProject(user.Id, project.Id);
                    }
                }
                if (Devs != null)
                {
                    foreach (var devId in Devs)
                    {
                        projectHelper.AddUserToProject(devId, project.Id);
                    }
                }
                if (Subs != null)
                {
                    foreach (var subId in Subs)
                    {
                        projectHelper.AddUserToProject(subId, project.Id);
                    }
                }
                return(RedirectToAction("Details", "Projects", new { Id = project.Id }));
            }
            return(View());
        }
Exemplo n.º 2
0
        public ActionResult ProjectWizard(ProjectWizardVM model)
        {
            #region Fail Cases
            if (model.Name == null)
            {
                TempData["ProjectErrors"] += "<p class=\"text-danger\">You must define a Project Name</p>";
            }
            if (model.Details == null)
            {
                TempData["ProjectErrors"] += "<p class=\"text-danger\">You must define Project Details</p>";
            }
            if (model.ProjectManagerId == null)
            {
                TempData["ProjectErrors"] += "<p class=\"text-danger\">You must select a Project Manager</p>";
            }
            if (model.DeveloperIds.Count == 0)
            {
                TempData["ProjectErrors"] += "<p  class=\"text-danger\">You must select at least one Developer</p>";
            }
            if (model.SubmitterIds.Count == 0)
            {
                TempData["ProjectErrors"] += "<p  class=\"text-danger\">You must select at least one Submitter</p>";
            }
            #endregion
            if (ModelState.IsValid)
            {
                Project project = new Project();
                if (db.Projects.Any(p => p.Name == model.Name))
                {
                    TempData["ProjectErrors"] += "<p  class=\"text-danger\">A Project with this name already exists</p>";
                    return(Redirect(Request.UrlReferrer.ToString()));
                }
                project.Name       = model.Name;
                project.Details    = model.Details;
                project.Created    = DateTime.Now;
                project.IsArchived = false;
                db.Projects.Add(project);
                db.SaveChanges();
                TempData["ProjectErrors"] += "Success";

                projHelp.AddUserToProject(model.ProjectManagerId, project.Id);
                foreach (var userId in model.DeveloperIds)
                {
                    projHelp.AddUserToProject(userId, project.Id);
                }
                foreach (var userId in model.SubmitterIds)
                {
                    projHelp.AddUserToProject(userId, project.Id);
                }

                //return Redirect(returnUrl);
                return(Redirect(Request.UrlReferrer.ToString()));
            }
            else
            {
                return(Redirect(Request.UrlReferrer.ToString()));
            }
        }
Exemplo n.º 3
0
        public ActionResult ProjectWizard(ProjectWizardVM model)
        {
            #region fail cases
            ViewBag.Errors = "";
            if (model.ProjectManagerId == null)
            {
                ViewBag.Errors += "<p> You must select a Project Manager</p>";
            }
            if (model.DeveloperIds.Count < 1)
            {
                ViewBag.Errors += "<p> You must select at least one Developer </p>";
            }
            if (model.SubmitterIds.Count < 1)
            {
                ViewBag.Errors += "<p> You must select at least one Submmiter</p>";
            }
            if (ViewBag.Errors.Length > 0)
            {
                ViewBag.ProjectManagerId = new SelectList(roleHelper.UsersInRole("ProjectManager"), "Id", "FullName");
                ViewBag.DeveloperIds     = new MultiSelectList(roleHelper.UsersInRole("Developer"), "Id", "FullName");
                ViewBag.SubmitterIds     = new MultiSelectList(roleHelper.UsersInRole("Submitter"), "Id", "FullName");

                return(View(model));
            }
            #endregion
            if (ModelState.IsValid)
            {
                Project project = new Project();
                project.Name        = model.Name;
                project.Description = model.Description;
                project.Created     = DateTime.Now;
                project.DueDate     = DateTime.Now.AddDays(+100);
                project.IsArchive   = false;
                db.Projects.Add(project);
                db.SaveChanges();
                projectHelper.AddUserToProject(model.ProjectManagerId, project.Id);
                foreach (var userId in model.DeveloperIds)
                {
                    projectHelper.AddUserToProject(userId, project.Id);
                }
                foreach (var userId in model.SubmitterIds)
                {
                    projectHelper.AddUserToProject(userId, project.Id);
                }

                notificationHelper.NewProjectCreated(project);
                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.ProjectManagerId = new SelectList(roleHelper.UsersInRole("ProjectManager"), "Id", "FullName");
                ViewBag.DeveloperIds     = new MultiSelectList(roleHelper.UsersInRole("Developer"), "Id", "FullName");
                ViewBag.SubmitterIds     = new MultiSelectList(roleHelper.UsersInRole("Submitter"), "Id", "FullName");

                return(View(model));
            }
        }
Exemplo n.º 4
0
 //public ActionResult ManageProjects(List<int> projects, string userId)
 public ActionResult ManageProjects(List <int> projects, string userId)
 {
     foreach (var project in projHelper.ListUserProjects(userId).ToList())
     {
         projHelper.RemoveUserFromProject(userId, project.Id);
     }
     if (projects != null)
     {
         foreach (var projectId in projects)
         {
             projHelper.AddUserToProject(userId, projectId);
         }
     }
     return(RedirectToAction("UserIndex"));
 }
Exemplo n.º 5
0
        public ActionResult ManageUserProjects(string userId, List <int> addProjectIds, List <int> removeProjectIds)
        {
            if (addProjectIds != null)
            {
                foreach (var projectId in addProjectIds)
                {
                    projHelper.AddUserToProject(userId, projectId);
                }
            }
            if (removeProjectIds != null)
            {
                foreach (var projectId in removeProjectIds)
                {
                    projHelper.RemoveUserFromProject(userId, projectId);
                }
            }

            return(Redirect(Request.UrlReferrer.ToString()));
        }
Exemplo n.º 6
0
        public ActionResult AssignProject(int project, string ProjectManager, List <string> Developers, List <string> Submitters)
        {
            if (ModelState.IsValid)
            {
                var projUsers = projHelper.UsersOnProject(project);


                foreach (var user in projUsers.ToList())
                {
                    projHelper.RemoveUserFromProject(user.Id, project);
                }

                if (User.IsInRole("Admin"))
                {
                    projHelper.AddUserToProject(ProjectManager, project);
                }

                if (ProjectManager == null)
                {
                    User.Identity.GetUserId();
                }

                if (Developers != null)
                {
                    foreach (var user in Developers)
                    {
                        projHelper.AddUserToProject(user, project);
                    }
                }


                if (Submitters != null)
                {
                    foreach (var user in Submitters)
                    {
                        projHelper.AddUserToProject(user, project);
                    }
                }

                return(RedirectToAction("AP", "Projects"));
            }
            return(RedirectToAction("AP", "Projects"));
        }
Exemplo n.º 7
0
        public ActionResult AssignPMs(/*[Bind(Include = "Id,ProjectId")]*/ List <int> Projects, string PMs)
        {
            if (ModelState.IsValid)
            {
                //Assign the user to the selected role
                //Determine if the user currently occupies a role, and if so remove them form it
                foreach (var project in projectHelper.ListUserProjects(PMs))
                {
                    projectHelper.RemoveUserFromProject(PMs, project.Id);
                }

                foreach (var projectId in Projects)
                {
                    projectHelper.AddUserToProject(PMs, projectId);
                }

                return(RedirectToAction("Index", "Home"));
            }
            return(View());
        }
Exemplo n.º 8
0
        public ActionResult ManageProjectUsers(List <int> projects, string projectManagerId, List <string> developers, List <string> submitters)
        {
            if (projects != null)
            {
                foreach (var projectId in projects)
                {
                    //Remove everyone from this project
                    foreach (var user in projectHelper.UsersOnProject(projectId).ToList())
                    {
                        projectHelper.RemoveUserFromProject(user.Id, projectId);
                    }
                    //Add back PM if possible
                    if (!string.IsNullOrEmpty(projectManagerId))
                    {
                        projectHelper.AddUserToProject(projectManagerId, projectId);
                    }

                    if (developers != null)
                    {
                        foreach (var developerId in developers)
                        {
                            projectHelper.AddUserToProject(developerId, projectId);
                        }
                    }

                    if (submitters != null)
                    {
                        foreach (var submitterId in submitters)
                        {
                            projectHelper.AddUserToProject(submitterId, projectId);
                        }
                    }
                }
            }

            return(RedirectToAction("ManageProjectUsers"));
        }
Exemplo n.º 9
0
        public ActionResult Edit([Bind(Include = "Id,FirstName,LastName,Email,PhoneNumber,Picture,DisplayName")] ApplicationUser applicationUser, HttpPostedFileBase image, string Roles, List <int> Projects)
        {
            if (ModelState.IsValid)
            {
                if (ImageUploadValidator.IsWebFriendlyImage(image))
                {
                    var fileName = Path.GetFileName(image.FileName);
                    image.SaveAs(Path.Combine(Server.MapPath("~/Images/"), fileName));
                    applicationUser.Picture = "/Images/" + fileName;
                }

                applicationUser.UserName = applicationUser.Email;
                //Assign the user to the selected role
                //Determine if the user currently occupies a role, and if so remove them form it
                foreach (var role in rolesHelper.ListUserRoles(applicationUser.Id))
                {
                    rolesHelper.RemoveUserFromRole(applicationUser.Id, role);
                }
                if (Roles != null)
                {
                    rolesHelper.AddUserToRole(applicationUser.Id, Roles);
                }
                //Add user to the new selected role
                foreach (var proj in projectHelper.ListUserProjects(applicationUser.Id))
                {
                    projectHelper.RemoveUserFromProject(applicationUser.Id, proj.Id);
                }
                if (Projects != null)
                {
                    foreach (var projectId in Projects)
                    {
                        projectHelper.AddUserToProject(applicationUser.Id, projectId);
                    }
                }

                //db.Entry(applicationUser).State = EntityState.Unchanged;
                db.Users.Attach(applicationUser);
                db.Entry(applicationUser).Property(p => p.FirstName).IsModified   = true;
                db.Entry(applicationUser).Property(p => p.LastName).IsModified    = true;
                db.Entry(applicationUser).Property(p => p.Email).IsModified       = true;
                db.Entry(applicationUser).Property(p => p.PhoneNumber).IsModified = true;
                db.Entry(applicationUser).Property(p => p.DisplayName).IsModified = true;
                db.Entry(applicationUser).Property(p => p.UserName).IsModified    = true;
                db.Entry(applicationUser).Property(p => p.Picture).IsModified     = true;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(applicationUser));
        }
Exemplo n.º 10
0
        public ActionResult ProjectAssign(int Id, List <string> PA)
        {
            if (PA == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var projectHelper = new ProjectHelper();

            foreach (var user in db.Users)
            {
                projectHelper.RemoveUserToProject(user.Id, Id);
            }
            foreach (var userId in PA)
            {
                projectHelper.AddUserToProject(userId, Id);
            }
            return(RedirectToAction("Index", "Projects"));
        }
Exemplo n.º 11
0
        public ActionResult Create([Bind(Include = "Id,Name,Description")] Project project)
        {
            if (ModelState.IsValid)
            {
                db.Projects.Add(project);
                db.SaveChanges();
                if (User.IsInRole("Project Manager"))
                {
                    projectHelper.AddUserToProject(User.Identity.GetUserId(), project.Id);
                }
                return(RedirectToAction("Index", "Home"));
            }

            return(View(project));
        }
Exemplo n.º 12
0
        public async Task <ActionResult> EditUsers([Bind(Include = "Users,Project,SelectedUsers")] ProjectViewModel model, TicketNotification ticketNotification)
        {
            ProjectHelper helper = new ProjectHelper();

            foreach (var user in db.Users)
            {
                if (helper.IsUserOnProject(user.Id, model.Project.Id))
                {
                    helper.RemoveUserFromProject(user.Id, model.Project.Id);
                }
            }
            foreach (var user in model.SelectedUsers)
            {
                if (!helper.IsUserOnProject(user, model.Project.Id))
                {
                    helper.AddUserToProject(user, model.Project.Id);
                    //userManager.SendEmailAsync(user, "Notification", "You have been added to project " + model.Project.Name);
                    var callbackUrl = Url.Action("Details", "Projects", new { id = model.Project.Id }, protocol: Request.Url.Scheme);
                    try
                    {
                        EmailService    ems = new EmailService();
                        IdentityMessage msg = new IdentityMessage();
                        ApplicationUser usr = db.Users.Find(user);
                        msg.Body        = "You have been added to a Project." + Environment.NewLine + "Please click the following link to view the details" + "<a href=\"" + callbackUrl + "\">PROJECT</a>";
                        msg.Destination = usr.Email;
                        msg.Subject     = "BugTracker";
                        await ems.SendMailAsync(msg);
                    }
                    catch (Exception ex)
                    {
                        await Task.FromResult(0);
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
Exemplo n.º 13
0
        public ActionResult ManageProjectUsers(int id, string projectmanagers, List <string> msdevs, List <string> mssubs)
        {
            //Remove users from project if they are already on one.
            foreach (var user in projectHelper.UsersOnProject(id).ToList())
            {
                //{
                //    projectHelper.RemoveUserFromProject(user.Id, id);
                //}

                //Add back PM if possible
                if (!string.IsNullOrEmpty(projectmanagers))
                {
                    projectHelper.AddProjectManagerToProject(projectmanagers, id);
                    projectHelper.AddUserToProject(projectmanagers, id);
                }
            }

            if (msdevs != null)
            {
                foreach (var developerId in msdevs)
                {
                    projectHelper.AddUserToProject(developerId, id);
                }
            }

            if (mssubs != null)
            {
                foreach (var submitterId in mssubs)
                {
                    projectHelper.AddUserToProject(submitterId, id);
                }
            }


            //Remove everyone from this project
            //foreach (var user in projectHelper.UsersOnProject(model.Project.Id).ToList())
            //{
            //    projectHelper.RemoveUserFromProject(user.Id, model.Project.Id);
            //}
            //Add back PM if possible
            //    if (!string.IsNullOrEmpty(model.ProjectManager.Id))
            //    {
            //        //projectHelper.AddUserToProject(projectManagerId, projectId);
            //projectHelper.AddProjectManagerToProject()

            //    }

            //    if (developers != null)
            //    {
            //        foreach(var developerId in developers)
            //        {
            //            projectHelper.AddUserToProject(developerId, projectId);
            //        }
            //    }

            //    if (submitters != null)
            //    {
            //        foreach (var submitterId in submitters)
            //        {
            //            projectHelper.AddUserToProject(submitterId, projectId);
            //        }
            //    }

            //    }
            //}

            return(RedirectToAction("ManageProjectUsers"));
        }
Exemplo n.º 14
0
        public ActionResult Seed()
        {
            var dev     = db.Users.FirstOrDefault(x => x.Email == "*****@*****.**");
            var sub     = db.Users.FirstOrDefault(x => x.Email == "*****@*****.**");
            var manager = db.Users.FirstOrDefault(x => x.Email == "*****@*****.**");


            db.Projects.Add(new Project {
                Name = "The keyboard warrior", Description = "React and Node ecommerse site.", Archived = false
            });
            db.Projects.Add(new Project {
                Name = "Portfolio", Description = "Jquery and bootstrap site.", Archived = false
            });
            db.Projects.Add(new Project {
                Name = "Blog", Description = "MVC5 blog.", Archived = false
            });
            db.Projects.Add(new Project {
                Name = "BugTracker", Description = "MVC5 role based functionality app.", Archived = false
            });
            db.Projects.Add(new Project {
                Name = "Financial Planner", Description = "MVC5 portion of the fianancial planner.", Archived = false
            });
            db.SaveChanges();

            var projects = db.Projects;

            foreach (var project in projects)
            {
                ProjectHelper.AddUserToProject(dev.Id, project.Id);
                ProjectHelper.AddUserToProject(sub.Id, project.Id);
                ProjectHelper.AddUserToProject(manager.Id, project.Id);
            }
            var key  = db.Projects.FirstOrDefault(m => m.Name == "The keyboard warrior");
            var port = db.Projects.FirstOrDefault(m => m.Name == "Portfolio");
            var blog = db.Projects.FirstOrDefault(m => m.Name == "Blog");
            var bt   = db.Projects.FirstOrDefault(m => m.Name == "BugTracker");
            var fp   = db.Projects.FirstOrDefault(m => m.Name == "Financial Planner");

            db.Tickets.Add(new Ticket {
                Title            = "Issue hosting project",
                Description      = "The store does not render when hosted",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = key.Id,
                Created          = DateTime.Now.AddDays(-75),
                TicketPriorityId = 4,
                TicketStatusId   = 4,
                TicketTypeId     = 5
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Local storage cart.",
                Description      = "Cart won't update on local storage.",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = key.Id,
                Created          = DateTime.Now.AddDays(-76),
                TicketPriorityId = 2,
                TicketStatusId   = 4,
                TicketTypeId     = 5
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Stripe",
                Description      = "Add stripe payment processor",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = key.Id,
                Created          = DateTime.Now.AddDays(-76),
                TicketPriorityId = 1,
                TicketStatusId   = 6,
                TicketTypeId     = 4
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Site down",
                Description      = "Website showing 404",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = key.Id,
                Created          = DateTime.Now.AddDays(-40),
                TicketPriorityId = 4,
                TicketStatusId   = 5,
                TicketTypeId     = 8
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Update",
                Description      = "Add new project",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = port.Id,
                Created          = DateTime.Now.AddDays(-1),
                TicketPriorityId = 2,
                TicketStatusId   = 2,
                TicketTypeId     = 9
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Email",
                Description      = "Add email to contact form",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = port.Id,
                Created          = DateTime.Now.AddDays(-60),
                TicketPriorityId = 2,
                TicketStatusId   = 4,
                TicketTypeId     = 2
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Live link drawer",
                Description      = "Drawer with live links",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = port.Id,
                Created          = DateTime.Now.AddDays(-65),
                TicketPriorityId = 2,
                TicketStatusId   = 4,
                TicketTypeId     = 2
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Crop images",
                Description      = "Crop images to equal size.",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = port.Id,
                Created          = DateTime.Now.AddDays(-67),
                TicketPriorityId = 3,
                TicketStatusId   = 4,
                TicketTypeId     = 2
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Post email animation",
                Description      = "Animation confirmation for email",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = port.Id,
                Created          = DateTime.Now.AddDays(-55),
                TicketPriorityId = 2,
                TicketStatusId   = 6,
                TicketTypeId     = 4
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "New Blog post",
                Description      = "Write a new blog posts",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = blog.Id,
                Created          = DateTime.Now.AddDays(0),
                TicketPriorityId = 3,
                TicketStatusId   = 2,
                TicketTypeId     = 9
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "New Blog post",
                Description      = "Write a new blog posts",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = blog.Id,
                Created          = DateTime.Now.AddDays(-50),
                TicketPriorityId = 3,
                TicketStatusId   = 4,
                TicketTypeId     = 9
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "New Blog post",
                Description      = "Write a new blog posts",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = blog.Id,
                Created          = DateTime.Now.AddDays(-30),
                TicketPriorityId = 3,
                TicketStatusId   = 4,
                TicketTypeId     = 9
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Fix Teaxt wrap",
                Description      = "Consider if the user enter random charactors",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = blog.Id,
                Created          = DateTime.Now.AddDays(-45),
                TicketPriorityId = 2,
                TicketStatusId   = 4,
                TicketTypeId     = 2
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Comment section",
                Description      = "Style comment section.",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = blog.Id,
                Created          = DateTime.Now.AddDays(-40),
                TicketPriorityId = 3,
                TicketStatusId   = 4,
                TicketTypeId     = 2
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Archive",
                Description      = "Archive tickets and projects",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = bt.Id,
                Created          = DateTime.Now.AddDays(-25),
                TicketPriorityId = 2,
                TicketStatusId   = 4,
                TicketTypeId     = 4
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Hard delete",
                Description      = "Use sweet alert to with hard delete",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = bt.Id,
                Created          = DateTime.Now.AddDays(-20),
                TicketPriorityId = 3,
                TicketStatusId   = 4,
                TicketTypeId     = 4
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Final Check",
                Description      = "Walk threw check everything",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = bt.Id,
                Created          = DateTime.Now.AddDays(-15),
                TicketPriorityId = 4,
                TicketStatusId   = 4,
                TicketTypeId     = 1
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Scaling Issues",
                Description      = "Nav doesn't change and tables are off the screen",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = bt.Id,
                Created          = DateTime.Now.AddDays(-9),
                TicketPriorityId = 3,
                TicketStatusId   = 4,
                TicketTypeId     = 4
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Seed methods.",
                Description      = "Need to write better seed methods.",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = bt.Id,
                Created          = DateTime.Now.AddDays(0),
                TicketPriorityId = 3,
                TicketStatusId   = 3,
                TicketTypeId     = 5
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Scafold and set up invite",
                Description      = "Week 9 deliverables",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = fp.Id,
                Created          = DateTime.Now.AddDays(-5),
                TicketPriorityId = 4,
                TicketStatusId   = 4,
                TicketTypeId     = 2
            });
            db.Tickets.Add(new Ticket
            {
                Title            = "Budget and transaction",
                Description      = "Week 10 deliverables",
                OwnerUserId      = sub.Id,
                AssignedToUserId = dev.Id,
                ProjectId        = fp.Id,
                Created          = DateTime.Now.AddDays(-1),
                TicketPriorityId = 4,
                TicketStatusId   = 2,
                TicketTypeId     = 2
            });
            db.SaveChanges();
            return(RedirectToAction("Index", "Home"));
        }
Exemplo n.º 15
0
        public async Task <ActionResult> CreateNewUser(CreateNewUserViewModel model, List <int> AllProjects, string RoleName)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName    = model.Email,
                    Email       = model.Email,
                    FirstName   = model.FirstName,
                    LastName    = model.LastName,
                    AvatarPath  = WebConfigurationManager.AppSettings["DefaultAvatarPath"],
                    PhoneNumber = model.PhoneNumber
                };
                if (model.Avatar != null)
                {
                    if (FileUploadValidator.IsWebFriendlyImage(model.Avatar))
                    {
                        var fileName     = FileStamp.MakeUnique(model.Avatar.FileName);
                        var serverFolder = WebConfigurationManager.AppSettings["DefaultAvatarFolder"];
                        model.Avatar.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName));
                        user.AvatarPath = $"{serverFolder}{fileName}";
                    }
                }
                var result = await UserManager.CreateAsync(user, Membership.GeneratePassword(12, 1));

                if (result.Succeeded)
                {
                    roleHelper.AddUserToRole(user.Id, RoleName);

                    foreach (var projectId in AllProjects)
                    {
                        projectHelper.AddUserToProject(user.Id, projectId);
                    }


                    // For more information on how to enable account confirmation and password reset please visit https://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);

                    try
                    {
                        var from  = "BugTracker Admin<*****@*****.**>";
                        var email = new MailMessage(from, model.Email)
                        {
                            Subject    = "Confirm Your Account",
                            Body       = "Please confirm your account by Clicking here <a href=\"" + callbackUrl + "\">here</a> ",
                            IsBodyHtml = true
                        };
                        var svc = new EmailService();
                        await svc.SendAsync(email);

                        //return View(new EmailModel());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        await Task.FromResult(0);
                    }

                    //await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(RedirectToAction("Login", "Account"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            ViewBag.AllProjects = new MultiSelectList(db.Projects.ToList(), "Id", "Name");
            ViewBag.RoleName    = new SelectList(db.Roles, "Name", "Name", "Default");
            return(View(model));
        }