protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         //项目下拉框
         DataTable dt = CompanyBusiness.GetCompanyProjects(CompanyCode.ToString());
         ControlHelper.BindListControl(ddlProject, dt, "PROJECTNAME", "PROJECTID");
         ddlProject.Items.Remove(ddlProject.Items.FindByValue(CommonMethod.GetConfigValue("SYSPROJECTID")));
         if (ProjectId > 0)
         {
             ControlHelper.SelectFlg(ddlProject, ProjectId.ToString());
         }
         if (Request.QueryString["pid"] != null)
         {
             ControlHelper.SelectFlg(ddlProject, Enc.Decrypt(Request.QueryString["pid"], UrlEncKey));
         }
         if (ddlProject.Items.Count > 1 && ProjectId == 0) //不是自动登录并且开通项目大于1个
         {
             ExecStartScript("$('#sProject').show();");
         }
         else
         {
             lblTip.Visible = true;
         }
     }
 }
예제 #2
0
    protected void AddProjectSubmit_Click(object sender, EventArgs e)
    {
        Guid ProjectId;

        ProjectId                = Guid.NewGuid();
        IdProjectId.Text         = ProjectId.ToString();
        IdProjectName.Text       = TextBoxProjectName.Text;
        IdProjectCreator.Text    = UserName;
        IdProjectCreatedAt.Text  = DateTime.Now.ToString();
        IdProjectModifier.Text   = UserName;
        IdProjectModifierAt.Text = DateTime.Now.ToString();

        ELProject obj = new ELProject();

        obj.Id         = ProjectId;
        obj.Name       = TextBoxProjectName.Text;
        obj.Creator    = Id;
        obj.CreatedAt  = DateTime.Now;
        obj.Modifier   = Id;
        obj.ModifiedAt = obj.CreatedAt;
        DLProject dLProject = new DLProject();

        dLProject.AddProject(obj, ObjConetion.connectionstring);
        ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert( '" + TextBoxProjectName.Text + " ' );window.location ='ProjectViewPage.aspx';", true);
    }
예제 #3
0
 protected void btnDoneClick(Object s, EventArgs e)
 {
     if (Page.IsValid && SaveIssue())
     {
         Response.Redirect("~/Issues/IssueList.aspx?pid=" + ProjectId.ToString());
     }
 }
예제 #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Convert.ToInt32(HostSettingManager.Get(HostSettingNames.UserRegistration)) == (int)UserRegistration.None)
            {
                if (LoginView1.FindControl("RegisterLink") != null)
                {
                    LoginView1.FindControl("RegisterLink").Visible = false;
                }
            }

            var oHelper = new SuckerFishMenuHelper(ProjectId);

            litMenu.Text = oHelper.GetHtml();

            if (HostSettingManager.Get(HostSettingNames.EnableGravatar, true))
            {
                var user = Membership.GetUser(Security.GetUserName());
                if (user != null)
                {
                    Image img = (System.Web.UI.WebControls.Image)LoginView1.FindControl("Avatar");
                    img.ImageUrl = PresentationUtils.GetGravatarImageUrl(user.Email, 32);
                }
            }

            ProjectsList.DataTextField  = "Name";
            ProjectsList.DataValueField = "Id";

            if (!Page.IsPostBack)
            {
                string localizedSelectProject = GetGlobalResourceObject("SharedResources", "SelectProject").ToString();
                if (Page.User.Identity.IsAuthenticated)
                {
                    ProjectsList.DataSource = ProjectManager.GetByMemberUserName(Security.GetUserName(), true);
                    ProjectsList.DataBind();
                    ProjectsList.Items.Insert(0, new ListItem(localizedSelectProject));
                }
                else if (!Page.User.Identity.IsAuthenticated && Boolean.Parse(HostSettingManager.Get(HostSettingNames.AnonymousAccess)))
                {
                    ProjectsList.DataSource = ProjectManager.GetPublicProjects();
                    ProjectsList.DataBind();
                    ProjectsList.Items.Insert(0, new ListItem(localizedSelectProject));
                }
                else
                {
                    ProjectsList.Visible = false;
                }

                var item = ProjectsList.Items.FindByValue(ProjectId.ToString());

                if (item != null)
                {
                    ProjectsList.SelectedValue = item.Value;
                }
            }
        }
