Beispiel #1
0
        public ActionResult Edit(int id, string fromUrl)
        {
            QueryManager manager = new QueryManager();
            IssueSummary item    = manager.ItemById <IssueSummary>(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 <IssueSummary> data = new MSAgileEditData <IssueSummary>();

            data.WorkItem   = item;
            data.PageTitle  = "Issue " + id;
            data.FromUrl    = fromUrl;
            data.States     = item.ValidStates;
            data.Reasons    = item.ValidReasons;
            data.Priorities = item.ValidPriorities;

            return(View(data));
        }
        /// <summary>
        /// Overrides the base <see cref="WorkItemManager.NewItem"/> method to include remaining work,completed work hours and priority fields.
        /// </summary>
        public override WorkItemSummary NewItem()
        {
            IssueSummary summary = new IssueSummary();
            WorkItem item = CreateWorkItem(summary.WorkItemType, summary);

            summary.PopulateAllowedValues(item);

            // Not sure if Issues have priority in Agile 4, so add a check (needs confirming)
            if (item.Fields.Contains("Priority"))
                summary.Priority = int.Parse(summary.ValidPriorities[0]);

            return summary;
        }
Beispiel #3
0
        /// <summary>
        /// Overrides the base <see cref="WorkItemManager.NewItem"/> method to include remaining work,completed work hours and priority fields.
        /// </summary>
        public override WorkItemSummary NewItem()
        {
            IssueSummary summary = new IssueSummary();
            WorkItem     item    = CreateWorkItem(summary.WorkItemType, summary);

            summary.PopulateAllowedValues(item);

            // Not sure if Issues have priority in Agile 4, so add a check (needs confirming)
            if (item.Fields.Contains("Priority"))
            {
                summary.Priority = int.Parse(summary.ValidPriorities[0]);
            }

            return(summary);
        }
Beispiel #4
0
        /// <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)
        {
            QueryManager manager = new QueryManager();

            try
            {
                IssueSummary summary = manager.ItemById <IssueSummary>(id);
                summary.ResolvedBy = UserContext.Current.Name;
                summary.State      = "Closed";
                Save(summary);
            }
            catch (Exception ex)
            {
                throw new SaveException(ex, "Unable to close Issue work item {0}", id);
            }
        }
Beispiel #5
0
        public ActionResult New(string id)
        {
            IssueManager manager = new IssueManager();
            IssueSummary summary = (IssueSummary)manager.NewItem();

            if (!string.IsNullOrWhiteSpace(id))
            {
                summary.Title = id;
            }

            MSAgileEditData <IssueSummary> data = new MSAgileEditData <IssueSummary>();

            data.PageTitle  = "New issue";
            data.States     = summary.ValidStates;
            data.Reasons    = summary.ValidReasons;
            data.Priorities = summary.ValidPriorities;
            data.WorkItem   = summary;

            return(View("Edit", data));
        }
Beispiel #6
0
        public ActionResult New(IssueSummary item)
        {
            IssueManager manager = new IssueManager();

            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();
                IssueSummary summary      = queryManager.ItemById <IssueSummary>(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.Description   = item.Description;
                summary.AssignedTo    = item.AssignedTo;
                summary.AreaId        = item.AreaId;
                summary.AreaPath      = item.AreaPath;
                summary.IterationId   = item.IterationId;
                summary.IterationPath = item.IterationPath;

                MSAgileEditData <IssueSummary> data = new MSAgileEditData <IssueSummary>();
                data.WorkItem   = summary;
                data.PageTitle  = "Issue " + item.Id;
                data.States     = summary.ValidStates;
                data.Reasons    = summary.ValidReasons;
                data.Priorities = summary.ValidPriorities;

                return(View(data));
            }
        }
        public ActionResult Edit(IssueSummary item, string fromUrl)
        {
            IssueManager manager = new IssueManager();

            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();
                IssueSummary summary = queryManager.ItemById<IssueSummary>(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.Description = item.Description;
                summary.AssignedTo = item.AssignedTo;
                summary.AreaId = item.AreaId;
                summary.AreaPath = item.AreaPath;
                summary.IterationId = item.IterationId;
                summary.IterationPath = item.IterationPath;

                MSAgileEditData<IssueSummary> data = new MSAgileEditData<IssueSummary>();
                data.WorkItem = summary;
                data.PageTitle = "Issue " + item.Id;
                data.FromUrl = fromUrl;
                data.States = summary.ValidStates;
                data.Reasons = summary.ValidReasons;
                data.Priorities = summary.ValidPriorities;

                return View(data);
            }
        }