示例#1
0
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            var newDocuments = new List <DocumentDTO>();
            var m            = post.GetModel <SASDistributionModel>();

            var removedFiles = ConvertJSONtoStringList(m.RemovedFilesList);

            Document[] removedDocuments = null;
            if (removedFiles.Any())
            {
                var removedFileIDs = removedFiles.Select(f => new Guid(f));
                using (var db = new DataContext())
                {
                    removedDocuments = (from d in db.Documents where removedFileIDs.Contains(d.ID) select d).ToArray();
                    db.Documents.RemoveRange(removedDocuments);
                    db.SaveChanges();
                }
            }

            return(new DnsRequestTransaction
            {
                NewDocuments = newDocuments,
                UpdateDocuments = null,
                RemoveDocuments = removedDocuments
            });
        }
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            var newDocuments    = new System.Collections.Generic.List <DocumentDTO>();
            var removeDocuments = new System.Collections.Generic.List <Document>();
            var m = post.GetModel <SqlDistributionModel>();

            newDocuments.Add(new DocumentDTO {
                FileName = request.Header.Name,
                Name     = request.Header.Name,
                Kind     = DocumentKind.Request,
                MimeType = "text/plain",
                Viewable = true,
                Data     = GetBytes(m.SqlQuery)
            });

            var doc = request.Documents.FirstOrDefault(s => s.Kind == DocumentKind.Request);

            if (doc != null)
            {
                removeDocuments.Add(doc);
            }

            return(new DnsRequestTransaction
            {
                NewDocuments = newDocuments,
                UpdateDocuments = null,
                RemoveDocuments = removeDocuments
            });
        }
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            // RSL 8/15/13: I have no idea where this GetModel call goes, but it is NOT the one in this file.
            // this model does not need the editing/lookup support (using InitializeModel)
            var m = post.GetModel <ConditionsModel>();

            m.RequestType = ConditionsRequestType.All.FirstOrDefault(rt => rt.ID == request.RequestType.ID);
            IList <string> errorMessages;

            if (!Validate(m, out errorMessages))
            {
                return new DnsRequestTransaction {
                           ErrorMessages = errorMessages, IsFailed = true
                }
            }
            ;

            byte[] requestBuilderBytes = BuildRequest(request, m);
            byte[] modelBytes          = BuildUIArgs(m);
            var    newDocuments        = new List <DocumentDTO> {
                new DocumentDTO(REQUEST_FILENAME, "application/xml", false, DocumentKind.Request, requestBuilderBytes),
                new DocumentDTO(REQUEST_ARGS_FILENAME, "application/lpp-dns-uiargs", true, DocumentKind.Request, modelBytes),
            };

            return(new DnsRequestTransaction
            {
                NewDocuments = newDocuments,
                UpdateDocuments = null,
                RemoveDocuments = request.Documents
            });
        }
        public Func <HtmlHelper, IHtmlString> EditRequestReDisplay(IDnsRequestContext request, IDnsPostContext post)
        {
            // RSL 8/15/13: I have no idea where this GetModel call goes, but it is NOT the one in this file.
            var gm    = InitializeModel(post.GetModel <ConditionsModel>());
            var model = InitializeModel(gm, request);

            return(html => html.Partial <Create>().WithModel(model));
        }
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            using (var db = new DataContext())
            {
                var newDocuments = new List <DocumentDTO>();
                var m            = post.GetModel <ModularProgramModel>();

                var removedFiles     = SplitToGuids(m.RemovedFileList);
                var removedDocuments = new List <Document>();
                if (removedFiles != null && removedFiles.Any())
                {
                    removedDocuments.AddRange((from d in db.Documents where removedFiles.Contains(d.ID) select d).ToArray());
                    db.Documents.RemoveRange(removedDocuments);
                    db.SaveChanges();
                }

                m.PackageManifest = ConvertJSONtoProgramItems(m.ModularProgramList);
                m.Files           = db.Documents.Where(d => d.ItemID == request.RequestID && !d.FileName.StartsWith("ModularProgramRequest.")).Select(d => new FileItem
                {
                    MimeType = d.MimeType,
                    Name     = d.Name,
                    Size     = d.Length.ToString()
                }).ToList();

                // Serialize the request XML document containing the manifest, add it to the new document list, add the old one to the remove list.
                string requestName         = GetRequestName(request.RequestType.ID.ToString());
                byte[] requestBuilderBytes = BuildRequest(request, m);

                newDocuments.Add(new DocumentDTO(requestName, "application/xml", false, DocumentKind.SystemGeneratedNoLog, requestBuilderBytes));

                request.Documents.Where(s => s.Name == requestName).ForEach(s => removedDocuments.Add(s));

                //Serialize the request view as an HTML document
                var viewDocument = BuildRequestViewDocument(new MemoryStream(requestBuilderBytes)).ToArray();


                string requestViewName = GetRequestViewName(request.RequestType.ID.ToString());
                newDocuments.Add(new DocumentDTO(requestViewName, "text/html", true, DocumentKind.SystemGeneratedNoLog, viewDocument));
                request.Documents.Where(s => s.Name == requestViewName).ForEach(s => removedDocuments.Add(s));

                return(new DnsRequestTransaction
                {
                    NewDocuments = newDocuments,
                    UpdateDocuments = null,
                    RemoveDocuments = removedDocuments,
                    //SearchTerms = GetSearchTerms(request, m)
                });
            }
        }