예제 #5
0
 public string[] ToDataView()
 {
     return(new string[]
     {
         ProjectId.ToString(),
         ProjectName,
         ProjectDescription,
         ProjectBegin.ToString("dd/MM/yyyy"),
         ProjectEnd.ToString("dd/MM/yyyy"),
         ProjectMaxhours.ToString()
     });
 }
예제 #6
0
        protected void Page_PreRender(object sender, System.EventArgs e)
        {
            BindToolbar();
            grdTasks.Columns[11].Visible = (_pc["GanttView"] == "1");
            grdTasks.Columns[12].Visible = (_pc["GanttView"] == "1");

            int lx = -1;

            if (_pc["GantChart_Lx_New_" + ProjectId.ToString()] != null)
            {
                lx = int.Parse(_pc["GantChart_Lx_New_" + ProjectId.ToString()]);
            }
            Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(),
                                                    "f_onload(" + lx + ", " + GanttManager.PortionWidth + ");", true);
        }
예제 #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //项目下拉框
                DataTable dt = CompanyBusiness.GetCompanyProjects(CompanyCode.ToString());
                ControlHelper.BindListControl(ddlProject, dt, "PROJECTNAME", "PROJECTID");
                if (ProjectId > 0)
                {
                    ControlHelper.SelectFlg(ddlProject, ProjectId.ToString());
                }

                lblProject.Visible = ddlProject.Visible = (dt != null && dt.Rows.Count > 0 && ProjectId == 0);
                BindData(0);
            }
        }
예제 #8
0
        public async Task <ProjectMetaData> RetrieveDataAsync(string path, ProjectId pid)
        {
            var c = await _gitlab.GetFileContentAsync(pid, path);

            await using var s = new MemoryStream(Encoding.UTF8.GetBytes(c.ContentDecoded));
            s.Seek(0, SeekOrigin.Begin);
            var doc   = XDocument.Load(new XmlTextReader(s));
            var pmeta = new ProjectMetaData
            {
                Id = pid.ToString()
            };

            ExtractFramework(doc, pmeta);
            ExtractDependencies(pmeta, doc.XPathSelectElements("//PackageReference"));
            return(pmeta);
        }
예제 #9
0
        public ServiceModels.ProjectTeamMember Map()
        {
            var projectTeamMember = new ServiceModels.ProjectTeamMember
            {
                Id           = Id.ToString(),
                UserId       = UserId,
                ProjectId    = ProjectId.ToString(),
                ProjectTitle = Project.Title,
            };

            foreach (var roleAssignment in RoleAssignments.OrderBy(r => r.Role))
            {
                projectTeamMember.Roles += roleAssignment.Role + ", ";
            }
            return(projectTeamMember);
        }
예제 #10
0
        public async Task <TeamProject> GetCurrentProject()
        {
            var witClient = Connection.GetClient <ProjectHttpClient>();

            try
            {
                return(await witClient.GetProject(ProjectId.ToString()));
            }
            catch (AggregateException aex)
            {
                VssServiceException vssex = aex.InnerException as VssServiceException;
                if (vssex != null)
                {
                    Console.WriteLine(vssex.Message);
                }
                throw;
            }
        }
예제 #11
0
        public async Task <Stream> GetArtifact(int buildId, string artifactName)
        {
            var witClient = Connection.GetClient <BuildHttpClient>( );

            try
            {
                return(await witClient.GetArtifactContentZipAsync(ProjectId.ToString(), buildId, artifactName));
            }
            catch (AggregateException aex)
            {
                VssServiceException vssex = aex.InnerException as VssServiceException;
                if (vssex != null)
                {
                    Console.WriteLine(vssex.Message);
                }
                throw;
            }
        }
예제 #12
0
        public async Task <IPagedList <Build> > GetProjectBuilds()
        {
            var witClient = Connection.GetClient <BuildHttpClient>();

            try
            {
                return(await witClient.GetBuildsAsync2(ProjectId.ToString()));
            }
            catch (AggregateException aex)
            {
                VssServiceException vssex = aex.InnerException as VssServiceException;
                if (vssex != null)
                {
                    Console.WriteLine(vssex.Message);
                }
                throw;
            }
        }
