Beispiel #1
0
        /// <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;
            }
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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();
        }
Beispiel #4
0
        /// <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();
            }
        }