public CurveFile Transform(string jsonMessages, string AssayName) { var delim = new[] { '"' }; jsonMessages = Regex.Unescape(jsonMessages); jsonMessages = jsonMessages.TrimEnd(delim).TrimStart(delim); AssayName = Regex.Unescape(AssayName); AssayName = AssayName.TrimEnd(delim).TrimStart(delim); dynamic data = JObject.Parse(jsonMessages); long AssayDBID = 0; using (var repo = new AssayRepository()) { AssayDBID = repo.GetAssayID(AssayName); } CurveFile toReturn = JsonConvert.DeserializeObject <CurveFile>(jsonMessages); toReturn.AssayDBID = AssayDBID; //Extract extension from file name ExtractExtensionService helper = new ExtractExtensionService(); string[] fullFileName = new string[2]; fullFileName = helper.ExtractExt(toReturn); return(toReturn); }
public string[] ExtractExt(CurveFile curveObject) { string extension = Path.GetExtension(curveObject.FullFileName); string fileName = Path.GetFileNameWithoutExtension(curveObject.FullFileName); string[] toReturn = new string[2]; toReturn[0] = fileName; toReturn[1] = extension; return(toReturn); }
public string Post() { FileUploadService service = new FileUploadService(); FileValidationService fileService = new FileValidationService(); CurveFile[] toAdd = new CurveFile[HttpContext.Current.Request.Files.Count]; var j = 0; ArrayList InvalidFile = new ArrayList(); for (var i = 0; i < HttpContext.Current.Request.Files.Count; i++) { HttpPostedFile file = HttpContext.Current.Request.Files.Get(i); using (var binaryReader = new BinaryReader(file.InputStream)) { var fileBlob = binaryReader.ReadBytes(file.ContentLength); var fileJsonMeta = HttpContext.Current.Request[$"file-metadata-{i}"]; var AssayName = HttpContext.Current.Request[$"file-assayname-{i}"]; //sets up curve object attributes var curveFile = service.Transform(fileJsonMeta, AssayName); curveFile.Data = fileBlob; curveFile.SoftwareVersion = service.getVersionNum("SoftwareVersion", curveFile.Data, curveFile.FullFileName); curveFile.AssayVersion = service.getVersionNum("AssayVersion", curveFile.Data, curveFile.FullFileName); var result = fileService.ValidateFile(curveFile.Data, curveFile.FullFileName, AssayName); //file validation if (result.Indicator) { toAdd[j] = curveFile; j++; } else { InvalidFile.Add(curveFile.FullFileName + result.message); } } } using (var repo = new CurveFilesRepository()) { repo.AddCurveFile(toAdd); } //Httpresponse message with invalid files if (InvalidFile.Count != 0) { return(JsonConvert.SerializeObject(InvalidFile)); } return(JsonConvert.SerializeObject("Successful")); }