public ActionResult GetRevisionHistory(int workItemId, int revisionId) { QueryManager manager = new QueryManager(); BugSummary summary = manager.ItemByIdForRevision <BugSummary>(workItemId, revisionId); return(Content(summary.History)); }
/// <summary> /// Produces a CSV represenation of the provided <see cref="BugSummary"/>. /// </summary> public static string ToCsv(this BugSummary summary) { StringBuilder builder = new StringBuilder(); builder.Append(((WorkItemSummary)summary).ToCsv()); // Priority builder.Append(summary.Priority); builder.Append(","); // Severity string severity = summary.Severity.Replace("\"", "\"\""); if (severity.IndexOf(",") > -1) { builder.Append("\"" + severity + "\""); } else { builder.Append(severity); } builder.Append(","); return(builder.AppendLine().ToString()); }
public ActionResult Edit(int id, string fromUrl) { QueryManager manager = new QueryManager(); BugSummary item = manager.ItemById <BugSummary>(id); item.IsNew = false; // Change the user's current project if this work item is different. // The project can be different if they've come from the stored queries page. if (item.ProjectName != UserContext.Current.CurrentProject.Name) { UserContext.Current.ChangeCurrentProject(item.ProjectName); } MSAgileEditData <BugSummary> data = new MSAgileEditData <BugSummary>(); data.WorkItem = item; data.PageTitle = "Bug " + id; data.FromUrl = fromUrl; data.States = item.ValidStates; data.Reasons = item.ValidReasons; data.Priorities = item.ValidPriorities; data.Severities = item.ValidSeverities; return(View(data)); }
/// <summary> /// Overrides the base <see cref="WorkItemManager.Close"/> method to modify the behaviour so that a resolved by field is included. /// </summary> public override void Close(int id) { try { QueryManager manager = new QueryManager(); BugSummary summary = manager.ItemById <BugSummary>(id); summary.ResolvedBy = UserContext.Current.Name; summary.State = "Closed"; Save(summary); } catch (Exception ex) { throw new SaveException(ex, "Unable to close Bug work item {0}", id); } }
/// <summary> /// Overrides the base <see cref="WorkItemManager.NewItem"/> method to include the severity and priority fields. /// </summary> public override WorkItemSummary NewItem() { BugSummary summary = new BugSummary(); WorkItem item = base.CreateWorkItem(summary.WorkItemType, summary); summary.PopulateAllowedValues(item); // Check if it Priority exists as Agile 4 templates don't have it if (item.Fields.Contains("Priority")) summary.Priority = int.Parse(summary.ValidPriorities[0]); // Check if it Severity exists as Agile 4 templates don't have it if (item.Fields.Contains("Severity")) summary.Severity = summary.ValidSeverities[0]; return summary; }
public ActionResult New(string id) { BugManager manager = new BugManager(); BugSummary summary = (BugSummary)manager.NewItem(); if (!string.IsNullOrWhiteSpace(id)) { summary.Title = id; } MSAgileEditData <BugSummary> data = new MSAgileEditData <BugSummary>(); data.PageTitle = "New bug"; data.States = summary.ValidStates; data.Reasons = summary.ValidReasons; data.Priorities = summary.ValidPriorities; data.Severities = summary.ValidSeverities; data.WorkItem = summary; return(View("Edit", data)); }
/// <summary> /// Overrides the base <see cref="WorkItemManager.NewItem"/> method to include the severity and priority fields. /// </summary> public override WorkItemSummary NewItem() { BugSummary summary = new BugSummary(); WorkItem item = base.CreateWorkItem(summary.WorkItemType, summary); summary.PopulateAllowedValues(item); // Check if it Priority exists as Agile 4 templates don't have it if (item.Fields.Contains("Priority")) { summary.Priority = int.Parse(summary.ValidPriorities[0]); } // Check if it Severity exists as Agile 4 templates don't have it if (item.Fields.Contains("Severity")) { summary.Severity = summary.ValidSeverities[0]; } return(summary); }
public ActionResult Edit(BugSummary item,string fromUrl) { BugManager manager = new BugManager(); try { item.IsNew = false; manager.Save(item); // Save the files once it's saved (as we can't add an AttachmentsCollection as it has no constructors) if (Request.Files.Count > 0) { try { // Save to the App_Data folder. List<Attachment> attachments = new List<Attachment>(); string filename1 = SaveFile("uploadFile1", item.Id); string filename2 = SaveFile("uploadFile2", item.Id); string filename3 = SaveFile("uploadFile3", item.Id); if (!string.IsNullOrEmpty(filename1)) { attachments.Add(new Attachment(filename1, Request.Form["uploadFile1Comments"])); } if (!string.IsNullOrEmpty(filename2)) { attachments.Add(new Attachment(filename2, Request.Form["uploadFile2Comments"])); } if (!string.IsNullOrEmpty(filename3)) { attachments.Add(new Attachment(filename3, Request.Form["uploadFile3Comments"])); } manager.SaveAttachments(item.Id, attachments); } catch (IOException e) { TempData["Error"] = e.Message; return RedirectToAction("Edit", new { id = item.Id }); } } if (string.IsNullOrEmpty(fromUrl)) return RedirectToAction("View", new { id = item.Id }); else return Redirect(fromUrl); } catch (SaveException e) { TempData["Error"] = e.Message; // Get the original back, to populate the valid reasons. QueryManager queryManager = new QueryManager(); BugSummary summary = queryManager.ItemById<BugSummary>(item.Id); summary.IsNew = false; // Repopulate from the POST'd data summary.Title = item.Title; summary.State = item.State; summary.Reason = item.Reason; summary.Priority = item.Priority; summary.Severity = item.Severity; summary.Description = item.Description; summary.AssignedTo = item.AssignedTo; summary.AreaId = item.AreaId; summary.AreaPath = item.AreaPath; summary.IterationId = item.IterationId; summary.IterationPath = item.IterationPath; MSAgileEditData<BugSummary> data = new MSAgileEditData<BugSummary>(); data.WorkItem = summary; data.PageTitle = "Bug " + item.Id; data.FromUrl = fromUrl; data.States = summary.ValidStates; data.Reasons = summary.ValidReasons; data.Priorities = summary.ValidPriorities; data.Severities = summary.ValidSeverities; return View(data); } }
public ActionResult New(BugSummary item) { BugManager manager = new BugManager(); try { item.CreatedBy = UserContext.Current.Name; item.IsNew = true; manager.Save(item); // item.Id is updated // Save the files once it's saved (as we can't add an AttachmentsCollection as it has no constructors) if (Request.Files.Count > 0) { try { // Save to the App_Data folder. List <Attachment> attachments = new List <Attachment>(); string filename1 = SaveFile("uploadFile1", item.Id); string filename2 = SaveFile("uploadFile2", item.Id); string filename3 = SaveFile("uploadFile3", item.Id); if (!string.IsNullOrEmpty(filename1)) { attachments.Add(new Attachment(filename1, Request.Form["uploadFile1Comments"])); } if (!string.IsNullOrEmpty(filename2)) { attachments.Add(new Attachment(filename2, Request.Form["uploadFile2Comments"])); } if (!string.IsNullOrEmpty(filename3)) { attachments.Add(new Attachment(filename3, Request.Form["uploadFile3Comments"])); } manager.SaveAttachments(item.Id, attachments); } catch (IOException e) { TempData["Error"] = e.Message; return(RedirectToAction("Edit", new { id = item.Id })); } } return(RedirectToAction("Index")); } catch (SaveException e) { TempData["Error"] = e.Message; // Get the original back, to populate the valid reasons. QueryManager queryManager = new QueryManager(); BugSummary summary = queryManager.ItemById <BugSummary>(item.Id); summary.IsNew = false; // Repopulate from the POST'd data summary.Title = item.Title; summary.State = item.State; summary.Reason = item.Reason; summary.Priority = item.Priority; summary.Severity = item.Severity; summary.Description = item.Description; summary.AssignedTo = item.AssignedTo; summary.AreaId = item.AreaId; summary.AreaPath = item.AreaPath; summary.IterationId = item.IterationId; summary.IterationPath = item.IterationPath; MSAgileEditData <BugSummary> data = new MSAgileEditData <BugSummary>(); data.WorkItem = summary; data.PageTitle = "Bug " + item.Id; data.States = summary.ValidStates; data.Reasons = summary.ValidReasons; data.Priorities = summary.ValidPriorities; data.Severities = summary.ValidSeverities; return(View(data)); } }