本文整理汇总了C#中ICruiseRequest.RetrieveSessionToken方法的典型用法代码示例。如果您正苦于以下问题:C# ICruiseRequest.RetrieveSessionToken方法的具体用法?C# ICruiseRequest.RetrieveSessionToken怎么用?C# ICruiseRequest.RetrieveSessionToken使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICruiseRequest
的用法示例。
在下文中一共展示了ICruiseRequest.RetrieveSessionToken方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateAuditHistory
private IResponse GenerateAuditHistory(ICruiseRequest request)
{
var velocityContext = new Hashtable();
var links = new List<IAbsoluteLink>();
links.Add(new ServerLink(request.UrlBuilder, request.ServerSpecifier, "Server", ActionName));
ProjectStatusListAndExceptions projects = farmService.GetProjectStatusListAndCaptureExceptions(request.ServerSpecifier, request.RetrieveSessionToken());
foreach (ProjectStatusOnServer projectStatusOnServer in projects.StatusAndServerList)
{
DefaultProjectSpecifier projectSpecifier = new DefaultProjectSpecifier(projectStatusOnServer.ServerSpecifier, projectStatusOnServer.ProjectStatus.Name);
links.Add(new ProjectLink(request.UrlBuilder, projectSpecifier, projectSpecifier.ProjectName, ServerAuditHistoryServerPlugin.ActionName));
}
velocityContext["projectLinks"] = links;
string sessionToken = request.RetrieveSessionToken(sessionRetriever);
if (!string.IsNullOrEmpty(request.ProjectName))
{
velocityContext["currentProject"] = request.ProjectName;
AuditFilterBase filter = AuditFilters.ByProject(request.ProjectName);
velocityContext["auditHistory"] = farmService.ReadAuditRecords(request.ServerSpecifier, sessionToken, 0, 100, filter);
}
else
{
velocityContext["auditHistory"] = new ServerLink(request.UrlBuilder, request.ServerSpecifier, string.Empty, DiagnosticsActionName);
velocityContext["auditHistory"] = farmService.ReadAuditRecords(request.ServerSpecifier, sessionToken, 0, 100);
}
return viewGenerator.GenerateView(@"AuditHistory.vm", velocityContext);
}
示例2: Execute
public IResponse Execute(ICruiseRequest request)
{
Hashtable velocityContext = new Hashtable();
var links = new List<IAbsoluteLink>();
links.Add(new ServerLink(request.UrlBuilder, request.ServerSpecifier, "Server Security Configuration", ActionName));
ProjectStatusListAndExceptions projects = farmService.GetProjectStatusListAndCaptureExceptions(request.ServerSpecifier, request.RetrieveSessionToken());
foreach (ProjectStatusOnServer projectStatusOnServer in projects.StatusAndServerList)
{
DefaultProjectSpecifier projectSpecifier = new DefaultProjectSpecifier(projectStatusOnServer.ServerSpecifier, projectStatusOnServer.ProjectStatus.Name);
links.Add(new ProjectLink(request.UrlBuilder, projectSpecifier, projectSpecifier.ProjectName, ServerSecurityConfigurationServerPlugin.ActionName));
}
velocityContext["projectLinks"] = links;
string sessionToken = request.RetrieveSessionToken(sessionRetriever);
string securityConfig = farmService.GetServerSecurity(request.ServerSpecifier, sessionToken);
XmlDocument document = new XmlDocument();
document.LoadXml(securityConfig);
if (string.IsNullOrEmpty(request.ProjectName))
{
securityConfig = document.SelectSingleNode("/security/manager").OuterXml;
}
else
{
velocityContext["currentProject"] = request.ProjectSpecifier.ProjectName;
string xpath = string.Format(System.Globalization.CultureInfo.CurrentCulture,"/security/projects/projectSecurity[name='{0}']/authorisation", request.ProjectSpecifier.ProjectName);
securityConfig = document.SelectSingleNode(xpath).OuterXml;
}
string xmlData = FormatXml(securityConfig);
velocityContext["log"] = xmlData;
return viewGenerator.GenerateView(@"SecurityConfiguration.vm", velocityContext);
}
示例3: Execute
public IResponse Execute(ICruiseRequest request)
{
Hashtable velocityContext = new Hashtable();
var links = new List<IAbsoluteLink>();
links.Add(new ServerLink(urlBuilder, request.ServerSpecifier, "Server Log", ActionName));
ProjectStatusListAndExceptions projects = farmService.GetProjectStatusListAndCaptureExceptions(request.ServerSpecifier,
request.RetrieveSessionToken());
foreach (ProjectStatusOnServer projectStatusOnServer in projects.StatusAndServerList)
{
DefaultProjectSpecifier projectSpecifier = new DefaultProjectSpecifier(projectStatusOnServer.ServerSpecifier, projectStatusOnServer.ProjectStatus.Name);
links.Add(new ProjectLink(urlBuilder, projectSpecifier, projectSpecifier.ProjectName, ServerLogProjectPlugin.ActionName));
}
velocityContext["projectLinks"] = links;
if (string.IsNullOrEmpty(request.ProjectName))
{
velocityContext["log"] = HttpUtility.HtmlEncode(farmService.GetServerLog(request.ServerSpecifier, request.RetrieveSessionToken()));
}
else
{
velocityContext["currentProject"] = request.ProjectSpecifier.ProjectName;
velocityContext["log"] = HttpUtility.HtmlEncode(farmService.GetServerLog(request.ProjectSpecifier, request.RetrieveSessionToken()));
}
return viewGenerator.GenerateView(@"ServerLog.vm", velocityContext);
}
示例4: Execute
public IResponse Execute(ICruiseRequest cruiseRequest)
{
if (xslFileName == null)
{
throw new ApplicationException("XSL File Name has not been set for XSL Report Action");
}
Hashtable xsltArgs = new Hashtable();
if (cruiseRequest.Request.ApplicationPath == "/")
{
xsltArgs["applicationPath"] = string.Empty;
}
else
{
xsltArgs["applicationPath"] = cruiseRequest.Request.ApplicationPath;
}
// Add the input parameters
if (Parameters != null)
{
foreach (var parameter in Parameters)
{
xsltArgs.Add(parameter.Name, parameter.Value);
}
}
return new HtmlFragmentResponse(buildLogTransformer.Transform(cruiseRequest.BuildSpecifier, new string[] {xslFileName}, xsltArgs, cruiseRequest.RetrieveSessionToken()));
}
示例5: LoadHtmlFile
/// <summary>
/// Loads the HTML file.
/// </summary>
/// <returns></returns>
private string LoadHtmlFile(ICruiseRequest cruiseRequest, string fileName)
{
try
{
// Retrieve the file transfer object
var fileTransfer = farmService.RetrieveFileTransfer(cruiseRequest.BuildSpecifier, fileName, cruiseRequest.RetrieveSessionToken());
if (fileTransfer != null)
{
// Transfer the file across and load it into a string
var stream = new MemoryStream();
fileTransfer.Download(stream);
stream.Seek(0, SeekOrigin.Begin);
var reader = new StreamReader(stream);
string htmlData = reader.ReadToEnd();
return htmlData;
}
else
{
return "<div>Unable to find file</div>";
}
}
catch (Exception error)
{
return "<div>An error occurred while retrieving the file: " + error.Message + "</div>";
}
}
示例6: Execute
public IResponse Execute(ICruiseRequest cruiseRequest)
{
string fileName = cruiseRequest.Request.GetText("file").Replace("/", "\\");
if (fileName.EndsWith(".html", StringComparison.InvariantCultureIgnoreCase) ||
fileName.EndsWith(".htm", StringComparison.InvariantCultureIgnoreCase))
{
var htmlData = LoadHtmlFile(cruiseRequest, fileName);
var prefixPos = fileName.LastIndexOf("\\");
var prefix = prefixPos >= 0 ? fileName.Substring(0, prefixPos + 1) : string.Empty;
MatchEvaluator evaluator = (match) =>
{
var splitPos = match.Value.IndexOf("=\"");
var newValue = match.Value.Substring(0, splitPos + 2) +
"RetrieveBuildFile.aspx?file=" +
prefix +
match.Value.Substring(splitPos + 2);
return newValue;
};
htmlData = linkFinder.Replace(htmlData, evaluator);
return new HtmlFragmentResponse(htmlData);
}
else
{
// Retrieve the file transfer object
var fileTransfer = farmService.RetrieveFileTransfer(cruiseRequest.BuildSpecifier, fileName, cruiseRequest.RetrieveSessionToken());
if (fileTransfer != null)
{
return new FileTransferResponse(fileTransfer, fileName);
}
else
{
return new HtmlFragmentResponse("<div>Unable to find file</div>");
}
}
}
示例7: Execute
public IResponse Execute(ICruiseRequest cruiseRequest)
{
Hashtable velocityContext = new Hashtable();
velocityContext["message"] = string.Empty;
velocityContext["error"] = string.Empty;
string oldPassword = cruiseRequest.Request.GetText("oldPassword");
string newPassword1 = cruiseRequest.Request.GetText("newPassword1");
string newPassword2 = cruiseRequest.Request.GetText("newPassword2");
if (!string.IsNullOrEmpty(oldPassword) &&
!string.IsNullOrEmpty(newPassword1))
{
try
{
if (newPassword1 != newPassword2) throw new CruiseControlException("New passwords do not match");
string sessionToken = cruiseRequest.RetrieveSessionToken();
farmService.ChangePassword(cruiseRequest.ServerName, sessionToken, oldPassword, newPassword1);
velocityContext["message"] = "Password has been changed";
}
catch (Exception error)
{
velocityContext["error"] = error.Message;
}
}
return viewGenerator.GenerateView("ChangePasswordAction.vm", velocityContext);
}
示例8: Execute
public IResponse Execute(ICruiseRequest request)
{
var velocityContext = new Hashtable();
this.translations = Translations.RetrieveCurrent();
var projectStatus = farmService.GetProjectStatusListAndCaptureExceptions(request.RetrieveSessionToken());
var urlBuilder = request.UrlBuilder;
var category = request.Request.GetText("Category");
var gridRows = this.projectGrid.GenerateProjectGridRows(projectStatus.StatusAndServerList, BaseActionName,
ProjectGridSortColumn.Category, true,
category, urlBuilder,this.translations);
var categories = new SortedDictionary<string, CategoryInformation>();
foreach (var row in gridRows)
{
var rowCategory = row.Category;
CategoryInformation categoryRows;
if (!categories.TryGetValue(rowCategory, out categoryRows))
{
categoryRows = new CategoryInformation(rowCategory);
categories.Add(rowCategory, categoryRows);
}
categoryRows.AddRow(row);
}
velocityContext["categories"] = categories.Values;
return viewGenerator.GenerateView("CategorizedFarmReport.vm", velocityContext);
}
示例9: Execute
/// <summary>
/// Executes the specified cruise request.
/// </summary>
/// <param name="cruiseRequest">The cruise request.</param>
/// <returns></returns>
public IResponse Execute(ICruiseRequest cruiseRequest)
{
ProjectStatusListAndExceptions projectStatuses = farmService.GetProjectStatusListAndCaptureExceptions(cruiseRequest.ServerSpecifier,
cruiseRequest.RetrieveSessionToken(sessionRetriever));
ProjectStatus projectStatus = projectStatuses.GetStatusForProject(cruiseRequest.ProjectName);
string xml = new CruiseXmlWriter().Write(projectStatus);
return new XmlFragmentResponse(xml);
}
示例10: Execute
public IResponse Execute(ICruiseRequest cruiseRequest)
{
Hashtable velocityContext = new Hashtable();
string sessionToken = cruiseRequest.RetrieveSessionToken();
if (!string.IsNullOrEmpty(sessionToken))
farmService.Logout(cruiseRequest.ServerName, sessionToken);
storer.StoreSessionToken(null);
return viewGenerator.GenerateView("LoggedOut.vm", velocityContext);
}
示例11: Execute
public IResponse Execute(ICruiseRequest request)
{
IProjectSpecifier projectSpecifier = request.ProjectSpecifier;
bool purgeWorkingDirectory = request.Request.GetChecked("PurgeWorkingDirectory");
bool purgeArtifactDirectory = request.Request.GetChecked("PurgeArtifactDirectory");
bool purgeSourceControlEnvironment = request.Request.GetChecked("PurgeSourceControlEnvironment");
farmService.DeleteProject(projectSpecifier, purgeWorkingDirectory, purgeArtifactDirectory, purgeSourceControlEnvironment, request.RetrieveSessionToken());
return viewBuilder.BuildView(BuildModel(projectSpecifier, purgeWorkingDirectory, purgeArtifactDirectory, purgeSourceControlEnvironment));
}
示例12: Execute
public IResponse Execute(ICruiseRequest cruiseRequest)
{
IProjectSpecifier projectSpecifier = cruiseRequest.ProjectSpecifier;
string projectXml = cruiseManager.GetProject(projectSpecifier, cruiseRequest.RetrieveSessionToken());
//return new HtmlFragmentResponse("<pre><code>" + HttpUtility.HtmlEncode(FormatXml(projectXml)) + "</code></pre>");
var xmlContext = new Hashtable();
xmlContext["xml"] = HttpUtility.HtmlEncode(FormatXml(projectXml));
return viewGenerator.GenerateView(@"ProjectConfiguration.vm", xmlContext);
}
示例13: Execute
public IResponse Execute(ICruiseRequest request)
{
var velocityContext = new Hashtable();
this.translations = Translations.RetrieveCurrent();
var projectStatus = farmService.GetProjectStatusListAndCaptureExceptions(request.RetrieveSessionToken());
var urlBuilder = request.UrlBuilder;
var category = request.Request.GetText("Category");
var sessionToken = request.RetrieveSessionToken();
velocityContext["forceBuildMessage"] = ForceBuildIfNecessary(request.Request, sessionToken);
var gridRows = this.projectGrid.GenerateProjectGridRows(projectStatus.StatusAndServerList, BaseActionName,
ProjectGridSortColumn.Category, true,
category, urlBuilder, this.translations);
var categories = new SortedDictionary<string, CategoryInformation>();
foreach (var row in gridRows)
{
var rowCategory = row.Category;
CategoryInformation categoryRows;
if (!categories.TryGetValue(rowCategory, out categoryRows))
{
categoryRows = new CategoryInformation(rowCategory);
categories.Add(rowCategory, categoryRows);
}
categoryRows.AddRow(row);
}
// there is a category specified via a link, so expand that category by default
// it's annoying to specify a category and still have to press the show link
if (!string.IsNullOrEmpty(category))
{
categories[category].Display = true;
}
velocityContext["categories"] = categories.Values;
return viewGenerator.GenerateView("CategorizedFarmReport.vm", velocityContext);
}
示例14: Execute
public IResponse Execute(ICruiseRequest cruiseRequest)
{
string fileName = cruiseRequest.Request.GetText("file");
string label = cruiseRequest.Request.GetText("label");
string path = fileName;
if (!string.IsNullOrEmpty(label)) path = Path.Combine(label, fileName);
RemotingFileTransfer fileTransfer = farmService.RetrieveFileTransfer(cruiseRequest.ProjectSpecifier, path, cruiseRequest.RetrieveSessionToken());
FileTransferResponse response = new FileTransferResponse(fileTransfer, fileName);
return response;
}
示例15: Execute
public IResponse Execute(ICruiseRequest cruiseRequest)
{
if (this.XslFileNames == null)
{
throw new ApplicationException("XSL File Name has not been set for XSL Report Action");
}
Hashtable xsltArgs = new Hashtable();
xsltArgs["applicationPath"] = cruiseRequest.Request.ApplicationPath;
var fileNames = this.GenerateFilenameList(cruiseRequest);
return new HtmlFragmentResponse(buildLogTransformer.Transform(cruiseRequest.BuildSpecifier, fileNames.ToArray(), xsltArgs, cruiseRequest.RetrieveSessionToken()));
}