/// <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(); }