Exemplo n.º 1
0
        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())
                           ));
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 7
0
        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)));
     }
 }
Exemplo n.º 10
0
        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));
            }
        }
Exemplo n.º 11
0
 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()
            }));
        }
Exemplo n.º 13
0
        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())
                           ));
            }
        }
Exemplo n.º 14
0
        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
            //});
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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)));
            }
        }
Exemplo n.º 17
0
 public Func <HtmlHelper, IHtmlString> DisplayResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode)
 {
     return(ReturnMissingMessage);
 }
Exemplo n.º 18
0
 public IDnsDocument ExportResponse(IDnsResponseContext context, IDnsResponseAggregationMode aggregationMode, IDnsResponseExportFormat format, string args)
 {
     return(null);
 }
Exemplo n.º 19
0
 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>"));
 }