예제 #13
0
파일: UserStory.cs 프로젝트: chull434/CSAA
        public ServiceModels.UserStory Map()
        {
            var userStory = new ServiceModels.UserStory(Title, Description, ProjectId.ToString())
            {
                UserStoryAcceptanceTests = UserStoryAcceptanceTests.Select(m => m.Map()).ToList(),
                UserStoryTasks           = UserStoryTasks.Select(m => m.Map()).ToList(),
                Id          = Id.ToString(),
                StoryPoints = StoryPoints,
                Priority    = Priority,
                MarketValue = MarketValue
            };

            if (SprintId != null)
            {
                userStory.SprintId    = SprintId.ToString();
                userStory.SprintTitle = Sprint.Title;
            }
            return(userStory);
        }
예제 #14
0
        /// <summary>
        /// Expands the project paths.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="System.Web.SiteMapResolveEventArgs"/> instance containing the event data.</param>
        /// <returns></returns>
        private SiteMapNode ExpandProjectPaths(Object sender, SiteMapResolveEventArgs e)
        {
            var currentNode = SiteMap.CurrentNode.Clone(true);
            var tempNode    = currentNode;

            // The current node, and its parents, can be modified to include
            // dynamic query string information relevant to the currently
            // executing request.
            if (ProjectId != 0)
            {
                tempNode.Url = tempNode.Url + "?pid=" + ProjectId.ToString();
            }

            if ((null != (tempNode = tempNode.ParentNode)) &&
                (ProjectId != 0))
            {
                tempNode.Url = tempNode.Url + "?pid=" + ProjectId.ToString();
            }

            return(currentNode);
        }
예제 #15
0
        internal ICollection <KeyValuePair <string, string> > ToParameters()
        {
            var parameters = new LinkedList <KeyValuePair <string, string> >();

            if (ProjectId.HasValue)
            {
                parameters.AddLast(new KeyValuePair <string, string>("project_id", ProjectId.ToString()));
            }

            if (Limit.HasValue)
            {
                parameters.AddLast(new KeyValuePair <string, string>("limit", Limit.ToString()));
            }

            if (Offset.HasValue)
            {
                parameters.AddLast(new KeyValuePair <string, string>("offset", Offset.ToString()));
            }

            if (Until.HasValue)
            {
                parameters.AddLast(new KeyValuePair <string, string>("until", Until.Value.ToFilterParameter()));
            }

            if (Since.HasValue)
            {
                parameters.AddLast(new KeyValuePair <string, string>("since", Since.Value.ToFilterParameter()));
            }

            if (AnnotateNotes.HasValue)
            {
                parameters.AddLast(
                    new KeyValuePair <string, string>("annotate_notes", AnnotateNotes == true ? "true" : "false"));
            }

            return(parameters);
        }
예제 #16
0
 public override string ToString()
 {
     return(ProjectId.ToString());
 }
예제 #17
0
 private static string GetLogInfo(Checksum checksum, ProjectId projectId)
 {
     return($"{checksum.ToString()} - {projectId.ToString()}");
 }
예제 #18
0
 public override string ToString()
 {
     return(ProjectId.ToString().PadRight(5) + Name.PadRight(35) + StartDate.ToShortDateString().PadRight(15) + EndDate.ToShortDateString().PadRight(15));
 }
예제 #19
0
 private static string GetRemoveLogMessage(ProjectId id)
 => $"project remove: {id.ToString()}";
 private static string GetRemoveLogMessage(ProjectId id)
 {
     return string.Format("project remove: {0}", id.ToString());
 }
예제 #21
0
 protected void DeleteButtonClick(Object s, EventArgs e)
 {
     Issue.DeleteIssue(IssueId);
     Response.Redirect("~/Issues/IssueList.aspx?pid=" + ProjectId.ToString());
 }
예제 #22
0
 protected void CancelButtonClick(Object s, EventArgs e)
 {
     Response.Redirect("~/Issues/IssueList.aspx?pid=" + ProjectId.ToString());
 }
