public string lookUpAssayInFile()
        {
            FileValidationService fileService = new FileValidationService();
            var results = new List <FileAndAssay>();

            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 fileName = HttpContext.Current.Request[$"file-metadata-{i}"];

                    var delim = new[] { '"' };
                    fileName = Regex.Unescape(fileName);
                    fileName = fileName.TrimEnd(delim).TrimStart(delim);

                    var AssayName = fileService.getAssayFromFile(fileBlob, fileName);

                    results.Add(new FileAndAssay
                    {
                        FileName = fileName,
                        Assay    = AssayName
                    });
                }
            }
            return(JsonConvert.SerializeObject(results));
        }
        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"));
        }