public void  ProcessRequest(HttpContext context)
        {
            const string TEMPLATE_FOLDER = @"";
            const string SCHEMA_TEMPLATE_FILENAME = "schema.docx";

            byte[] binWordFile = null;
            string responseFileName = string.Empty;

            try
            {
                string id = context.Request.QueryString["id"];

                if (string.IsNullOrEmpty(id))
                {
                    throw new Exception("Id paramter is invalid.");
                }

                Schema schemaData = getSchemaData(id);
                if (schemaData == null)
                {
                    throw new Exception("SchemaData is null.");
                }


                WordHelper wordHelper = new WordHelper();

                string templateLocation = Path.Combine(context.Server.MapPath(TEMPLATE_FOLDER), SCHEMA_TEMPLATE_FILENAME);

                binWordFile = wordHelper.CreateWordDocument(schemaData, templateLocation);

                responseFileName = getFileName(schemaData.Title, id);
            }
            catch (Exception ex)
            {

                context.Response.Clear();
                context.Response.Output.WriteLine("ERROR");
                context.Response.Output.WriteLine(ex.Message);
                if (ex.InnerException != null)
                {
                    context.Response.Output.WriteLine("<br />");
                    context.Response.Output.WriteLine(ex.InnerException.Message);
                }
                context.Response.End();
            }

            context.Response.Clear();
            context.Response.ContentType = "x-world/x-vrml";
            context.Response.AddHeader("Content-Disposition", "attachment;filename=" + responseFileName);
            context.Response.AddHeader("Content-Length", binWordFile.Length.ToString());
            context.Response.OutputStream.Write(binWordFile, 0, binWordFile.Length);
            context.Response.End();

        }