示例#6
0
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            var newDocuments    = new List <DocumentDTO>();
            var removeDocuments = new List <Document>();
            var m = post.GetModel <SampleModel>();

            newDocuments.Add(new DocumentDTO(request.Header.Name, "text/plain", true, DocumentKind.Request, GetBytes(m.SqlQuery)));
            var doc = request.Documents.FirstOrDefault(s => s.Kind == DocumentKind.Request);

            if (doc != null)
            {
                removeDocuments.Add(doc);
            }

            return(new DnsRequestTransaction
            {
                NewDocuments = newDocuments,
                UpdateDocuments = null,
                RemoveDocuments = removeDocuments
            });
        }
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            IList <string> errorMessages;
            var            model = post.GetModel <SPANQueryBuilderModel>();

            // validate model...
            if (!validate(model, out errorMessages))
            {
                return new DnsRequestTransaction {
                           ErrorMessages = errorMessages, IsFailed = true
                }
            }
            ;

            var xmlModel = toXMLModel(request, post, model);

            // include some extra files, embedded resources
            byte[] mapBytes;
            using (StreamReader mapStream = new StreamReader(typeof(SPANQueryBuilderModelPlugin).Assembly.GetManifestResourceStream("Lpp.Dns.HealthCare.SPANQueryBuilder.Content." + MAP_FILENAME)))
            {
                mapBytes = Encoding.UTF8.GetBytes(mapStream.ReadToEnd());
            }

            byte[] sasBytes;
            using (StreamReader sasStream = new StreamReader(typeof(SPANQueryBuilderModelPlugin).Assembly.GetManifestResourceStream("Lpp.Dns.HealthCare.SPANQueryBuilder.Content." + SAS_FILENAME)))
            {
                sasBytes = Encoding.UTF8.GetBytes(sasStream.ReadToEnd());
            }

            return(new DnsRequestTransaction
            {
                NewDocuments = new[] {
                    new DocumentDTO(REQUEST_FILENAME, "application/xml", false, DocumentKind.Request, xmlModel),
                    new DocumentDTO(MAP_FILENAME, "application/text", true, DocumentKind.Request, mapBytes),
                    new DocumentDTO(SAS_FILENAME, "application/text", true, DocumentKind.Request, sasBytes)
                },
                UpdateDocuments = null,
                RemoveDocuments = request.Documents
            });
        }
示例#8
0
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            var m       = post.GetModel <Medical.Models.MedicalRequestModel>();
            var sqlText = GenerateSqlQuery(m);

            if (string.IsNullOrEmpty(sqlText))
            {
                return(DnsRequestTransaction.Failed("Failed to create the SQL Query"));
            }

            var sqlTextBytes = Encoding.UTF8.GetBytes(sqlText);
            var doc          = Dns.Document("SQL Text", "text/plain", () => new MemoryStream(sqlTextBytes), () => sqlTextBytes.Length);
            var existingDoc  = request.Documents.FirstOrDefault();

            return(new DnsRequestTransaction
            {
                NewDocuments = existingDoc != null ? null : new[] { doc },
                UpdateDocuments = existingDoc == null ? null :
                                  new[] { new { existingDoc, doc } }.ToDictionary(x => x.existingDoc, x => x.doc),
                RemoveDocuments = request.Documents.Skip(1)
            });
        }
