/// <summary> /// Traite une requête HTTP. /// </summary> /// <param name="context">Context HTTP de la requête.</param> public void ProcessRequest(HttpContext context) { if (context == null) { throw new ArgumentNullException("context"); } Context requestContext = new Context(context, null); if (HtmlPageRenderer.IsCounterPage(requestContext.Content)) { ProcessPageRequest(context, requestContext); } else if (HtmlPageRenderer.IsExportPage(requestContext.Content)) { HtmlPageRenderer.SetHeaderCsv(context.Response); HtmlPageHelper.ToCsv( Analytics.Instance.GetDataBase(requestContext.ActionDataBase).HyperCube, requestContext, context.Response.Output); } else if (requestContext.Content != null) { ProcessContentRequest(context, requestContext); } else { // On ne sait pas traiter la requête context.Response.StatusCode = 500; } }
/// <summary> /// Rendu de la synthèse des statistiques relatives à une base de données analytique. /// </summary> /// <param name="databaseName">Nom de la base de données.</param> /// <param name="writer">Writer HTML.</param> public static void ToHtml(string databaseName, HtmlTextWriter writer) { Context context = HtmlPageRenderer.CurrentContext; CounterDataBase counterDataBase = Analytics.Instance.GetDataBase(databaseName); HtmlPageHelper.ToSummary(counterDataBase.HyperCube, context, writer); HtmlPageHelper.ToTable(counterDataBase.HyperCube, context, writer); }
/// <summary> /// Réalise le rendu du contrôle. /// </summary> /// <param name="writer">Writer HTML.</param> public override void RenderControl(HtmlTextWriter writer) { if (writer == null) { throw new ArgumentNullException("writer"); } Context ctx = new Context(HttpContext.Current, this.ResolveUrl(this.HandlerPath)); ctx.ClearAction(); foreach (string param in _params.Keys) { ctx.AddParam(param, _params[param]); } writer.AddAttribute(HtmlTextWriterAttribute.Id, "managers"); writer.RenderBeginTag(HtmlTextWriterTag.Div); SortedDictionary <int, string> sortMap = new SortedDictionary <int, string>(); foreach (string databaseName in _databaseSet.DatabaseNames) { IManagerDescription description = this.DatabaseDefinition[databaseName]; sortMap.Add(description.Priority, databaseName); } foreach (int priority in sortMap.Keys) { string databaseName = sortMap[priority]; IManagerDescription description = this.DatabaseDefinition[databaseName]; writer.AddAttribute(HtmlTextWriterAttribute.Id, "manager"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.WriteLine("<h1 style=\"background-image: url('" + this.ResolveUrl(this.HandlerPath) + "?CONTENT=img_manager&MON_ID=" + description.Image + "');\">"); writer.WriteLine(description.Name); writer.WriteLine("</h1>"); writer.WriteLine("<div id=\"description\">"); IHyperCube hyperCube = _databaseSet.GetDatabase(databaseName); HtmlPageHelper.ToSummary(hyperCube, ctx, writer); HtmlPageHelper.ToTable(hyperCube, ctx, writer); writer.WriteLine("</div>"); // description writer.RenderEndTag(); } writer.RenderEndTag(); }
/// <summary> /// Traite une requête HTTP. /// </summary> /// <param name="context">Context HTTP de la requête.</param> void IHttpHandler.ProcessRequest(HttpContext context) { if (context == null) { throw new ArgumentNullException("context"); } Context requestContext = new Context(context, null); if (requestContext.Content.Equals("sparklines.png")) { context.Response.ContentType = "image/png"; HtmlPageRenderer.ToChart(_databaseSet.GetDatabase(requestContext.Id), requestContext, context.Response.OutputStream); } else if (requestContext.Content.Equals("img_manager")) { foreach (IManagerDescription description in this.DatabaseDefinition.Values) { if (description.Image == requestContext.Id) { context.Response.ContentType = description.ImageMimeType; context.Response.OutputStream.Write(description.ImageData, 0, description.ImageData.Length); break; } } } else if (HtmlPageRenderer.IsExportPage(requestContext.Content)) { HtmlPageRenderer.SetHeaderCsv(context.Response); HtmlPageHelper.ToCsv(_databaseSet.GetDatabase(requestContext.ActionDataBase), requestContext, context.Response.Output); } else { throw new NotImplementedException(); } }