예제 #23
0
        void EIWizard_ActiveStepChanged(object sender, EventArgs e)
        {
            BindStepsLabels();
            if (EIWizard.ActiveStep.ID == "step1")            //bind radio button list hints
            {
                if (IsProjectMSSynchronized || _toMSPrj)      // Sync mode
                {
                    divStep1NotSyncronized.Visible = false;
                    divStep1Syncronized.Visible    = true;
                    switch (rblFirstStep.SelectedValue)
                    {
                    case "UpdateInIBN":
                        lbSUpInIBN.Style.Add(HtmlTextWriterStyle.Display, "");
                        lbSUpInMS.Style.Add(HtmlTextWriterStyle.Display, "none");
                        break;

                    case "UpdateInMS":
                        lbSUpInIBN.Style.Add(HtmlTextWriterStyle.Display, "none");
                        lbSUpInMS.Style.Add(HtmlTextWriterStyle.Display, "");
                        break;
                    }
                }
                else                    // Update mode
                {
                    divStep1NotSyncronized.Visible = true;
                    divStep1Syncronized.Visible    = false;
                    switch (rblFirstStep.SelectedValue)
                    {
                    case "Import":
                        lbNSImport.Style.Add(HtmlTextWriterStyle.Display, "");
                        lbNSExport.Style.Add(HtmlTextWriterStyle.Display, "none");
                        break;

                    case "Export":
                        lbNSImport.Style.Add(HtmlTextWriterStyle.Display, "none");
                        lbNSExport.Style.Add(HtmlTextWriterStyle.Display, "");
                        break;
                    }
                }
            }

            if (EIWizard.ActiveStep.ID == "step3")
            {
                if (!Page.IsValid)
                {
                    EIWizard.MoveTo(this.step4);
                    return;
                }
                if (divStep3Synchronization.Visible)
                {
                    ddCType.Items.Clear();
                    ddCType.Items.Add(new ListItem(GetGlobalResourceObject("IbnFramework.ImportProjectWizard", "tCTAll").ToString(), "All"));
                    ddCType.Items.Add(new ListItem(GetGlobalResourceObject("IbnFramework.ImportProjectWizard", "tCTAny").ToString(), "Any"));
                    BindDataGrid();
                    foreach (DataGridItem dgi in dgMembers.Items)
                    {
                        DropDownList ddl = (DropDownList)dgi.FindControl("ddProjectTeam");
                        CommonHelper.SafeSelect(ddl, dgi.Cells[3].Text);
                    }
                }
                if (divStep3Import.Visible)
                {
                    BindImportDataGrid();
                    foreach (DataGridItem dgi in dgMembersImport.Items)
                    {
                        DropDownList ddl = (DropDownList)dgi.FindControl("ddProjectTeam");
                        CommonHelper.SafeSelect(ddl, dgi.Cells[3].Text);
                    }
                }
            }
            if (EIWizard.ActiveStep.ID == "step4")
            {
                if (!Page.IsValid)
                {
                    ImportSuccessLiteral.Text = GetGlobalResourceObject("IbnFramework.ImportProjectWizard", "tWizardError").ToString();
                }

                if (divExportSuccess.Visible)
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(),
                                                            "OpenWindow('" + this.ResolveClientUrl("~/Projects/GetIBNProjectXML.aspx") + "?ProjectId=" + ProjectId.ToString() + (IsProjectMSSynchronized ? "&Synchronized=true" : "") + "',600,400);", true);
                }
            }
        }
예제 #24
0
 void btnImportAnyway_Click(object sender, EventArgs e)
 {
     if (cbImortAnyway.Checked)
     {
         SaveValues(true);
     }
     this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), Guid.NewGuid().ToString("N"),
                                                  String.Format("try{{window.opener.location.href='{0}';}} catch(e){{}}window.close();", ResolveClientUrl("~/Projects/ProjectView.aspx") + "?ProjectId=" + ProjectId.ToString() + "&Tab=6&ABTab=GanttChart"), true);
 }
예제 #25
0
 private static string GetLogInfo(Checksum checksum, ProjectId projectId)
 {
     return $"{checksum.ToString()} - {projectId.ToString()}";
 }
 private static string GetRemoveLogMessage(ProjectId id)
 {
     return($"project remove: {id.ToString()}");
 }
예제 #27
0
 public override string ToString()
 {
     return($"{DocumentId?.ToString() ?? ProjectId.ToString()}, ({InvocationReasons.ToString()}), LowPriority:{IsLowPriority}, ActiveMember:{ActiveMember != null}, Retry:{IsRetry}, ({string.Join("|", Analyzers.Select(a => a.GetType().Name))})");
 }
예제 #28
0
 public override string ToString()
 {
     return("StoreId = " + StoreId.ToString() + ",StoreName = " + StoreName + ",StoreAddress = " + StoreAddress + ",PhoneNo = " + PhoneNo + ",Email = " + Email + ",ProjectId = " + ProjectId.ToString() + ",CompanyId = " + CompanyId.ToString() + ",Mobile = " + Mobile + ",ContactPerson = " + ContactPerson + ",StoreCF1 = " + StoreCF1 + ",StoreCF2 = " + StoreCF2 + ",StoreCF3 = " + StoreCF3);
 }
