Example #1
0
        /// <summary>
        /// Provides a way to custom handle requests.
        /// </summary>
        /// <param name="objContext">The request context.</param>
        /// <param name="strAction">The request action.</param>
        void IGatewayComponent.ProcessRequest(IContext objContext, string strAction)
        {
            MasterDetailEngine engine = new MasterDetailEngine(typeof(CAPTxtIEMaster), typeof(CAPTxtIEDetails), new MasterDetailSelector(RecSelector));

            LoadData();

            string path     = Path.Combine(Context.Config.GetDirectory("Upload"), "Member");
            string fileName = "CAPExportList_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            string fullName = Path.Combine(path, fileName);

            // Header
            FileStream   stream = File.Open(fullName, FileMode.CreateNew, FileAccess.Write);
            StreamWriter writer = new StreamWriter(stream);

            writer.WriteLine("CAP");
            writer.Flush();
            writer.Close();

            // Details
            engine.AppendToFile(fullName, md);

            // Footer
            writer = File.AppendText(fullName);
            writer.WriteLine("TH\t" + headerCount.ToString());
            writer.WriteLine("TD\t" + detailsCount.ToString());
            writer.WriteLine("EE");
            writer.Flush();
            writer.Close();


            HttpResponse objResponse = this.Context.HttpContext.Response;

            objResponse.Clear();
            objResponse.ClearHeaders();

            objResponse.ContentType = "application/txt";
            objResponse.AddHeader("content-disposition", "attachment; filename=" + fileName);
            objResponse.BinaryWrite(File.ReadAllBytes(fullName));
            objResponse.Flush();
            objResponse.End();
        }