protected void Page_Load(object sender, EventArgs e) { Int64 forReportingServerId = 0; if (MercuryApplication == null) { return; } if ((!MercuryApplication.HasEnvironmentPermission(Mercury.Server.EnvironmentPermissions.ReportingServerReview)) && (!MercuryApplication.HasEnvironmentPermission(Mercury.Server.EnvironmentPermissions.ReportingServerManage))) { Response.Redirect("/PermissionDenied.aspx", true); return; } if (!Page.IsPostBack) { #region Initial Page Load if (Request.QueryString["ReportingServerId"] != null) { forReportingServerId = Int64.Parse(Request.QueryString["ReportingServerId"]); } if (forReportingServerId != 0) { reportingServer = MercuryApplication.ReportingServerGet(forReportingServerId, false); if (reportingServer == null) { reportingServer = new Mercury.Client.Reporting.ReportingServer(MercuryApplication); } } else { reportingServer = new Mercury.Client.Reporting.ReportingServer(MercuryApplication); } InitializeAll(); Session[SessionCachePrefix + "ReportingServer"] = reportingServer; Session[SessionCachePrefix + "ReportingServerUnmodified"] = reportingServer.Copy(); #endregion } // Initial Page Load else // Postback { reportingServer = (Mercury.Client.Reporting.ReportingServer)Session[SessionCachePrefix + "ReportingServer"]; } ApplySecurity(); if (!String.IsNullOrEmpty(reportingServer.Name)) { Page.Title = "Reporting Server - " + reportingServer.Name; } else { Page.Title = "Reporting Server"; } return; }
protected Boolean ApplyChanges() { Boolean isModified = false; Boolean success = false; Mercury.Client.Reporting.ReportingServer reportingServerUnmodified = (Mercury.Client.Reporting.ReportingServer)Session[SessionCachePrefix + "ReportingServerUnmodified"]; if (reportingServerUnmodified.Id == 0) { isModified = true; } reportingServer.Name = ReportingServerName.Text.Trim(); reportingServer.Description = ReportingServerDescription.Text.Trim(); reportingServer.Enabled = ReportingServerEnabled.Checked; reportingServer.Visible = ReportingServerVisible.Checked; reportingServer.AssemblyPath = ReportingServerAssemblyPath.Text; reportingServer.AssemblyName = ReportingServerAssemblyName.Text; reportingServer.AssemblyClassName = ReportingServerAssemblyClassName.Text; reportingServer.WebServiceHostConfiguration.Server = ReportingServerConfigurationServerName.Text; reportingServer.WebServiceHostConfiguration.BindingConfiguration.Protocol = ReportingServerConfigurationBindingProtocol.Text; reportingServer.WebServiceHostConfiguration.Port = Convert.ToInt32(ReportingServerConfigurationPort.Value); reportingServer.WebServiceHostConfiguration.ServicePath = ReportingServerConfigurationServicePath.Text; reportingServer.WebServiceHostConfiguration.ServiceName = ReportingServerConfigurationServiceName.Text; reportingServer.WebServiceHostConfiguration.BindingConfiguration.BindingType = (Mercury.Server.Application.WebServiceBindingType) Convert.ToInt32(ReportingServerConfigurationBindingTypeSelection.SelectedValue); reportingServer.WebServiceHostConfiguration.BindingConfiguration.TimeoutOpen = new TimeSpan(0, Convert.ToInt32(ReportingServerConfigurationBindingTimeout.Value), 0); reportingServer.WebServiceHostConfiguration.BindingConfiguration.TimeoutClose = new TimeSpan(0, Convert.ToInt32(ReportingServerConfigurationBindingTimeout.Value), 0); reportingServer.WebServiceHostConfiguration.BindingConfiguration.TimeoutSend = new TimeSpan(0, Convert.ToInt32(ReportingServerConfigurationBindingTimeout.Value), 0); reportingServer.WebServiceHostConfiguration.BindingConfiguration.TimeoutReceive = new TimeSpan(0, Convert.ToInt32(ReportingServerConfigurationBindingTimeout.Value), 0); reportingServer.WebServiceHostConfiguration.BindingConfiguration.SecurityMode = (System.ServiceModel.BasicHttpSecurityMode) Convert.ToInt32(ReportingServerConfigurationBindingSecurityMode.SelectedValue); reportingServer.WebServiceHostConfiguration.BindingConfiguration.TransportCredentialType = (System.ServiceModel.HttpClientCredentialType) Convert.ToInt32(ReportingServerConfigurationBindingTransportCredential.SelectedValue); reportingServer.WebServiceHostConfiguration.BindingConfiguration.MessageCredentialType = (System.ServiceModel.MessageCredentialType) Convert.ToInt32(ReportingServerConfigurationBindingMessageCredential.SelectedValue); reportingServer.WebServiceHostConfiguration.ClientCredentials.Domain = ReportingServerConfigurationClientCredentialsDomain.Text; reportingServer.WebServiceHostConfiguration.ClientCredentials.UserName = ReportingServerConfigurationClientCredentialsUserName.Text; reportingServer.WebServiceHostConfiguration.ClientCredentials.Password = ReportingServerConfigurationClientCredentialsPassword.Text; reportingServer.WebServiceHostConfiguration.ClientCredentials.WindowsImpersonationLevel = (System.Security.Principal.TokenImpersonationLevel) Convert.ToInt32(ReportingServerConfigurationClientCredentialsImpersonation.SelectedValue); if (!isModified) { isModified = !reportingServer.IsEqual(reportingServerUnmodified); } if (isModified) { success = MercuryApplication.ReportingServerSave(reportingServer); if (success) { reportingServer = MercuryApplication.ReportingServerGet(reportingServer.Id, false); Session[SessionCachePrefix + "ReportingServer"] = reportingServer; Session[SessionCachePrefix + "ReportingServerUnmodified"] = reportingServer.Copy(); SaveResponseLabel.Text = "Save Successful"; InitializeAll(); } else { SaveResponseLabel.Text = "Unable to Save."; if (MercuryApplication.LastException != null) { SaveResponseLabel.Text = SaveResponseLabel.Text + " [" + MercuryApplication.LastException.Message + "]"; } success = false; } } else { SaveResponseLabel.Text = "No Changes Detected."; success = true; } return(success); }