public static void Add(this DocumentSetTemplate documentSet, ListItem documentItem, string documentSetName, string folder, ContentTypeId docId, bool majorVersionOnly) { Trace.TraceInformation($"Adding: {documentItem.File.Name} to {documentSetName}, Document Folder: {folder}"); var ctx = documentSet.Context; Uri webUrl = new Uri(ctx.Url); DocumentStream ds = new DocumentStream((ClientContext)ctx, documentItem); MemoryStream documentStream; if (majorVersionOnly) documentStream = ds.MajorVersion; else documentStream = ds.LatestVersion; //Use a place holder to workaround filesize limitation with the DefaultDocuments API. //Place holder is inserted via the API, and then overwritten later. if (documentStream != null) { string placeholderPage = "Placeholder"; MemoryStream repo = new MemoryStream(Encoding.UTF8.GetBytes(placeholderPage)); documentSet.DefaultDocuments.Add(folder + ds.FileName, docId, repo.ToArray()); documentSet.Update(true); ctx.ExecuteQuery(); repo.Close(); Trace.TraceInformation("- Placeholder created"); UploadFile((ClientContext)ctx, webUrl.AbsolutePath + "/_cts/" + documentSetName, documentStream, documentItem.File.Name); } }
public async Task <ActionResult> UploadFiles(Guid requestID) { if (Request.Files.Count != 1) { throw new ArgumentOutOfRangeException("Only a single file may be uploaded at a time."); } if (Request.InputStream.Length == 0) { throw new ArgumentOutOfRangeException("The stream is 0 length and cannot be saved."); } try { if (Request.InputStream.Length != 0) { var file = Request.Files[0]; MultipartParser parser = new MultipartParser(Request.InputStream); if (!parser.Success) { throw new ArgumentException("Unable to parse the file content correctly."); } var userIdentity = HttpContext.User.Identity as Lpp.Utilities.Security.ApiIdentity; List <Document> addedDocuments = new List <Document>(); using (var db = new DataContext()) { string filename = System.IO.Path.GetFileName(file.FileName); Guid id = Lpp.Utilities.DatabaseEx.NewGuid(); var document = new Document { ID = id, RevisionSetID = id, CreatedOn = DateTime.UtcNow, FileName = filename, ItemID = requestID, Length = parser.FileContents.LongLength, MimeType = FileEx.GetMimeTypeByExtension(filename), Name = System.IO.Path.GetFileName(filename), Viewable = false, Kind = DocumentKind.User }; if (userIdentity != null) { document.UploadedByID = userIdentity.ID; } db.Documents.Add(document); addedDocuments.Add(document); await db.SaveChangesAsync(); var docStream = new DocumentStream(db, document.ID); await new MemoryStream(parser.FileContents).CopyToAsync(docStream); } return(Json(addedDocuments.Select(d => new { d.ID, d.FileName, d.MimeType, Size = d.Length }), JsonRequestBehavior.AllowGet)); } } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e); throw e; } return(null); }
public async Task <ActionResult> LoadFTPFiles(FTPCredentials credentials, Guid requestId, IEnumerable <string> paths) { var userIdentity = HttpContext.User.Identity as Lpp.Utilities.Security.ApiIdentity; List <Document> uploadedDocuments = new List <Document>(); using (var sftp = new SftpClient(credentials.Address, credentials.Port, credentials.Login, credentials.Password)) { try { sftp.Connect(); foreach (var path in paths) { var fileInfo = sftp.Get(path); using (var sSource = sftp.OpenRead(path)) { using (var db = new DataContext()) { Guid id = Lpp.Utilities.DatabaseEx.NewGuid(); var document = new Document { ID = id, RevisionSetID = id, CreatedOn = DateTime.UtcNow, FileName = fileInfo.Name, ItemID = requestId, Length = fileInfo.Length, MimeType = FileEx.GetMimeTypeByExtension(fileInfo.Name), Name = fileInfo.Name, Viewable = false, Kind = DocumentKind.User }; if (userIdentity != null) { document.UploadedByID = userIdentity.ID; } db.Documents.Add(document); uploadedDocuments.Add(document); await db.SaveChangesAsync(); var docStream = new DocumentStream(db, document.ID); await sSource.CopyToAsync(docStream); } } } } catch (Exception ex) { return(new HttpStatusCodeResult((int)HttpStatusCode.BadRequest, ex.Message)); } finally { if (sftp.IsConnected) { sftp.Disconnect(); } } } Response.StatusCode = (int)HttpStatusCode.OK; Response.ContentType = "application/json"; return(Json(uploadedDocuments.Select(d => new { d.ID, d.FileName, d.MimeType, Size = d.Length }), JsonRequestBehavior.AllowGet)); }
void IDocumentContent.OnClose(CancelEventArgs e) { DocumentStream.Dispose(); }
/// <summary> /// Creates a new model, and optionally restores the values from the request document /// </summary> /// <param name="context"></param> /// <returns></returns> private SPANQueryBuilderModel getModel(IDnsRequestContext context) { var m = new SPANQueryBuilderModel(); // set up ui defaults, overridden if we deserialize m.ExclusionAgeSelector.Age = 0; m.IndexVariable = "dx"; m.IndexVariableBMISelector.BMIOption = "1"; m.ObservationPeriod.EndPeriod = DateTime.Today; m.ObservationPeriod.StartPeriod = DateTime.Today; m.ReportSelector1.Column = NA; m.ReportSelector1.Group = NA; m.ReportSelector1.Option = NA; m.ReportSelector1.Row = NA; m.ReportSelector2.Column = NA; m.ReportSelector2.Group = NA; m.ReportSelector2.Option = NA; m.ReportSelector2.Row = NA; m.ReportSelector3.Column = NA; m.ReportSelector3.Group = NA; m.ReportSelector3.Option = NA; m.ReportSelector3.Row = NA; m.ReportSelector4.Column = NA; m.ReportSelector4.Group = NA; m.ReportSelector4.Option = NA; m.ReportSelector4.Row = NA; m.ReportSelector5.Column = NA; m.ReportSelector5.Group = NA; m.ReportSelector5.Option = NA; m.ReportSelector5.Row = NA; if ((context.Documents != null) && (context.Documents.Where(d => d.Name == REQUEST_FILENAME).Count() > 0)) { var doc = context.Documents.Where(d => d.Name == REQUEST_FILENAME).First(); using (var db = new DataContext()) { using (var docStream = new DocumentStream(db, doc.ID)) { XmlSerializer serializer = new XmlSerializer(typeof(drn_query_builder)); using (XmlTextReader reader = new XmlTextReader(docStream)) { drn_query_builder deserializedModel = (drn_query_builder)serializer.Deserialize(reader); // set up enrollment selector m.EnrollmentSelector.After = Convert.ToInt32(deserializedModel.enroll_post); m.EnrollmentSelector.Continuous = deserializedModel.enroll_cont == "y"; m.EnrollmentSelector.Prior = Convert.ToInt32(deserializedModel.enroll_prior); // set up exclusion age selector var agevar = deserializedModel.exclusion_criteria.FirstOrDefault().age_var; if (agevar != null) { m.ExclusionAgeSelector.Age = Convert.ToInt32(agevar[0].age); m.ExclusionAgeSelector.AgeOperator = agevar[0].age_operator; } // set up exclusion Dx selector var dxvar = deserializedModel.exclusion_criteria.FirstOrDefault().dx_var; if (dxvar != null) { //m.ExclusionDxSelector.SelectedCodes = dxvar[0].code.Select(c => new LookupListValue() { ItemCode = c.Value }); //m.ExclusionDxSelector.BoolOperator = dxvar[0].bool_operator; } // set up exclusion Px selector var pxvar = deserializedModel.exclusion_criteria.FirstOrDefault().px_var; if (pxvar != null) { //m.ExclusionPxSelector.SelectedCodes = pxvar[0].code.Select(c => new LookupListValue() { ItemCode = c.Value }); //m.ExclusionPxSelector.BoolOperator = pxvar[0].bool_operator; } // set up exclusion Rx selector var rxvar = deserializedModel.exclusion_criteria.FirstOrDefault().rx_var; if (rxvar != null) { //m.ExclusionRxSelector.SelectedCodes = rxvar[0].code.Select(c => new LookupListValue() { ItemCode = c.Value }); //m.ExclusionRxSelector.BoolOperator = rxvar[0].bool_operator; } // set up inclusion Dx selector dxvar = deserializedModel.inclusion_criteria.FirstOrDefault().dx_var; if (dxvar != null) { //m.InclusionDxSelector.SelectedCodes = dxvar[0].code.Select(c => new LookupListValue() { ItemCode = c.Value }); //m.InclusionDxSelector.BoolOperator = dxvar[0].bool_operator; } // set up inclusion Px selector pxvar = deserializedModel.inclusion_criteria.FirstOrDefault().px_var; if (pxvar != null) { //m.InclusionPxSelector.SelectedCodes = pxvar[0].code.Select(c => new LookupListValue() { ItemCode = c.Value }); //m.InclusionPxSelector.BoolOperator = pxvar[0].bool_operator; } // set up inclusion Rx selector rxvar = deserializedModel.inclusion_criteria.FirstOrDefault().rx_var; if (rxvar != null) { //m.InclusionRxSelector.SelectedCodes = rxvar[0].code.Select(c => new LookupListValue() { ItemCode = c.Value }); //m.InclusionRxSelector.BoolOperator = rxvar[0].bool_operator; } m.IndexVariable = deserializedModel.index_variable.FirstOrDefault().index_code; // set up index variable age selector agevar = deserializedModel.index_variable.FirstOrDefault().age_var; if (agevar != null) { m.IndexVariableAgeSelector.Age = Convert.ToInt32(agevar[0].age); m.IndexVariableAgeSelector.AgeAsOfDate = Convert.ToDateTime(agevar[0].as_of); m.IndexVariableAgeSelector.AgeOperator = agevar[0].age_operator; } ; // set up index variable bmi selector var bmivar = deserializedModel.index_variable.FirstOrDefault().bmi_var; if (bmivar != null) { m.IndexVariableBMISelector.BMI = bmivar[0].Value; m.IndexVariableBMISelector.BMIOption = bmivar[0].group; } ; // set up index variable Dx selector dxvar = deserializedModel.index_variable.FirstOrDefault().dx_var; if (dxvar != null) { //m.IndexVariableDxSelector.SelectedCodes = dxvar[0].code.Select(c => new LookupListValue() { ItemCode = c.Value }); //m.IndexVariableDxSelector.BoolOperator = dxvar[0].bool_operator; } // set up index variable Px selector pxvar = deserializedModel.index_variable.FirstOrDefault().px_var; if (pxvar != null) { //m.IndexVariablePxSelector.SelectedCodes = pxvar[0].code.Select(c => new LookupListValue() { ItemCode = c.Value }); //m.IndexVariablePxSelector.BoolOperator = pxvar[0].bool_operator; } // set up index variable Rx selector rxvar = deserializedModel.index_variable.FirstOrDefault().rx_var; if (rxvar != null) { //m.IndexVariableRxSelector.SelectedCodes = rxvar[0].code.Select(c => new LookupListValue() { ItemCode = c.Value }); //m.IndexVariableRxSelector.BoolOperator = rxvar[0].bool_operator; } // set up observation period range m.ObservationPeriod.EndPeriod = Convert.ToDateTime(deserializedModel.period_end); m.ObservationPeriod.StartPeriod = Convert.ToDateTime(deserializedModel.period_start); // set up reports if (deserializedModel.report != null) { foreach (var repvar in deserializedModel.report) { switch (repvar.Value) { case "Report0": m.ReportSelector1.Column = repvar.column ?? NA; m.ReportSelector1.Group = repvar.group ?? NA; m.ReportSelector1.Option = repvar.option ?? NA; m.ReportSelector1.Row = repvar.row ?? NA; break; case "Report1": m.ReportSelector2.Column = repvar.column ?? NA; m.ReportSelector2.Group = repvar.group ?? NA; m.ReportSelector2.Option = repvar.option ?? NA; m.ReportSelector2.Row = repvar.row ?? NA; break; case "Report2": m.ReportSelector3.Column = repvar.column ?? NA; m.ReportSelector3.Group = repvar.group ?? NA; m.ReportSelector3.Option = repvar.option ?? NA; m.ReportSelector3.Row = repvar.row ?? NA; break; case "Report3": m.ReportSelector4.Column = repvar.column ?? NA; m.ReportSelector4.Group = repvar.group ?? NA; m.ReportSelector4.Option = repvar.option ?? NA; m.ReportSelector4.Row = repvar.row ?? NA; break; case "Report4": m.ReportSelector5.Column = repvar.column ?? NA; m.ReportSelector5.Group = repvar.group ?? NA; m.ReportSelector5.Option = repvar.option ?? NA; m.ReportSelector5.Row = repvar.row ?? NA; break; } } } } } } } return(m); }
public void DocumentStreamFiltersRequestsCorrectly() { // ARRANGE CollectionConfigurationError[] errors; FilterInfo filterApple = new FilterInfo { FieldName = "Id", Predicate = Predicate.Contains, Comparand = "apple" }; FilterInfo filterOrange = new FilterInfo { FieldName = "Id", Predicate = Predicate.Contains, Comparand = "orange" }; FilterInfo filterMango = new FilterInfo { FieldName = "Id", Predicate = Predicate.Contains, Comparand = "mango" }; // (apple AND orange) OR mango var documentStreamInfo = new DocumentStreamInfo() { DocumentFilterGroups = new[] { new DocumentFilterConjunctionGroupInfo() { TelemetryType = TelemetryType.Request, Filters = new FilterConjunctionGroupInfo { Filters = new[] { filterApple, filterOrange } } }, new DocumentFilterConjunctionGroupInfo() { TelemetryType = TelemetryType.Request, Filters = new FilterConjunctionGroupInfo { Filters = new[] { filterMango } } } } }; var documentStream = new DocumentStream(documentStreamInfo, out errors, new ClockMock()); var requests = new[] { new RequestTelemetry() { Id = "apple" }, new RequestTelemetry() { Id = "orange" }, new RequestTelemetry() { Id = "mango" }, new RequestTelemetry() { Id = "apple orange" }, new RequestTelemetry() { Id = "apple mango" }, new RequestTelemetry() { Id = "orange mango" }, new RequestTelemetry() { Id = "apple orange mango" }, new RequestTelemetry() { Id = "none of the above" } }; // ACT var results = new bool[requests.Length]; bool errorsEncountered = false; for (int i = 0; i < requests.Length; i++) { CollectionConfigurationError[] runtimeErrors; results[i] = documentStream.CheckFilters(requests[i], out runtimeErrors); if (runtimeErrors.Any()) { errorsEncountered = true; } } // ASSERT Assert.AreEqual(0, errors.Length); Assert.IsFalse(errorsEncountered); Assert.IsFalse(results[0]); Assert.IsFalse(results[1]); Assert.IsTrue(results[2]); Assert.IsTrue(results[3]); Assert.IsTrue(results[4]); Assert.IsTrue(results[5]); Assert.IsTrue(results[6]); Assert.IsFalse(results[7]); }
Task <HttpResponseMessage> ExecuteAsync(CodeActivityContext context) { MultipartFormDataContent formData = new MultipartFormDataContent(); FileStream fs = null; var basePath = BasePath.Get(context); var request = new HttpRequestMessage() { RequestUri = new Uri(basePath + "/parseDocument"), Method = HttpMethod.Post, }; var apiKey = APIKey.Get(context); request.Headers.Add("X-Auth-Key", apiKey); var documentURL = DocumentURL.Get(context); if (documentURL != null && !documentURL.Equals("")) { formData.Add(new StringContent(documentURL, Encoding.UTF8), "url"); } var template = Template.Get(context); if (template != null && !template.Equals("")) { formData.Add(new StringContent(template, Encoding.UTF8), "template"); } var pdfTextExtraction = PDFTextExtraction.Get(context); if (pdfTextExtraction == PDFTextExtractionType.Fast) { formData.Add(new StringContent("fast", Encoding.UTF8), "pdf_text_extraction"); } else if (pdfTextExtraction == PDFTextExtractionType.Full) { formData.Add(new StringContent("full", Encoding.UTF8), "pdf_text_extraction"); } var userData = UserData.Get(context); if (userData != null && !userData.Equals("")) { formData.Add(new StringContent(userData, Encoding.UTF8), "user_data"); } var userDataSetExternalID = UserDataSetExternalID.Get(context); if (userDataSetExternalID != null && !userDataSetExternalID.Equals("")) { formData.Add(new StringContent(userDataSetExternalID, Encoding.UTF8), "user_data_set_external_id"); } var documentFilename = DocumentFilename.Get(context); var documentBytes = DocumentBytes.Get(context); var documentPath = DocumentPath.Get(context); var documentStream = DocumentStream.Get(context); if (documentBytes != null && documentBytes.Length > 0) { formData.Add(new ByteArrayContent(documentBytes), "document", documentFilename); } else if (documentPath != null && !documentPath.Equals("")) { fs = File.OpenRead(documentPath); formData.Add(new StreamContent(fs), "document", Path.GetFileName(documentPath)); } else if (documentStream != null && documentStream.Length > 0) { formData.Add(new StreamContent(documentStream), "document", documentFilename); } request.Content = formData; request.Properties["RequestTimeout"] = TimeSpan.FromSeconds(600); return(httpClient.SendAsync(request)); }