private void UpdateReleaseBacklogUserStories(string[] selectedUserStories, ReleaseBacklog releaseBacklogToUpdate) { if (selectedUserStories == null) { releaseBacklogToUpdate.UserStories = new List <UserStory>(); return; } var selectedUserStoriesHS = new HashSet <string>(selectedUserStories); var releaseBacklogUserStories = new HashSet <int>(releaseBacklogToUpdate.UserStories.Select(u => u.ID)); foreach (var userStory in db.UserStories) { if (selectedUserStoriesHS.Contains(userStory.ID.ToString())) { if (!releaseBacklogUserStories.Contains(userStory.ID)) { releaseBacklogToUpdate.UserStories.Add(userStory); } } else { if (releaseBacklogUserStories.Contains(userStory.ID)) { releaseBacklogToUpdate.UserStories.Remove(userStory); } } } }
public ActionResult Edit(int id) { CarregaLista(); //passando uma model A ReleaseBacklog A = RBacklogList.Where(X => X.ID == id).First(); List <Equipe> Equipes = (List <Equipe>)Session["Equipes"]; ProductList = _ProductRep.Lista(new ProductBacklogMapper()); ViewBag.Historia = new SelectList(ProductList, "ID", "Historia"); UserList = _UserRep.Lista(new UsersMapper()); ViewBag.Nome = new SelectList(UserList, "ID", "Nome"); ViewBag.Situacao = new List <SelectListItem> { new SelectListItem { Text = "A Fazer", Value = "A Fazer" }, new SelectListItem { Text = "Em Execução", Value = "Em Execução" }, new SelectListItem { Text = "Em Teste", Value = "Em Teste" }, new SelectListItem { Text = "Done", Value = "Done" } }; return(View(A)); }
public ActionResult Create(ReleaseBacklog RB) { _RBacklogRep.ADD(RB); Session["Lista"] = RBacklogList; CarregaLista(); return(RedirectToAction("Index")); }
public ActionResult Edit(ReleaseBacklog RB) { //carrega lista e traz um objeto da lista para ser editado CarregaLista(); _RBacklogRep.Update(RB); Session["Lista"] = RBacklogList; return(RedirectToAction("Index")); }
public ActionResult DeleteConfirmed(int id) { ReleaseBacklog releaseBacklog = db.ReleaseBacklogs.Find(id); db.ReleaseBacklogs.Remove(releaseBacklog); db.SaveChanges(); return(RedirectToAction("Index")); }
public void AssignScrumMaster(int employeeID, ReleaseBacklog releaseBacklog, MUMScrumContext db) { var employee = db.Employees.Find(employeeID); employee.Role = Role.ScrumMaster; employee.ReleaseBacklogs.Add(releaseBacklog); db.Entry(employee).State = EntityState.Modified; }
//public ActionResult Edit([Bind(Include = "ID,Name,Description,CreatedBy,CreatedDate,StartDate,ExpectedEndDate,ActualEndDate,ProductBacklogID,ScrumMasterID")] ReleaseBacklog releaseBacklog, string[] selectedUserStories) public ActionResult Edit(int?id, string[] selectedUserStories, string ScrumMasterList) { ReleaseBacklog releaseBacklog = db.ReleaseBacklogs .Include(r => r.UserStories) .Where(r => r.ID == id) .Single(); if (ModelState.IsValid) { UpdateReleaseBacklogUserStories(selectedUserStories, releaseBacklog); if (ScrumMasterList != "") { releaseBacklog.EmployeeID = int.Parse(ScrumMasterList); ////hr interface method has to be given here //var emp = db.Employees.Find(int.Parse(ScrumMasterList)); //emp.Role = Role.ScrumMaster; //emp.ReleaseBacklogs.Add(releaseBacklog); HRInterface hr = new clsHRFacade(); hr.AssignScrumMaster(int.Parse(ScrumMasterList), releaseBacklog, db); } else { //var emp = db.Employees.Find(releaseBacklog.EmployeeID); //if (emp != null) //{ // if (emp.ReleaseBacklogs.Count == 1) // { // emp.Role = null; // } // emp.ReleaseBacklogs.Remove(releaseBacklog); //} HRInterface hr = new clsHRFacade(); hr.RemoveScrumMasterRole(releaseBacklog, db); releaseBacklog.EmployeeID = null; ////hr interface method has to be given here } db.Entry(releaseBacklog).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.ProductBacklogID = new SelectList(db.ProductBacklogs, "ID", "Name", releaseBacklog.ProductBacklogID); PopulateAssignedUserStories(releaseBacklog); return(View(releaseBacklog)); }
// GET: /ReleaseBacklog/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ReleaseBacklog releasebacklog = services.GetById(id.Value); if (releasebacklog == null) { return(HttpNotFound()); } return(View(releasebacklog)); }
// GET: ReleaseBacklog/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ReleaseBacklog releaseBacklog = db.ReleaseBacklogs.Find(id); if (releaseBacklog == null) { return(HttpNotFound()); } return(View(releaseBacklog)); }
public ActionResult Create([Bind(Include = "Id,ReleaseName,Description,ReleaseDate,ProductBacklogId,ScrumMasterId")] ReleaseBacklog releasebacklog) { if (ModelState.IsValid) { services.CreateRelease(releasebacklog); // db.SaveChanges(); return(RedirectToAction("Details", new { Id = releasebacklog.Id })); } Employee User = Utility.GetEmployeeSession(Session); ViewBag.ProductBacklogId = new SelectList(productServices.GetAllProductBackLogsByOwner(User.Id), "Id", "Name", releasebacklog.ProductBacklogId); ViewBag.ScrumMasterId = new SelectList(hr.GetScrumMaster(), "Id", "FirstName", releasebacklog.ScrumMasterId); return(View(releasebacklog)); }
public void RemoveScrumMasterRole(ReleaseBacklog releaseBacklog, MUMScrumContext db) { var employee = db.Employees.Find(releaseBacklog.EmployeeID); if (employee != null) { if (employee.ReleaseBacklogs.Count == 1) { employee.Role = null; } employee.ReleaseBacklogs.Remove(releaseBacklog); db.Entry(employee).State = EntityState.Modified; } }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ReleaseBacklog releasebacklog = services.GetById(id.Value); if (releasebacklog == null) { return(HttpNotFound()); } Employee User = Utility.GetEmployeeSession(Session); ViewBag.ScrumMasterId = new SelectList(hr.GetScrumMaster(), "Id", "FirstName", releasebacklog.ScrumMasterId); ViewBag.ProductBacklogId = new SelectList(productServices.GetAllProductBackLogsByOwner(User.Id), "Id", "Name", releasebacklog.ProductBacklogId); return(View(releasebacklog)); }
public ActionResult Create([Bind(Include = "ID,Name,Description,CreatedBy,CreatedDate,StartDate,ExpectedEndDate,ActualEndDate,ProductBacklogID,EmployeeID")] ReleaseBacklog releaseBacklog, string[] selectedUserStories, string ScrumMasterList) { if (selectedUserStories != null) { releaseBacklog.UserStories = new List <UserStory>(); foreach (var userStory in selectedUserStories) { var userStoryToAdd = db.UserStories.Find(int.Parse(userStory)); releaseBacklog.UserStories.Add(userStoryToAdd); } } if (ScrumMasterList != "") { releaseBacklog.EmployeeID = int.Parse(ScrumMasterList); ////hr interface method has to be given here //var emp = db.Employees.Find(int.Parse(ScrumMasterList)); //emp.Role = Role.ScrumMaster; //emp.ReleaseBacklogs.Add(releaseBacklog); HRInterface hr = new clsHRFacade(); hr.AssignScrumMaster(int.Parse(ScrumMasterList), releaseBacklog, db); } releaseBacklog.CreatedBy = 1; releaseBacklog.CreatedDate = DateTime.Now; if (ModelState.IsValid) { db.ReleaseBacklogs.Add(releaseBacklog); db.SaveChanges(); return(RedirectToAction("Index")); } PopulateAssignedUserStories(releaseBacklog); ViewBag.ProductBacklogID = new SelectList(db.ProductBacklogs, "ID", "Name", releaseBacklog.ProductBacklogID); return(View(releaseBacklog)); }
private void PopulateAssignedUserStories(ReleaseBacklog releaseBacklog) { var allUserStories = db.UserStories.Where(u => u.ReleaseBacklogID == null || u.ReleaseBacklogID == releaseBacklog.ID); var releaseBacklogUserStories = new HashSet <int>(releaseBacklog.UserStories.Select(u => u.ID)); var viewModel = new List <AssignedUserStoryData>(); foreach (var userStory in allUserStories) { viewModel.Add(new AssignedUserStoryData { UserStoryID = userStory.ID, Name = userStory.Name, Assigned = releaseBacklogUserStories.Contains(userStory.ID) }); } ViewBag.UserStories = viewModel; }
// GET: ReleaseBacklog/Create public ActionResult Create() { ViewBag.ProductBacklogID = new SelectList(db.ProductBacklogs, "ID", "Name"); var releaseBacklog = new ReleaseBacklog(); releaseBacklog.UserStories = new List <UserStory>(); PopulateAssignedUserStories(releaseBacklog); // hr interface method has to be given here //ViewBag.ScrumMasters = db.Employees.ToList() // .Where(e => e.Position.EmpPosition == "Senior Software Engineer") // .Select( // e => new { ID = e.ID, Name = e.FirstName + ' ' + e.LastName } // ); HRInterface hr = new clsHRFacade(); ViewBag.ScrumMasters = hr.GetScrumMasters(); return(View()); }
// GET: ReleaseBacklog/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } // hr interface method has to be given here //ViewBag.ScrumMasters = db.Employees.ToList() // .Where(e => e.Position.EmpPosition == "Senior Software Engineer") // .Select( // e => new { ID = e.ID, Name = e.FirstName + ' ' + e.LastName } // ); HRInterface hr = new clsHRFacade(); ViewBag.ScrumMasters = hr.GetScrumMasters(); //ReleaseBacklog releaseBacklog = db.ReleaseBacklogs.Find(id); ReleaseBacklog releaseBacklog = db.ReleaseBacklogs .Include(r => r.UserStories) .Where(r => r.ID == id) .Single(); PopulateAssignedUserStories(releaseBacklog); if (releaseBacklog == null) { return(HttpNotFound()); } ViewBag.ProductBacklogID = new SelectList(db.ProductBacklogs, "ID", "Name", releaseBacklog.ProductBacklogID); return(View(releaseBacklog)); }
protected override void Seed(MUMScrumDbContext context) { context.Roles.Add(new Model.Role() { RoleName = "HR" }); context.Roles.Add(new Model.Role() { RoleName = "ScrumMaster" }); context.Roles.Add(new Model.Role() { RoleName = "ProductOwner" }); context.Roles.Add(new Model.Role() { RoleName = "Developer" }); context.Roles.Add(new Model.Role() { RoleName = "Tester" }); context.SaveChanges(); context.Employees.Add(new Model.Employee { FirstName = "Super", LastName = "Admin", UserName = "******", Password = "******", IsDeactivated = false, RoleId = (int)RoleEnum.HR }); var po = new Model.Employee { FirstName = "John", LastName = "Doe", UserName = "******", Password = "******", IsDeactivated = false, RoleId = (int)RoleEnum.ProductOwner, }; context.Employees.Add(po); var po1 = new Model.Employee { FirstName = "Rabin", LastName = "Doe", UserName = "******", Password = "******", IsDeactivated = false, RoleId = (int)RoleEnum.ProductOwner, }; context.Employees.Add(po1); context.SaveChanges(); context.Employees.Add(new Model.Employee { FirstName = "Grace", LastName = "Monroe", UserName = "******", Password = "******", IsDeactivated = false, RoleId = (int)RoleEnum.Developer, }); context.Employees.Add(new Model.Employee { FirstName = "David", LastName = "Fake", UserName = "******", Password = "******", IsDeactivated = false, RoleId = (int)RoleEnum.Tester, }); context.Employees.Add(new Model.Employee { FirstName = "Jane", LastName = "Roe", UserName = "******", Password = "******", IsDeactivated = false, RoleId = (int)RoleEnum.ScrumMaster, }); context.Employees.Add(new Model.Employee { FirstName = "Sanjeev", LastName = "Rajbanshi", UserName = "******", Password = "******", IsDeactivated = false, RoleId = (int)RoleEnum.ScrumMaster, }); context.SaveChanges(); for (int i = 1; i <= 1; i++) { var newProduct = new Model.ProductBacklog() { Name = "MUMScrum ", Description = "Our MUMScrum - " + i + " Backlog", OwnerId = po.Id }; context.ProductBacklogs.Add(newProduct); } context.SaveChanges(); for (int i = 1; i <= 1; i++) { //var skip = (i - 1) % 5; var product = context.ProductBacklogs.FirstOrDefault(); var newRelease = new ReleaseBacklog() { ReleaseDate = DateTime.Now.Date.AddDays(20), Description = "this release is for the final project presentation of Software Engineering block. Hope it goes all well", ReleaseName = "Release V" + i }; //newRelease.ReleaseDate = DateTime.Now; newRelease.ProductBacklogId = product.Id; newRelease.ScrumMasterId = 6; context.ReleaseBacklogs.Add(newRelease); } context.SaveChanges(); for (int i = 1; i <= 2; i++) { var release = context.ReleaseBacklogs.FirstOrDefault(); var sprint = new Sprint(); sprint.ReleaseBacklogId = release.Id; sprint.Description = "This is new Sprint for this release - " + release.ReleaseName; sprint.SprintRunning = false; if (i == 1) { sprint.StartDate = DateTime.Now.AddDays(-5); sprint.EndDate = DateTime.Now; } else { sprint.StartDate = DateTime.Now; sprint.EndDate = DateTime.Now.Date.AddDays(5); } sprint.SprintName = "Sprint - " + i; context.Sprints.Add(sprint); } context.SaveChanges(); for (int i = 1; i <= 3; i++) { var product = context.ProductBacklogs.FirstOrDefault(); //var pcount = (i - 1) % product.ReleaseBacklogs.Count(); var release = product.ReleaseBacklogs.OrderBy(j => j.Id).FirstOrDefault(); //var rcount = (i - 1) % context.Sprints.Where(j => j.ReleaseBacklogId == release.Id).Count(); var sprint = context.Sprints.Where(j => j.ReleaseBacklogId == release.Id).OrderBy(j => j.Id).FirstOrDefault(); var US = new UserStory() { Title = "UStory - " + i, Description = "This is a " + i + " description", SprintId = sprint.Id, ReleaseId = release.Id, DevelopedId = context.Employees.First(d => d.RoleId == (int)RoleEnum.Developer).Id, TesterId = context.Employees.First(d => d.RoleId == (int)RoleEnum.Tester).Id, ProductBackLogId = product.Id, DevActual = 0, TestActual = 0, DevEstimate = 30, TestEstiamte = 0 }; context.UserStories.Add(US); } context.SaveChanges(); var sprint1 = context.Sprints.FirstOrDefault(); foreach (var us in sprint1.UserStories.ToList()) { var currentdevActual = us.DevActual.Value; var currentdevEstimate = us.DevEstimate.Value; for (int i = 1; i < 5; i++) { var usLog = new UserStoryLog() { ChangedByUserId = us.DevelopedId.Value, Date = sprint1.StartDate.AddDays(i), LogType = LogType.DevActual, NewValue = 5, OldValue = currentdevActual, UserStoryId = us.Id }; us.DevActual += 5; context.UserStoryLogs.Add(usLog); } } context.SaveChanges(); }
public void UpdateRelease(ReleaseBacklog release) { work.ReleaseBacklogsRepository.Update(release); work.SaveChanges(); }
public void RemoveScrumMasterRole(ReleaseBacklog releaseBacklog, MUMScrumContext db) { objEmployee.RemoveScrumMasterRole(releaseBacklog, db); }
public void AssignScrumMaster(int employeeID, ReleaseBacklog releaseBacklog, MUMScrumContext db) { objEmployee.AssignScrumMaster(employeeID, releaseBacklog, db); }
public ActionResult Delete(ReleaseBacklog RB) { CarregaLista(); _RBacklogRep.Delete(RBacklogList.Where(X => X.ID == RB.ID).First()); return(RedirectToAction("Index")); }