public double[] DataComplex(int channelNo, int shotNo, int start, int end, double stepD) { try { int step = (int)Math.Ceiling(stepD); int length = (end - start) / step; string fileDirectory; if (shotNo < 0) { throw new Exception("读取数据炮号应大于或等于0!"); } else if (shotNo == 0) { fileDirectory = DataFileParentDirectory + "\\" + CurrentShotNo.ToString() + "\\"; } else { fileDirectory = DataFileParentDirectory + "\\" + shotNo.ToString() + "\\"; } dataReader = DataFileFactory.GetReader(fileDirectory, dataFileName); double[] data = dataReader.LoadDataFromFileComplexRam(channelNo, (ulong)start, (ulong)step, (ulong)length, 1); return(data); } catch { return(null); } }
public double[] Data(int channelNo, int shotNo, int start, int length) { try { string fileDirectory; if (shotNo < 0) { throw new Exception("读取数据炮号应大于或等于0!"); } else if (shotNo == 0) { fileDirectory = DataFileParentDirectory + "\\" + CurrentShotNo.ToString() + "\\"; } else { fileDirectory = DataFileParentDirectory + "\\" + shotNo.ToString() + "\\"; } dataReader = DataFileFactory.GetReader(fileDirectory, dataFileName); double[] data = dataReader.LoadDataFromFile(channelNo, (ulong)start, (ulong)length); return(data); } catch { return(null); } }
public async Task Given_AddData_When_UserDoesNotExistAndFileTypeIsInput_Then_ShouldSucceed() { var command = GetAddDataCommand(FileType.Input); var user = UserFactory.GetUser(); var modelFile = DataFileFactory.GetModelFile(user); userServiceMock.Setup(service => service.GetByUsername(It.IsAny <string>())) .ReturnsAsync(Maybe <User> .None); userServiceMock.Setup(service => service.AddUser(It.IsAny <AddUserCommand>())) .ReturnsAsync(Result.Success(user)); dataFileReadRepositoryMock.Setup(repository => repository.Find(It.IsAny <Expression <Func <DataFile, bool> > >())) .ReturnsAsync(new List <DataFile> { modelFile }); fileStorageServiceMock.Setup(service => service.SaveFile(It.IsAny <SaveFileCommand>())) .Returns(Task.CompletedTask); dataFileWriteRepositoryMock.Setup(repository => repository.Create(It.IsAny <DataFile>())) .Returns(Task.CompletedTask); dataFileWriteRepositoryMock.Setup(repository => repository.Commit()) .Returns(Task.CompletedTask); var result = await SystemUnderTest.AddData(command); result.IsSuccess.Should().BeTrue(); }
public async Task Given_GetData_ShouldReturnStream() { var query = GetGetFilteredDataQuery(); var user = UserFactory.GetUser(); var dataFile = DataFileFactory.GetDataFile(user); var fileInfo = new FileInfo() { Filepath = $"{basePath}{testDataPath}{csvExampleFilename}", Filename = "Filename" }; dataFileReadRepositoryMock.Setup(repository => repository.Find(It.IsAny <Expression <Func <DataFile, bool> > >())) .ReturnsAsync(new List <DataFile>() { dataFile }); fileStorageServiceMock.Setup(service => service.GetFileInfo(It.IsAny <GetFileQuery>())) .Returns(Result.Success(fileInfo)); var stream = await SystemUnderTest.GetData(query); stream.Should().NotBeNull(); dataFileReadRepositoryMock.Verify(repository => repository.Find(It.IsAny <Expression <Func <DataFile, bool> > >()), Times.Once); fileStorageServiceMock.Verify(service => service.GetFileInfo(It.IsAny <GetFileQuery>()), Times.Once); }
public IHttpActionResult Integrate(Integration instructions) { // EXTRACT string baseDir = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"ParseThese")); string downloadDir = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Downloads")); List <DataFile> sourceDataFiles = new List <DataFile>(); List <DataFile> targetDataFiles = new List <DataFile>(); // Iterate over sources foreach (var s in instructions.Sources) { if (!File.Exists($@"{baseDir}\{s.Path}")) { continue; } switch (s.Type.ToLower()) { case "csv": sourceDataFiles.Add(DataFileFactory.ExtractCsv(s)); break; // TODO: Parse other filetypes } } // Iterate over targets foreach (var s in instructions.Targets) { if (!File.Exists($@"{baseDir}\{s.Path}")) { continue; } switch (s.Type.ToLower()) { case "csv": targetDataFiles.Add(DataFileFactory.ExtractCsv(s)); break; // TODO: Parse other filetypes } } // TRANSFORM foreach (var df in sourceDataFiles) { foreach (var tf in targetDataFiles) { var mappingList = instructions.Mappings.Where(m => m.Source.StartsWith(df.Info.Name) && m.Target.StartsWith(tf.Info.Name)).ToList(); if (mappingList.Count == 0) { continue; } string[] cols = mappingList.Select(m => m.Source.Split('.')[1]).ToArray(); DataTable selected = df.SelectColumns(cols); foreach (var m in mappingList) { selected.Columns[m.Source.Split('.')[1]].ColumnName = m.Target.Split('.')[1]; } Arithmetic operation = new Arithmetic(tf); operation.SetValue("AreaCode", 0, Convert.ToInt32(operation.Average("AreaCode"))); //TODO: Support more than just COPY tf.Data.Merge(selected); } } // LOAD foreach (var tf in targetDataFiles) { tf.Save(); } // Return the target file(s) if (File.Exists($@"{downloadDir}\data.zip")) { File.Delete($@"{downloadDir}\data.zip"); } using (ZipArchive zip = ZipFile.Open($@"{downloadDir}\data.zip", ZipArchiveMode.Create)) { foreach (var tf in targetDataFiles) { zip.CreateEntryFromFile(tf.FullPath, tf.Info.Path); } } return(Ok(new Download() { Zip = @"downloads\data.zip" })); //FileHttpResponseMessage result = new FileHttpResponseMessage("data.zip", HttpStatusCode.OK); //var stream = new FileStream($@"{baseDir}\data.zip", FileMode.Open); //result.Content = new StreamContent(stream); //result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/zip"); //result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") //{ // FileName = "data.zip" //}; //return result; }