示例#9
0
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            System.Collections.Generic.List <Lpp.Dns.IDnsDocument>           newDocuments    = new System.Collections.Generic.List <Lpp.Dns.IDnsDocument>();
            System.Collections.Generic.List <Lpp.Dns.IDnsPersistentDocument> removeDocuments = new System.Collections.Generic.List <Lpp.Dns.IDnsPersistentDocument>();
            var m = post.GetModel <PubHealthModel>();

            string docContents = ""; // m.MinDate + "|" + m.MaxDate;

            newDocuments.Add(Dns.Document(request.Header.Name, "text/plain", true, Document.DocumentKind_Request, () => new MemoryStream(GetBytes(docContents)), () => docContents.Length));
            IDnsPersistentDocument doc = request.Documents.FirstOrDefault(s => s.Kind == Document.DocumentKind_Request);

            if (doc != null)
            {
                removeDocuments.Add(doc);
            }

            return(new DnsRequestTransaction
            {
                NewDocuments = newDocuments,
                UpdateDocuments = null,
                RemoveDocuments = removeDocuments
            });
        }
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            var m = post.GetModel <FileDistributionModel>();

            var removedFiles = SplitToGuids(m.RemovedFilesList);

            Document[] removedDocuments = null;
            if (removedFiles != null && removedFiles.Any())
            {
                using (var db = new DataContext()) {
                    removedDocuments = (from d in db.Documents where removedFiles.Contains(d.ID) select d).ToArray();
                    db.Documents.RemoveRange(removedDocuments);
                    db.SaveChanges();
                }
            }

            return(new DnsRequestTransaction
            {
                NewDocuments = null,
                UpdateDocuments = null,
                RemoveDocuments = removedDocuments
            });
        }
示例#11
0
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            var m = post.GetModel <I2B2Model>();

            byte[] i2b2MessageBytes;

            using (StreamReader i2b2MessageStream = new StreamReader(typeof(I2B2ModelPlugin).Assembly.GetManifestResourceStream("Lpp.Dns.HealthCare.I2B2.Code.SampleI2b2Message.xml")))
            {
                string i2b2Message = i2b2MessageStream.ReadToEnd();
                i2b2MessageBytes = Encoding.UTF8.GetBytes(i2b2Message);
            }

            //requestBuilderBytes = Encoding.UTF8.GetBytes("<hqmf></hqmf>");
            //IDnsDocument requestDoc = Dns.Document(REQUEST_FILENAME, "application/xml", false, () => new MemoryStream(requestBuilderBytes), () => requestBuilderBytes.Length);

            var requestDoc = new DocumentDTO(REQUEST_FILENAME, "application/xml", true, DocumentKind.Request, i2b2MessageBytes);

            return(new DnsRequestTransaction
            {
                NewDocuments = new[] { requestDoc }.AsEnumerable(),
                UpdateDocuments = null,
                RemoveDocuments = request.Documents
            });
        }
示例#12
0
        public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post)
        {
            var m = post.GetModel <DataCheckerModel>();

            m.RequestType = DataCheckerRequestType.All.FirstOrDefault(rt => rt.ID == request.RequestType.ID);

            IList <string> errorMessages;

            if (!Validate(m, out errorMessages))
            {
                return new DnsRequestTransaction {
                           ErrorMessages = errorMessages, IsFailed = true
                }
            }
            ;

            var newDocuments    = new System.Collections.Generic.List <DocumentDTO>();
            var removeDocuments = new System.Collections.Generic.List <Document>();

            byte[] modelBytes = Encoding.UTF8.GetBytes(m.CriteriaGroupsJSON);
            newDocuments.Add(new DocumentDTO(REQUEST_ARGS_FILENAME, "text/plain", false, DocumentKind.Request, modelBytes));

            string display = GetDisplayableRequest(m);

            byte[] displayBytes = Encoding.UTF8.GetBytes(display);
            newDocuments.Add(new DocumentDTO(DISPLAY_REQUEST_ARGS_FILENAME, "text/html", true, DocumentKind.Request, displayBytes));

            removeDocuments.AddRange(request.Documents.Where(d => d.Kind == DocumentKind.Request));

            return(new DnsRequestTransaction
            {
                NewDocuments = newDocuments,
                UpdateDocuments = null,
                RemoveDocuments = removeDocuments
            });
        }
示例#13
0
 public Func <HtmlHelper, IHtmlString> EditRequestReDisplay(IDnsRequestContext request, IDnsPostContext post)
 {
     return(html => html.Partial <Create>().WithModel(InitializeModel(post.GetModel <PubHealthModel>(), request)));
 }
示例#14
0
        public Func <HtmlHelper, IHtmlString> EditRequestReDisplay(IDnsRequestContext context, IDnsPostContext post)
        {
            var model = InitializeModel(post.GetModel <DataCheckerModel>(), context);

            return(html => html.Partial <Create>().WithModel(model));
        }
 public Func <System.Web.Mvc.HtmlHelper, System.Web.IHtmlString> EditRequestReDisplay(IDnsRequestContext request, IDnsPostContext post)
 {
     return(html => html
            .Partial <Create>()
            .WithModel(initializeModel(post.GetModel <SPANQueryBuilderModel>(), request)));
 }