예제 #29
0
 private static string GetRemoveLogMessage(ProjectId id)
 {
     return(string.Format("project remove: {0}", id.ToString()));
 }
예제 #30
0
        private void BindToolbar()
        {
            if (this.Parent.Parent is IToolbarLight)
            {
                BlockHeaderLightWithMenu secHeaderLight = (BlockHeaderLightWithMenu)((IToolbarLight)this.Parent.Parent).GetToolBar();
                if (ProjectId > 0 && Project.CanEditFinances(ProjectId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>&nbsp;" + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../projects/AddActualItem.aspx?ProjectId=" + ProjectId.ToString() + "',520,270,false);");
                }
                if (TaskId > 0 && Task.CanViewFinances(TaskId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddActualItem.aspx?TaskID=" + TaskId + "',520,270,false);");
                }
                if (IncidentId > 0 && Incident.CanViewFinances(IncidentId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddActualItem.aspx?IncidentId=" + IncidentId + "',520,270,false);");
                }
                if (DocumentId > 0 && Document.CanViewFinances(DocumentId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddActualItem.aspx?DocumentId=" + DocumentId + "',520,270,false);");
                }
                if (EventId > 0 && CalendarEntry.CanViewFinances(EventId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddActualItem.aspx?EventId=" + EventId + "',520,270,false);");
                }
                if (ToDoId > 0 && Mediachase.IBN.Business.ToDo.CanViewFinances(ToDoId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddActualItem.aspx?ToDoId=" + ToDoId + "',520,270,false);");
                }
            }
            else
            if (this.Parent is IToolbarLight)
            {
                BlockHeaderLightWithMenu secHeaderLight = (BlockHeaderLightWithMenu)((IToolbarLight)this.Parent).GetToolBar();
                secHeaderLight.AddText(LocRM.GetString("tActFinances"));


                if (ProjectId > 0 && Project.CanEditFinances(ProjectId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>&nbsp;" + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../projects/AddActualItem.aspx?ProjectId=" + ProjectId.ToString() + "',520,270,false);");
                }
                if (TaskId > 0 && Task.CanViewFinances(TaskId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddActualItem.aspx?TaskID=" + TaskId + "',520,270,false);");
                }
                if (IncidentId > 0 && Incident.CanViewFinances(IncidentId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddActualItem.aspx?IncidentId=" + IncidentId + "',520,270,false);");
                }
                if (DocumentId > 0 && Document.CanViewFinances(DocumentId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddActualItem.aspx?DocumentId=" + DocumentId + "',520,270,false);");
                }
                if (EventId > 0 && CalendarEntry.CanViewFinances(EventId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddActualItem.aspx?EventId=" + EventId + "',520,270,false);");
                }
                if (ToDoId > 0 && Mediachase.IBN.Business.ToDo.CanViewFinances(ToDoId))
                {
                    secHeaderLight.AddRightLink("<img alt='' src='../Layouts/Images/newitem.gif'/>  " + LocRM.GetString("tbAdd"), "javascript:OpenWindow('../Projects/AddActualItem.aspx?ToDoId=" + ToDoId + "',520,270,false);");
                }
            }
        }
예제 #31
0
파일: Mantis.cs 프로젝트: tohosnet/NBug
        public override bool Send(string fileName, Stream file, Report report, SerializableException exception)
        {
            if (string.IsNullOrEmpty(Username) || Username.Trim().Length == 0)
            {
                throw new ArgumentNullException("Username");
            }

            if (string.IsNullOrEmpty(Password) || Password.Trim().Length == 0)
            {
                throw new ArgumentNullException("Password");
            }

            if (string.IsNullOrEmpty(Url) || Url.Trim().Length == 0)
            {
                throw new ArgumentNullException("Url");
            }

            if (ProjectId <= 0)
            {
                throw new ArgumentNullException("ProjectId");
            }

            if (string.IsNullOrEmpty(Category) || Category.Trim().Length == 0)
            {
                throw new ArgumentNullException("Category");
            }

            if (string.IsNullOrEmpty(Description) || Description.Trim().Length == 0)
            {
                Description = exception.ToString();
            }

            if (string.IsNullOrEmpty(Summary) || Summary.Trim().Length == 0)
            {
                Summary = report.GeneralInfo.ExceptionMessage + " @ " + report.GeneralInfo.TargetSite;
            }

            if (string.IsNullOrEmpty(AdditionalInformation) || AdditionalInformation.Trim().Length == 0)
            {
                AdditionalInformation = report.ToString();
            }

            var service = new MantisConnectService(new BasicHttpBinding(), new EndpointAddress(Url));
            var user    = service.mc_login(Username, Password);

            Logger.Info(String.Format("Successfully logged in to Mantis bug tracker as {0}", user.account_data.real_name));
            var issue = new IssueData();

            issue.date_submitted          = DateTime.Now;
            issue.date_submittedSpecified = true;
            issue.version  = report.GeneralInfo.HostApplicationVersion;
            issue.os       = Environment.OSVersion.ToString();
            issue.os_build = Environment.OSVersion.Version.ToString();
            issue.platform = Environment.OSVersion.Platform.ToString();
            issue.reporter = user.account_data;
            issue.project  = new ObjectRef()
            {
                id = ProjectId.ToString(CultureInfo.InvariantCulture), name = String.Empty
            };
            issue.category               = Category;
            issue.summary                = Summary;
            issue.description            = Description;
            issue.additional_information = AdditionalInformation;
            issue.steps_to_reproduce     = StepsToReproduce;
            issue.severity               = new ObjectRef()
            {
                id = Severity.ToString(CultureInfo.InvariantCulture), name = Severity.ToString(CultureInfo.InvariantCulture)
            };
            issue.status = new ObjectRef()
            {
                id = Status.ToString(CultureInfo.InvariantCulture), name = Status.ToString(CultureInfo.InvariantCulture)
            };
            bool success = false;

            if (AddVersionIfNotExists)
            {
                var versions = service.mc_project_get_versions(Username, Password, ProjectId.ToString(CultureInfo.InvariantCulture));
                if (versions.Count() == 0 ||
                    !versions.Any(x => x.name == report.GeneralInfo.HostApplicationVersion.ToString(CultureInfo.InvariantCulture)))
                {
                    var version = new ProjectVersionData
                    {
                        name                = report.GeneralInfo.HostApplicationVersion.ToString(CultureInfo.InvariantCulture),
                        project_id          = ProjectId.ToString(CultureInfo.InvariantCulture),
                        released            = true,
                        releasedSpecified   = true,
                        date_order          = DateTime.Now,
                        date_orderSpecified = true,
                        description         = "Added by NBug"
                    };
                    var versionId = service.mc_project_version_add(Username, Password, version);
                    Logger.Info(String.Format("Successfully added new version id {0} to Mantis bug tracker", versionId));
                }
            }

            int bugId;

            Int32.TryParse(service.mc_issue_add(Username, Password, issue), out bugId);

            if (bugId > 0)
            {
                Logger.Info(String.Format("Successfully added new issue id {0} to Mantis bug tracker", bugId));
                success = true;
                if (SendAttachment)
                {
                    if (file != null && file.Length > 0)
                    {
                        if (!SuccessIfAttachmentFails)
                        {
                            success = false;
                        }
                        try
                        {
                            var attachment = new byte[file.Length];
                            file.Position = 0;
                            file.Read(attachment, 0, Convert.ToInt32(file.Length));
                            var attachmentId = service.mc_issue_attachment_add(Username, Password, bugId.ToString(CultureInfo.InvariantCulture), fileName, "application/zip", attachment);
                            Logger.Info(String.Format("Successfully added attachment id {0} for isssue id {1} to Mantis bug tracker", attachmentId, bugId));
                            success = true;
                        }
                        catch (Exception ex)
                        {
                            Logger.Error(String.Format("Failed to upload attachment with issue id {0} to Mantis bug tracker{1}{2}", bugId, Environment.NewLine, ex.Message));
                            if (!SuccessIfAttachmentFails)
                            {
                                throw;
                            }
                        }
                    }
                }
            }

            return(success);
        }
예제 #32
0
 /// <summary>
 /// Handles the Click event of the cmdCancel control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
 protected void cmdCancel_Click(object sender, EventArgs e)
 {
     Response.Redirect("~/Administration/Projects/EditProject.aspx?id=" + ProjectId.ToString());
 }