Example #1
0
        public async static Task RenderAsync(FrontContext context)
        {
            var image = await context.SiteDb.ImagePool.GetAsync(context.Route.objectId);

            if (image == null || image.ContentBytes == null)
            {
                image = await context.SiteDb.Images.GetAsync(context.Route.objectId);
            }
            //  var image = context.SiteDb.Images.Get(context.Route.objectId);

            if (context.RenderContext.WebSite.EnableImageLog)
            {
                if (context.RenderContext.Request.Channel == Data.Context.RequestChannel.Default)
                {
                    Kooboo.Data.Models.ImageLog log = new Data.Models.ImageLog();
                    log.ClientIP  = context.RenderContext.Request.IP;
                    log.Url       = context.RenderContext.Request.RawRelativeUrl;
                    log.StartTime = DateTime.Now;

                    if (image != null)
                    {
                        log.Size    = image.Size;
                        log.ImageId = image.Id;
                    }
                    context.RenderContext.WebSite.SiteDb().ImageLog.Add(log);
                }
            }

            if (image == null)
            {
                return;
            }
            RenderImage(context, image);
        }
Example #2
0
        public async static Task RenderAsync(FrontContext context)
        {
            var image = await context.SiteDb.ImagePool.GetAsync(context.Route.objectId);

            if (image == null || image.ContentBytes == null)
            {
                image = await context.SiteDb.Images.GetAsync(context.Route.objectId);
            }
            //var image = context.SiteDb.Images.Get(context.Route.objectId);
            if (context.RenderContext.WebSite.EnableImageLog)
            {
                if (context.RenderContext.Request.Channel == Data.Context.RequestChannel.Default)
                {
                    Kooboo.Data.Models.ImageLog log = new Data.Models.ImageLog();
                    log.ClientIP  = context.RenderContext.Request.IP;
                    log.Url       = context.RenderContext.Request.RawRelativeUrl;
                    log.StartTime = DateTime.Now;

                    if (image != null)
                    {
                        log.Size    = image.Size;
                        log.ImageId = image.Id;
                    }
                    context.RenderContext.WebSite.SiteDb().ImageLog.Add(log);
                }
            }

            if (image == null)
            {
                return;
            }

            RenderImage(context, image);

            context.RenderContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");
            context.RenderContext.Response.Headers.Add("Access-Control-Allow-Headers", "*");

            if (context.RenderContext.WebSite.EnableImageBrowserCache)
            {
                if (context.RenderContext.WebSite.ImageCacheDays > 0)
                {
                    context.RenderContext.Response.Headers["Expires"] = DateTime.UtcNow.AddDays(context.RenderContext.WebSite.ImageCacheDays).ToString("r");
                }
                else
                {
                    // double verify...
                    var version = context.RenderContext.Request.GetValue("version");
                    if (!string.IsNullOrWhiteSpace(version))
                    {
                        context.RenderContext.Response.Headers["Expires"] = DateTime.UtcNow.AddYears(1).ToString("r");
                    }
                }
            }
        }