public IDnsDocument ExportResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode, IDnsResponseExportFormat format, string args) { using (StringWriter sw = new StringWriter()) { DataSet ds = GetResponseDataSet(context); switch (format.ID) { case "xls": using (HtmlTextWriter htw = new HtmlTextWriter(sw)) { DataGrid dg = new DataGrid(); dg.DataSource = ds.Tables[0]; dg.DataBind(); dg.RenderControl(htw); } break; case "csv": DataTable dt = ds.Tables[0]; int iColCount = dt.Columns.Count; for (int i = 0; i < iColCount; i++) { sw.Write(dt.Columns[i]); if (i < iColCount - 1) { sw.Write(","); } } sw.Write(sw.NewLine); // Now write all the rows. foreach (DataRow dr in dt.Rows) { for (int i = 0; i < iColCount; i++) { if (!Convert.IsDBNull(dr[i])) { sw.Write(dr[i].ToString()); } if (i < iColCount - 1) { sw.Write(","); } } sw.Write(sw.NewLine); } break; } string filename = EXPORT_BASENAME + "_" + context.Request.Model.Name + "_" + context.Request.RequestID.ToString() + "." + format.ID; return(Dns.Document( name: filename, mimeType: GetMimeType(filename), isViewable: false, kind: DocumentKind.User, Data: Encoding.UTF8.GetBytes(sw.ToString()) )); } }
public IDnsDocument ExportResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode, IDnsResponseExportFormat format, string args) { using (var db = new DataContext()) { string reqDoc = FixDocumentContent(System.Text.UTF8Encoding.UTF8.GetString(context.Request.Documents.Where(d => d.Name == REQUEST_ARGS_FILENAME).FirstOrDefault().GetData(db))); using (StringWriter sw = new StringWriter()) { DataSet ds = GetResponseDataSet(context, reqDoc, aggregationMode); string filename = EXPORT_BASENAME + "_" + context.Request.Model.Name + "_" + context.Request.RequestID.ToString() + "." + format.ID; switch (format.ID) { case "xlsx": ExcelHelper.ToExcel(ds, filename, HttpContext.Current.Response); break; case "csv": ExcelHelper.ToCSV(ds, sw); break; } return(Dns.Document( name: filename, mimeType: GetMimeType(filename), isViewable: false, kind: DocumentKind.User, Data: Encoding.UTF8.GetBytes(sw.ToString()) )); } } }
public IDnsDocument ExportResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode, IDnsResponseExportFormat format, string args) { using (StringWriter sw = new StringWriter()) { DataSet ds = GetResponseDataSet(context, aggregationMode); string filename = EXPORT_BASENAME + "_" + context.Request.Model.Name + "_" + context.Request.RequestID.ToString() + "." + format.ID; switch (format.ID) { case "xlsx": ExcelHelper.ToExcel(ds, filename, HttpContext.Current.Response); break; case "csv": ExcelHelper.ToCSV(ds, sw); break; } return(Dns.Document( name: filename, mimeType: GetMimeType(filename), isViewable: false, kind: DocumentKind.User, Data: Encoding.UTF8.GetBytes(sw.ToString()) )); } }
private DataSet GetResponseDataSet(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode) { DataSet _ds = new DataSet(); _ds = aggregationMode == SQLViewOptions.AggregateView || aggregationMode == null?AggregatedDataSet(_ds, context) : IndividualDataSet(_ds, context); return(_ds); }
private DataSet GetResponseDataSet(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode) { DataSet _ds = new DataSet(); _ds = aggregationMode == ConditionsAggregationModes.AggregateView || aggregationMode == null? AggregateDataSet(_ds, context) : UnaggregateDataSet(_ds, context); return(_ds); }
public IDnsDocument ExportResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode, IDnsResponseExportFormat format, string args) { using (StringWriter sw = new StringWriter()) { string filename = EXPORT_BASENAME + "_" + context.Request.Model.Name + "_" + context.Request.RequestID.ToString() + "." + format.ID; var DMDocs = new SortedDictionary <string, List <Document> >(); #region "Generate a List of Documents Keyed on DataMarts for Aggregation" //IEnumerable<IDnsPersistentDocument> docs = null; var docs = from r in context.DataMartResponses from doc in r.Documents orderby r.DataMart.ID select new { Id = r.DataMart.ID, Document = doc }; foreach (var item in docs) { if (!DMDocs.ContainsKey(item.Id.ToString())) { DMDocs.Add(item.Id.ToString(), new List <Document>()); } DMDocs[item.Id.ToString()].Add(item.Document); } #endregion //Aggregate and Download Workbook AggregatedWorkBook = null; try { AggregatedWorkBook = AggregateDocuments(DMDocs); if (AggregatedWorkBook != null) { //present for download. string DownloadFileName = filename; //string DownloadPath = System.Web.Configuration.WebConfigurationManager.AppSettings["DownloadFolder"]+ @"\" + DownloadFileName; AggregatedWorkBook.Save(HttpContext.Current.Response, DownloadFileName, ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Excel97To2003)); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); } } catch (Exception ex) { sw.WriteLine("Error Encountered During Aggregation Process."); sw.WriteLine(ex.Message); sw.WriteLine(ex.StackTrace); } return(null); } }
private ConditionsResponseModel GetResponseModel(DataSet ds, IDnsResponseAggregationMode aggregationMode) { IList <string> headers = new List <string>(); if (ds.Tables.Count > 0) { DataTable dt = ds.Tables[0]; foreach (DataColumn col in dt.Columns) { headers.Add(col.ColumnName.Trim().Replace("_", " ")); } } return(new ConditionsResponseModel { Headers = headers, RawData = ds, }); }
public IDnsDocument ExportResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode, IDnsResponseExportFormat format, string args) { using (StringWriter sw = new StringWriter()) { string filename = EXPORT_BASENAME + "_" + context.Request.Model.Name + "_" + context.Request.RequestID.ToString() + "." + format.ID; var DMDocs = new SortedDictionary <string, List <Document> >(); var lDocs = (from r in context.DataMartResponses from doc in r.Documents orderby r.DataMart.ID select new { Doc = doc, Name = doc.Name, ID = doc.ID, DataMartName = r.DataMart.Name, RevisionVersion = doc.RevisionVersion }); var docs = from r in lDocs group r by r.DataMartName into grp select new KeyValuePair <string, Document> ( grp.FirstOrDefault().DataMartName, grp.OrderByDescending(p => p.RevisionVersion).FirstOrDefault().Doc ); ZipHelper.DownloadZipToBrowser(HttpContext.Current, docs, filename); return(Dns.Document( name: filename, mimeType: FileHelper.GetMimeType(filename), isViewable: false, kind: DocumentKind.User, Data: Encoding.UTF8.GetBytes(sw.ToString()) )); } }
public Func <HtmlHelper, IHtmlString> DisplayResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode) { try { return(html => html.Partial <Grid>().WithModel(GetResponseDataSet(context, aggregationMode))); } catch (Exception ex) { return(html => html.Partial <Views.Error>().WithModel(new InvalidDataSetException(ex))); } }
public Func <HtmlHelper, IHtmlString> DisplayResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode) { var m = new ModularProgramModel(); IList <SignatureDatum> signatureDataList = new List <SignatureDatum>(); using (var db = new DataContext()) { db.RequestSearchTerms.Where(term => term.RequestID == context.Request.RequestID).ForEach(term => signatureDataList.Add(new SignatureDatum { Variable = Enum.GetName(typeof(RequestSearchTermType), term.Type), Value = term.StringValue })); m.SignatureData = JsonConvert.SerializeObject(signatureDataList); m.HasResponses = ResponseService.GetVirtualResponses(context.Request.RequestID, true).Count() > 0; //PMNDEV-4421 var lDocs = (from r in context.DataMartResponses from doc in r.Documents orderby r.DataMart.ID select new { Name = doc.Name, Length = doc.Length, ID = doc.ID, DataMartName = r.DataMart.Name, RevisionVersion = doc.RevisionVersion }); var docs = from r in lDocs group r by r.DataMartName into grp select new FileSelection ( grp.FirstOrDefault().Name, grp.OrderByDescending(p => p.RevisionVersion).FirstOrDefault().Length, grp.OrderByDescending(p => p.RevisionVersion).FirstOrDefault().ID, grp.FirstOrDefault().DataMartName, FileHelper.GetMimeType(grp.FirstOrDefault().Name) ); m.RequestFileList = docs.ToList(); return(html => html .Partial <Views.ModularProgram.DisplayResponse>() .WithModel(m)); } }
public Func <HtmlHelper, IHtmlString> DisplayResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode) { return(null); }
public Func <HtmlHelper, IHtmlString> DisplayResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode) { var lDocs = (from r in context.DataMartResponses from doc in r.Documents orderby r.DataMart.ID select new { Name = doc.Name, ID = doc.ID, doc = doc, DataMartName = r.DataMart.Name, RevisionVersion = doc.RevisionVersion }); var docs = (from r in lDocs group r by r.ID into grp select new FileDistributionResponse ( grp.FirstOrDefault().DataMartName, grp.OrderByDescending(p => p.RevisionVersion).FirstOrDefault().doc )).ToList(); return(html => html.Partial <FileDistribution.Views.FileDistribution.Display>().WithModel(new Models.FileDistributionResponseModel { ResponseFileList = docs.ToList() })); }
public IDnsDocument ExportResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode, IDnsResponseExportFormat format, string args) { using (StringWriter sw = new StringWriter()) { string filename = EXPORT_BASENAME + "_" + context.Request.Model.Name + "_" + context.Request.RequestID.ToString() + "." + format.ID; SortedDictionary <string, List <Document> > DMDocs = new SortedDictionary <string, List <Document> >(); #region "TO BE MOVED TO QUERYBUILDER UI" //#region "Generate a List of Documents Keyed on DataMarts for Aggregation" ////IEnumerable<IDnsPersistentDocument> docs = null; //var docs = from r in context.DataMartResponses // from doc in r.Documents // orderby r.DataMart.Id // select new { Id = r.DataMart.Id, Document = doc }; //foreach (var item in docs) //{ // if (!DMDocs.ContainsKey(item.Id.ToString())) DMDocs.Add(item.Id.ToString(), new List<IDnsPersistentDocument>()); // DMDocs[item.Id.ToString()].Add(item.Document); //} //#endregion ////Aggregate and Download //Workbook AggregatedWorkBook = null; //try //{ // AggregatedWorkBook = AggregateDocuments(DMDocs); // if (AggregatedWorkBook != null) // { // //present for download. // string DownloadFileName = filename; // //string DownloadPath = System.Web.Configuration.WebConfigurationManager.AppSettings["DownloadFolder"]+ @"\" + DownloadFileName; // AggregatedWorkBook.Save(HttpContext.Current.Response, DownloadFileName, ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Excel97To2003)); // HttpContext.Current.Response.Flush(); // HttpContext.Current.Response.End(); // } //} //catch (Exception ex) //{ // sw.WriteLine("Error Encountered During Aggregation Process."); // sw.WriteLine(ex.Message); // sw.WriteLine(ex.StackTrace); //} #endregion //IEnumerable<IDnsPersistentDocument> docs = null; var docs = from r in context.DataMartResponses from doc in r.Documents orderby r.DataMart.ID select new KeyValuePair <string, Document>(r.DataMart.Name, doc); DownloadZipToBrowser(docs); return(Dns.Document( name: filename, mimeType: GetMimeType(filename), isViewable: false, kind: DocumentKind.User, Data: Encoding.UTF8.GetBytes(sw.ToString()) )); } }
public Func <HtmlHelper, IHtmlString> DisplayResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode) { throw new Lpp.Utilities.CodeToBeUpdatedException(); //var docs = from d in context.DataMartResponses // from doc in d.Documents // select doc; //var dm = ( // from m in Models.All // from r in m.RequestTypes // where r.LocalId == context.Request.RequestType.Id // select new { m, r } // ).FirstOrDefault(); //return html => html.Partial<Views.Bridge.ResponseView>().WithModel(new Models.ResponseDetailModel //{ // Context = context, // Model = dm.m, // RequestType = dm.r //}); }
private DataSet GetResponseDataSet(IDnsResponseContext context, string reqDoc, IDnsResponseAggregationMode aggregationMode) { var termData = RequestCriteriaHelper.ToServerModel(reqDoc).Criterias.First().Terms; var mdData = termData.Where(t => t.TermType == RequestCriteria.Models.TermTypes.MetaDataTableTerm).FirstOrDefault() as MetaDataTableData; DataSet ds = new DataSet(); foreach (var r in context.DataMartResponses) { foreach (var doc in r.Documents) { try { ds.ReadXml(doc.GetStream(_dataContext.Value)); } catch (System.Xml.XmlException) { string content = FixDocumentContent(doc.ReadStreamAsString(_dataContext.Value)); using (var ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(content))) { ds.ReadXml(ms); } } if (doc.Name == "DataCheckerResponse.xml") { if (context.Request.RequestType.ID == Guid.Parse(DataCheckerRequestType.DATA_CHECKER_METADATA_COMPLETENESS)) { foreach (string unselectedMetadataTable in GetUnselectedMetaDataTables(mdData.Tables)) { if (ds.Tables[ds.Tables.Count - 1].Columns.Contains(unselectedMetadataTable)) { ds.Tables[ds.Tables.Count - 1].Columns.Remove(unselectedMetadataTable); } } } foreach (DataRow row in ds.Tables[ds.Tables.Count - 1].Rows) { if (context.Request.RequestType.ID == Guid.Parse(DataCheckerRequestType.DATA_CHECKER_DISPENSING_RXAMT)) { row["RxAmt"] = FormatRxAmt((string)row["RxAmt"]); } else if (context.Request.RequestType.ID == Guid.Parse(DataCheckerRequestType.DATA_CHECKER_DISPENSING_RXSUP)) { row["RxSup"] = FormatRxSup((string)row["RxSup"]); } } } } } return(ds); }
public Func <HtmlHelper, IHtmlString> DisplayResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode) { try { var doc = context.Request.Documents.Where(d => d.Name == REQUEST_ARGS_FILENAME).FirstOrDefault(); using (var db = new DataContext()) { string reqDoc = FixDocumentContent(System.Text.UTF8Encoding.UTF8.GetString(doc.GetData(db))); var termData = RequestCriteriaHelper.ToServerModel(reqDoc).Criterias.First().Terms; var rxAmtData = termData.Where(t => t.TermType == RequestCriteria.Models.TermTypes.RxAmtTerm).FirstOrDefault() as RxAmountData; var rxSupData = termData.Where(t => t.TermType == RequestCriteria.Models.TermTypes.RxSupTerm).FirstOrDefault() as RxSupData; var codeData = termData.Where(t => t.TermType == RequestCriteria.Models.TermTypes.CodesTerm).FirstOrDefault() as CodesData; var mdData = termData.Where(t => t.TermType == RequestCriteria.Models.TermTypes.MetaDataTableTerm).FirstOrDefault() as MetaDataTableData; var model = new ResponseModel { RequestID = context.Request.RequestID, ResponseToken = context.Token, RxAmounts = rxAmtData != null ? rxAmtData.RxAmounts : null, RxSups = rxSupData != null ? rxSupData.RxSups : null, CodeType = codeData != null ? codeData.CodeType : null, MetadataTables = mdData != null ? mdData.Tables : null, RawData = null,//only load the raw response data for the original request types until they have been converted to use ajax to load shaped data IsExternalView = context.IsExternalView, ResponseDocumentIDs = context.DataMartResponses.SelectMany(r => r.Documents).Where(dc => dc.Name != "ViewableDocumentStyle.xml").Select(d => d.ID).ToArray() }; if (context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_DIAGNOSIS) || context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_ETHNICITY) || context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_NDC) || context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_PROCEDURE) || context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_RACE)) { //only load the raw response data for the original request types until they have been converted to use ajax to load shaped data model.RawData = GetResponseDataSet(context, reqDoc, aggregationMode); } return(html => { if (context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_DIAGNOSIS)) { return html.Partial <DiagnosesResponse>().WithModel(model); } if (context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_ETHNICITY)) { return html.Partial <EthnicityResponse>().WithModel(model); } if (context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_NDC)) { return html.Partial <NDCResponse>().WithModel(model); } if (context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_PROCEDURE)) { return html.Partial <ProceduresResponse>().WithModel(model); } if (context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_RACE)) { return html.Partial <RaceResponse>().WithModel(model); } if (context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_DIAGNOSIS_PDX)) { return html.Partial <DiagnosisPDXResponse>().WithModel(model); } if (context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_DISPENSING_RXAMT)) { return html.Partial <DispensingRxAmtResponse>().WithModel(model); } if (context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_DISPENSING_RXSUP)) { return html.Partial <DispensingRxSup>().WithModel(model); } if (context.Request.RequestType.ID == new Guid(DataCheckerRequestType.DATA_CHECKER_METADATA_COMPLETENESS)) { return html.Partial <MetadataDataCompletenessResponse>().WithModel(model); } throw new Exception("Unknown request type, could not determine response view."); }); } } catch (Exception ex) { return(html => html.Partial <Views.Error>().WithModel(new InvalidDataSetException(ex))); } }
public Func <HtmlHelper, IHtmlString> DisplayResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode) { return(ReturnMissingMessage); }
public IDnsDocument ExportResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode, IDnsResponseExportFormat format, string args) { return(null); }
public IDnsDocument ExportResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode, IDnsResponseExportFormat format) { throw new NotImplementedException(); }
public Func <System.Web.Mvc.HtmlHelper, System.Web.IHtmlString> DisplayResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode) { return(html => html.Raw(@"<HTML><BODY>SPAN Display Response</BODY></HTML>")); }