Ejemplo n.º 1
0
        public IDataModelDescriptor TryGetOrNull(Type Type)
        {
            IDataModelDescriptor e = null;

            entities.TryGetValue(Type, out e);
            return(e);
        }
Ejemplo n.º 2
0
        public IDataModelDescriptor TryGetOrNull(string Name)
        {
            IDataModelDescriptor e = null;

            entities.TryGetValue(Name, out e);
            return(e);
        }
Ejemplo n.º 3
0
        public IDataModelDescriptor Get(Type Type)
        {
            IDataModelDescriptor e = null;

            if (entities.TryGetValue(Type, out e))
            {
                return(e);
            }
            else
            {
                throw new ArgumentException("No entity of Type: " + Type.Name + " exists in SchemaModel");
            }
        }
Ejemplo n.º 4
0
        public IDataModelDescriptor Get(string Name)
        {
            IDataModelDescriptor e = null;

            if (entities.TryGetValue(Name, out e))
            {
                return(e);
            }
            else
            {
                throw new ArgumentException("No entity named: " + Name + " exists in SchemaModel");
            }
        }
Ejemplo n.º 5
0
        public void Register(IDataModelDescriptor entitySchemaModel)
        {
            bool exists = false;

            if (!(exists = entities.ContainsKey2(entitySchemaModel.EntityType)))
            {
                lock (dlock)
                {
                    if (!(exists = entities.ContainsKey2(entitySchemaModel.EntityType)))
                    {
                        entities.Add(entitySchemaModel.EntityType.Name, entitySchemaModel.EntityType, entitySchemaModel);
                    }
                }
            }

            if (exists)
            {
                throw new Exception("Type " + entitySchemaModel.EntityType.Name + " has already been registerd");
            }
        }
Ejemplo n.º 6
0
    /// <summary>
    /// Enables processing of HTTP Web requests by a custom HttpHandler
    /// that implements the <see cref="T:System.Web.IHttpHandler"/>
    /// interface.
    /// </summary>
    /// <param name="context">An <see cref="T:System.Web.HttpContext"/>
    /// object that provides references to the intrinsic server objects
    /// (for example, Request, Response, Session, and Server) used to
    /// service HTTP requests.</param>
    public void ProcessRequest(HttpContext context)
    {
        if (controller == null)
        {
            return;
        }

        IDataModelDescriptor desc = controller.GetDataModelDescriptor(
            new Guid(context.Request.QueryString["dataModel"]));
        IDataModelField imageField =
            desc.Fields[context.Request.QueryString["imageField"]];
        IDatabaseSelectQuery query = controller.CreateQuery();

        string[] keys          = context.Request.QueryString["key"].Split(',');
        string   showThumb     = context.Request.QueryString["showThumbnail"];
        bool     showThumbnail = showThumb != null;

        query.AssignBaseTable(desc);
        query.AddColumn(imageField, false);
        for (int i = 0; i < desc.KeyFields.Count; i++)
        {
            query.AddCompareValue(
                desc.KeyFields[i],
                keys[i],
                DatabaseOperator.Equal);
        }

        context.Response.CacheControl = "no-cache";
        context.Response.ContentType  = "image/jpeg";
        context.Response.Expires      = -1;

        byte[] originalImage = (byte[])controller.ExecuteScalar(query);

        if (showThumbnail)
        {
            int scalePixels;

            if (!int.TryParse(showThumb, out scalePixels))
            {
                scalePixels = 100;
            }

            using (Stream stream = new MemoryStream(originalImage))
                using (Image img = Image.FromStream(stream))
                {
                    double multiplier;

                    if ((img.Width <= scalePixels) &&
                        (img.Height <= scalePixels))
                    {
                        context.Response.BinaryWrite(originalImage);
                        return;
                    }
                    else if (img.Height < img.Width)
                    {
                        multiplier = (double)img.Width / (double)scalePixels;
                    }
                    else
                    {
                        multiplier = (double)img.Height / (double)scalePixels;
                    }

                    using (Bitmap finalImg = new Bitmap(
                               img,
                               (int)(img.Width / multiplier),
                               (int)(img.Height / multiplier)))
                        using (Graphics g = Graphics.FromImage(finalImg))
                        {
                            g.InterpolationMode =
                                InterpolationMode.HighQualityBicubic;
                            finalImg.Save(
                                context.Response.OutputStream,
                                ImageFormat.Jpeg);
                        }
                }
        }
        else
        {
            context.Response.BinaryWrite(originalImage);
        }
    }