Пример #1
0
        public DefinitionsService(
            ILogger logger,
            IDatasetRepository dataSetsRepository,
            ISearchRepository <DatasetDefinitionIndex> datasetDefinitionSearchRepository,
            IDatasetsResiliencePolicies datasetsResiliencePolicies,
            IExcelWriter <DatasetDefinition> excelWriter,
            IBlobClient blobClient,
            IDefinitionChangesDetectionService definitionChangesDetectionService,
            IMessengerService messengerService)
        {
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(dataSetsRepository, nameof(dataSetsRepository));
            Guard.ArgumentNotNull(datasetDefinitionSearchRepository, nameof(datasetDefinitionSearchRepository));
            Guard.ArgumentNotNull(datasetsResiliencePolicies, nameof(datasetsResiliencePolicies));
            Guard.ArgumentNotNull(excelWriter, nameof(excelWriter));
            Guard.ArgumentNotNull(definitionChangesDetectionService, nameof(definitionChangesDetectionService));
            Guard.ArgumentNotNull(messengerService, nameof(messengerService));

            _logger             = logger;
            _datasetsRepository = dataSetsRepository;
            _datasetDefinitionSearchRepository       = datasetDefinitionSearchRepository;
            _datasetDefinitionSearchRepositoryPolicy = datasetsResiliencePolicies.DatasetDefinitionSearchRepository;
            _datasetsRepositoryPolicy = datasetsResiliencePolicies.DatasetRepository;
            _excelWriter      = excelWriter;
            _blobClient       = blobClient;
            _blobClientPolicy = datasetsResiliencePolicies.BlobClient;
            _definitionChangesDetectionService = definitionChangesDetectionService;
            _messengerService = messengerService;
        }
 public MainViewModel(
     IFileReaderProvider fileReaderProvider,
     ICoverMatrixManager coverMatrixManager,
     IExcelWriter excelWriter,
     IValidateService validateService,
     IGroupingManager groupingManager,
     ITxtExporter txtExporter,
     IFileChecker fileChecker,
     IFileReader fileReader,
     IOpenFileDialog openFileDialog) : base(validateService)
 {
     Progress              = new ProgressBarModel();
     _txtExportert         = txtExporter;
     _fileChecker          = fileChecker;
     _fileReader           = fileReader;
     _openFileDialog       = openFileDialog;
     _fileReaderProvider   = fileReaderProvider;
     _coverMatrixManager   = coverMatrixManager;
     _excelWriter          = excelWriter;
     RunIndicatorVisible   = false;
     ExcelIndicatorVisible = false;
     CmdCancelComputeData  = new DelegateCommand(async() => await CancelComputeData(), () => CancelEnabled);
     CmdComputeData        = new DelegateCommand(async() => await ComputeData(), RunEnableCheck);
     CmdReadFile           = new DelegateCommand(ReadFile, () => RunButtonIndicatorVisible);
     CmdExportToExcel      = new DelegateCommand(async() => await ExportToExcel(), () => CanEnable);
     CmdExportTstToTxt     = new DelegateCommand(async() => await ExportToTxt(CoverResult.TestMatrix, "_Obiekty_testowe"), () => CanEnable);
     CmdExportTrnToTxt     = new DelegateCommand(async() => await ExportToTxt(CoverResult.DataMatrix, "_Obiekty_treningowe"), () => CanEnable);
     MethodsDelegates      = groupingManager.GetGroupingMethods();
     SelectedMethod        = MethodsDelegates.FirstOrDefault();
 }
Пример #3
0
 public ExcelFileHandler(IExcelReader reader, IExcelWriter writer, IMeasureString measure = null)
 {
     this._excelReader  = reader;
     this._excelWriter  = writer;
     this._measure      = measure;
     this._documentInfo = new DocumentProperties();
 }
Пример #4
0
 /// <summary>
 /// Initialize a new read-write <see cref="T:Dt.Xls.ExcelOperator" /> with special <see cref="T:Dt.Xls.IExcelReader" /> and <see cref="T:Dt.Xls.IExcelWriter" />.
 /// </summary>
 /// <param name="reader">An <see cref="T:Dt.Xls.IExcelReader" /> indicate the reader.</param>
 /// <param name="writer">An <see cref="T:Dt.Xls.IExcelWriter" /> indicate the writer.</param>
 /// <param name="measure">
 /// An <see cref="T:Dt.Xls.IMeasureString" /> indicate the utility instance for measuring string.
 /// The default value is <see langword="null" />.
 /// </param>
 /// <exception cref="T:System.ArgumentNullException">
 /// Both the <paramref name="reader" /> and <paramref name="writer" /> are <see langword="null" />.
 /// </exception>
 public ExcelOperator(IExcelReader reader, IExcelWriter writer, IMeasureString measure = null)
 {
     if (object.ReferenceEquals(reader, null) && object.ReferenceEquals(writer, null))
     {
         throw new ArgumentNullException(ResourceHelper.GetResourceString("readerAndWriterNullError"));
     }
     this._fileHandler = new ExcelFileHandler(reader, writer, null);
 }
Пример #5
0
 /// <summary>
 /// 构造器
 /// </summary>
 /// <param name="dllFileName">dll文件名</param>
 /// <param name="className">命名空间.类名</param>
 /// <param name="excelPath">excel文件路径</param>
 public ExcelWriter(string dllFileName, string className, string excelPath)
 {
     if (excelWriter.IsNull())
     {
         excelWriter = (IExcelWriter)dllFileName.LoadClass(className);
         excelWriter.Open(excelPath);
     }
 }
Пример #6
0
 /// <summary>
 /// 构造器 指定classNameDllName(ExcelWriterProviderName) 默认Pub.Class.Excel.OleDb.ExcelWriter,Pub.Class.Excel.OleDb
 /// </summary>
 /// <param name="classNameAndAssembly">命名空间.类名,程序集名称</param>
 /// <param name="excelPath">excel文件路径</param>
 public ExcelWriter(string classNameAndAssembly, string excelPath)
 {
     if (excelWriter.IsNull())
     {
         excelWriter = (IExcelWriter)classNameAndAssembly.IfNullOrEmpty("Pub.Class.Excel.OleDb.ExcelWriter,Pub.Class.Excel.OleDb").LoadClass();
         excelWriter.Open(excelPath);
     }
 }
Пример #7
0
 /// <summary>
 /// 构造器 从Web.config中读ExcelWriterProviderName 默认Pub.Class.Excel.OleDb.ExcelWriter,Pub.Class.Excel.OleDb
 /// </summary>
 /// <param name="excelPath">excel文件路径</param>
 public ExcelWriter(string excelPath)
 {
     if (excelWriter.IsNull())
     {
         excelWriter = (IExcelWriter)(WebConfig.GetApp("ExcelWriterProviderName") ?? "Pub.Class.Excel.OleDb.ExcelWriter,Pub.Class.Excel.OleDb").LoadClass();
         excelWriter.Open(excelPath);
     }
 }
Пример #8
0
 public ConfigurationEntriesController(Dispatcher dispatcher,
                                       ILogger <ConfigurationEntriesController> logger,
                                       IOptionsSnapshot <AppSettings> appSettings,
                                       IExcelWriter <List <ConfigurationEntry> > configurationEntriesExcelWriter,
                                       IExcelReader <List <ConfigurationEntry> > configurationEntriesExcelReader)
 {
     _dispatcher  = dispatcher;
     _logger      = logger;
     _appSettings = appSettings.Value;
     _configurationEntriesExcelWriter = configurationEntriesExcelWriter;
     _configurationEntriesExcelReader = configurationEntriesExcelReader;
 }
Пример #9
0
 public ConfigurationEntriesController(Dispatcher dispatcher,
                                       ILogger <ConfigurationEntriesController> logger,
                                       IOptionsSnapshot <ConfigurationModuleOptions> moduleOptions,
                                       IExcelWriter <List <ConfigurationEntry> > configurationEntriesExcelWriter,
                                       IExcelReader <List <ConfigurationEntry> > configurationEntriesExcelReader)
 {
     _dispatcher    = dispatcher;
     _logger        = logger;
     _moduleOptions = moduleOptions.Value;
     _configurationEntriesExcelWriter = configurationEntriesExcelWriter;
     _configurationEntriesExcelReader = configurationEntriesExcelReader;
 }
Пример #10
0
 public void CleanUp()
 {
     if (_excelWriter != null)
     {
         _excelWriter.Dispose();
         _excelWriter = null;
     }
     if (ExcelReader != null)
     {
         ExcelReader.Dispose();
     }
     File.Delete(_filePath);
 }
Пример #11
0
 public FileConverterController(
     IFileReaderProvider fileReaderProvider,
     IGroupingManager groupingManager,
     ITxtExporter txtExportert,
     ICoverMatrixManager coverMatrixManager,
     IExcelWriter excelWriter)
 {
     _fileReaderProvider = fileReaderProvider;
     _groupingManager    = groupingManager;
     _txtExportert       = txtExportert;
     _coverMatrixManager = coverMatrixManager;
     _excelWriter        = excelWriter;
 }
Пример #12
0
 public static void WriteStringExt(this XmlWriter This, string str, IExcelWriter writer)
 {
     try
     {
         if (str.Length <= 0x7fff)
         {
             This.WriteString(str);
         }
         else
         {
             This.WriteString(str.Substring(0, 0x7fff));
         }
     }
     catch (Exception exception)
     {
         writer.OnExcelSaveError(new ExcelWarning(exception.Message, ExcelWarningCode.General, -1, -1, -1, exception));
     }
 }
Пример #13
0
 public QueryConnectHelper(
     IArchitectureDetector architectureDetector,
     IConnectionStringHelper connectionStringHelper,
     IDataChecker dataChecker,
     IDbConnectionFactory dbConnectionFactory,
     IExcelWriter excelWriter,
     ILog log,
     IRelationshipsDataChecker relationshipsDataChecker,
     ISharpCloudApiFactory sharpCloudApiFactory)
 {
     _architectureDetector   = architectureDetector;
     _connectionStringHelper = connectionStringHelper;
     _dataChecker            = dataChecker;
     _dbConnectionFactory    = dbConnectionFactory;
     _excelWriter            = excelWriter;
     _logger = log;
     _relationshipsDataChecker = relationshipsDataChecker;
     _sharpCloudApiFactory     = sharpCloudApiFactory;
 }
Пример #14
0
 static DefinitionsService CreateDefinitionsService(
     ILogger logger = null,
     IDatasetRepository datasetsRepository = null,
     ISearchRepository <DatasetDefinitionIndex> datasetDefinitionSearchRepository = null,
     IDatasetsResiliencePolicies datasetsResiliencePolicies = null,
     IExcelWriter <DatasetDefinition> excelWriter           = null,
     IBlobClient blobClient = null,
     IDefinitionChangesDetectionService definitionChangesDetectionService = null,
     IMessengerService messengerService = null)
 {
     return(new DefinitionsService(logger ?? CreateLogger(),
                                   datasetsRepository ?? CreateDataSetsRepository(),
                                   datasetDefinitionSearchRepository ?? CreateDatasetDefinitionSearchRepository(),
                                   datasetsResiliencePolicies ?? CreateDatasetsResiliencePolicies(),
                                   excelWriter ?? CreateExcelWriter(),
                                   blobClient ?? CreateBlobClient(),
                                   definitionChangesDetectionService ?? CreateChangesDetectionService(),
                                   messengerService ?? CreateMessengerService()));
 }
Пример #15
0
 /// <summary>
 /// Initializes a new instance of ApplicationLogic class.
 /// </summary>
 /// <param name="logger">logger object</param>
 /// <param name="excelWriter"></param>
 /// <param name="markdownReader"></param>
 /// <param name="markdownParser"></param>
 /// <param name="excelDecoder"></param>
 public ApplicationLogic(
     ILogger <ApplicationLogic> logger,
     IExcelReader excelReader,
     IExcelWriter excelWriter,
     IMarkdownReader markdownReader,
     IMarkdownParser markdownParser,
     IMarkdownComposer markdownComposer,
     IExcelDecoder excelDecoder,
     IExcelEncoder excelEncoder
     )
 {
     _logger           = logger;
     _excelReader      = excelReader;
     _excelWriter      = excelWriter;
     _markdownReader   = markdownReader;
     _markdownParser   = markdownParser;
     _markdownComposer = markdownComposer;
     _excelDecoder     = excelDecoder;
     _excelEncoder     = excelEncoder;
 }
Пример #16
0
 private QueryConnectHelper CreateQueryConnectHelper(
     IArchitectureDetector architectureDetector     = null,
     IConnectionStringHelper connectionStringHelper = null,
     IDataChecker dataChecker = null,
     IDbConnectionFactory dbConnectionFactory = null,
     IExcelWriter excelWriter = null,
     ILog log = null,
     IRelationshipsDataChecker relationshipsDataChecker = null,
     ISharpCloudApiFactory sharpCloudApiFactory         = null)
 {
     return(new QueryConnectHelper(
                architectureDetector ?? Mock.Of <IArchitectureDetector>(),
                connectionStringHelper ?? Mock.Of <IConnectionStringHelper>(),
                dataChecker ?? Mock.Of <IDataChecker>(),
                dbConnectionFactory ?? Mock.Of <IDbConnectionFactory>(),
                excelWriter ?? Mock.Of <IExcelWriter>(),
                log ?? Mock.Of <ILog>(),
                relationshipsDataChecker ?? Mock.Of <IRelationshipsDataChecker>(),
                sharpCloudApiFactory ?? Mock.Of <ISharpCloudApiFactory>()));
 }
Пример #17
0
        public async Task SaveDefinition_GivenValidYamlAndDoesContainsExistingItemWithNoModelUpdates_ThenDoesNotAddMessageToTopicAndReturnsOK()
        {
            //Arrange
            string yaml         = CreateRawDefinition();
            string definitionId = "9183";

            byte[]       byteArray = Encoding.UTF8.GetBytes(yaml);
            MemoryStream stream    = new MemoryStream(byteArray);

            IHeaderDictionary headerDictionary = new HeaderDictionary();

            headerDictionary
            .Add("yaml-file", new StringValues(yamlFile));

            HttpRequest request = Substitute.For <HttpRequest>();

            request
            .Headers
            .Returns(headerDictionary);

            request
            .Body
            .Returns(stream);

            ILogger logger = CreateLogger();

            HttpStatusCode statusCode = HttpStatusCode.Created;

            DatasetDefinition existingDatasetDefinition = new DatasetDefinition
            {
                Id = definitionId
            };

            IDatasetRepository datasetsRepository = CreateDataSetsRepository();

            datasetsRepository
            .SaveDefinition(Arg.Any <DatasetDefinition>())
            .Returns(statusCode);

            datasetsRepository
            .GetDatasetDefinition(Arg.Is(definitionId))
            .Returns(existingDatasetDefinition);

            byte[] excelAsBytes = new byte[100];

            IExcelWriter <DatasetDefinition> excelWriter = CreateExcelWriter();

            excelWriter
            .Write(Arg.Any <DatasetDefinition>())
            .Returns(excelAsBytes);

            ICloudBlob blob = Substitute.For <ICloudBlob>();

            IBlobClient blobClient = CreateBlobClient();

            blobClient
            .GetBlockBlobReference(Arg.Any <string>())
            .Returns(blob);

            DatasetDefinitionChanges datasetDefinitionChanges = new DatasetDefinitionChanges();

            IDefinitionChangesDetectionService definitionChangesDetectionService = CreateChangesDetectionService();

            definitionChangesDetectionService
            .DetectChanges(Arg.Any <DatasetDefinition>(), Arg.Is(existingDatasetDefinition))
            .Returns(datasetDefinitionChanges);

            IMessengerService messengerService = CreateMessengerService();

            DefinitionsService service = CreateDefinitionsService(
                logger,
                datasetsRepository,
                excelWriter: excelWriter,
                blobClient: blobClient,
                definitionChangesDetectionService: definitionChangesDetectionService,
                messengerService: messengerService);

            //Act
            IActionResult result = await service.SaveDefinition(request);

            //Assert
            result
            .Should()
            .BeOfType <OkResult>();

            await
            messengerService
            .DidNotReceive()
            .SendToTopic(
                Arg.Is(ServiceBusConstants.TopicNames.DataDefinitionChanges),
                Arg.Any <DatasetDefinitionChanges>(),
                Arg.Any <IDictionary <string, string> >());
        }
Пример #18
0
 public void Write(IExcelWriter writer, IVisualElementContext context)
 {
     throw new NotImplementedException();
 }
Пример #19
0
        async public Task SaveDefinition_GivenValidYamlAndSearchDoesNotContainExistingItem_ThenSaveWasSuccesfulAndReturnsOK()
        {
            //Arrange
            string yaml         = CreateRawDefinition();
            string definitionId = "9183";

            byte[]       byteArray = Encoding.UTF8.GetBytes(yaml);
            MemoryStream stream    = new MemoryStream(byteArray);

            IHeaderDictionary headerDictionary = new HeaderDictionary();

            headerDictionary
            .Add("yaml-file", new StringValues(yamlFile));

            HttpRequest request = Substitute.For <HttpRequest>();

            request
            .Headers
            .Returns(headerDictionary);

            request
            .Body
            .Returns(stream);

            ILogger logger = CreateLogger();

            HttpStatusCode statusCode = HttpStatusCode.Created;

            IDatasetRepository datasetsRepository = CreateDataSetsRepository();

            datasetsRepository
            .SaveDefinition(Arg.Any <DatasetDefinition>())
            .Returns(statusCode);

            ISearchRepository <DatasetDefinitionIndex> searchRepository = CreateDatasetDefinitionSearchRepository();

            searchRepository
            .SearchById(Arg.Is(definitionId))
            .Returns((DatasetDefinitionIndex)null);

            byte[] excelAsBytes = new byte[100];

            IExcelWriter <DatasetDefinition> excelWriter = CreateExcelWriter();

            excelWriter
            .Write(Arg.Any <DatasetDefinition>())
            .Returns(excelAsBytes);

            ICloudBlob blob = Substitute.For <ICloudBlob>();

            IBlobClient blobClient = CreateBlobClient();

            blobClient
            .GetBlockBlobReference(Arg.Any <string>())
            .Returns(blob);

            DatasetDefinitionChanges datasetDefinitionChanges = new DatasetDefinitionChanges();

            IDefinitionChangesDetectionService definitionChangesDetectionService = CreateChangesDetectionService();

            definitionChangesDetectionService
            .DetectChanges(Arg.Any <DatasetDefinition>(), Arg.Any <DatasetDefinition>())
            .Returns(datasetDefinitionChanges);

            DefinitionsService service = CreateDefinitionsService(logger, datasetsRepository, searchRepository,
                                                                  excelWriter: excelWriter, blobClient: blobClient, definitionChangesDetectionService: definitionChangesDetectionService);

            //Act
            IActionResult result = await service.SaveDefinition(request);

            //Assert
            result
            .Should()
            .BeOfType <OkResult>();

            await searchRepository
            .Received(1)
            .SearchById(Arg.Is(definitionId));

            await searchRepository
            .Received(1)
            .Index(Arg.Is <IEnumerable <DatasetDefinitionIndex> >(
                       i => i.First().Description == "14/15 description" &&
                       i.First().Id == "9183" &&
                       !string.IsNullOrWhiteSpace(i.First().ModelHash) &&
                       i.First().Name == "14/15" &&
                       i.First().ProviderIdentifier == "None"
                       ));

            await datasetsRepository
            .Received(1)
            .SaveDefinition(Arg.Is <DatasetDefinition>(
                                i => i.Description == "14/15 description" &&
                                i.Id == "9183" &&
                                i.Name == "14/15"
                                ));

            logger
            .Received(1)
            .Information(Arg.Is($"Successfully saved file: {yamlFile} to cosmos db"));
        }
Пример #20
0
        public async Task SaveDefinition_GivenValidYamlAndSearchDoesContainsExistingItemWithNoUpdates_ThenDatasetDefinitionSavedInCosmosAndSearchNotUpdatedAndReturnsOK()
        {
            //Arrange
            string yaml         = CreateRawDefinition();
            string definitionId = "9183";

            byte[]       byteArray = Encoding.UTF8.GetBytes(yaml);
            MemoryStream stream    = new MemoryStream(byteArray);

            IHeaderDictionary headerDictionary = new HeaderDictionary();

            headerDictionary
            .Add("yaml-file", new StringValues(yamlFile));

            HttpRequest request = Substitute.For <HttpRequest>();

            request
            .Headers
            .Returns(headerDictionary);

            request
            .Body
            .Returns(stream);

            ILogger logger = CreateLogger();

            HttpStatusCode statusCode = HttpStatusCode.Created;

            IDatasetRepository datasetsRepository = CreateDataSetsRepository();

            datasetsRepository
            .SaveDefinition(Arg.Any <DatasetDefinition>())
            .Returns(statusCode);

            DatasetDefinitionIndex existingIndex = new DatasetDefinitionIndex()
            {
                Description        = "14/15 description",
                Id                 = "9183",
                LastUpdatedDate    = new DateTimeOffset(2018, 6, 19, 14, 10, 2, TimeSpan.Zero),
                ModelHash          = "DFBD0E1ACD29CEBCF5AD45674688D3780D916294C4DF878074AFD01B67BF129C",
                Name               = "14/15",
                ProviderIdentifier = "None",
            };

            ISearchRepository <DatasetDefinitionIndex> searchRepository = CreateDatasetDefinitionSearchRepository();

            searchRepository
            .SearchById(Arg.Is(definitionId))
            .Returns(existingIndex);

            byte[] excelAsBytes = new byte[100];

            IExcelWriter <DatasetDefinition> excelWriter = CreateExcelWriter();

            excelWriter
            .Write(Arg.Any <DatasetDefinition>())
            .Returns(excelAsBytes);

            ICloudBlob blob = Substitute.For <ICloudBlob>();

            IBlobClient blobClient = CreateBlobClient();

            blobClient
            .GetBlockBlobReference(Arg.Any <string>())
            .Returns(blob);

            DatasetDefinitionChanges datasetDefinitionChanges = new DatasetDefinitionChanges();

            IDefinitionChangesDetectionService definitionChangesDetectionService = CreateChangesDetectionService();

            definitionChangesDetectionService
            .DetectChanges(Arg.Any <DatasetDefinition>(), Arg.Any <DatasetDefinition>())
            .Returns(datasetDefinitionChanges);

            DefinitionsService service = CreateDefinitionsService(logger, datasetsRepository, searchRepository, excelWriter: excelWriter, blobClient: blobClient, definitionChangesDetectionService: definitionChangesDetectionService);

            //Act
            IActionResult result = await service.SaveDefinition(request);

            //Assert
            result
            .Should()
            .BeOfType <OkResult>();

            await searchRepository
            .Received(1)
            .SearchById(Arg.Is(definitionId));

            await searchRepository
            .Received(0)
            .Index(Arg.Any <IEnumerable <DatasetDefinitionIndex> >());

            await datasetsRepository
            .Received(1)
            .SaveDefinition(Arg.Is <DatasetDefinition>(
                                i => i.Description == "14/15 description" &&
                                i.Id == "9183" &&
                                i.Name == "14/15"
                                ));

            logger
            .Received(1)
            .Information(Arg.Is($"Successfully saved file: {yamlFile} to cosmos db"));
        }
Пример #21
0
        async public Task SaveDefinition_GivenValidYamlButFailsToGenerateExcelFile_ReturnsInvalidServerError()
        {
            //Arrange
            string yaml         = CreateRawDefinition();
            string definitionId = "9183";

            byte[]       byteArray = Encoding.UTF8.GetBytes(yaml);
            MemoryStream stream    = new MemoryStream(byteArray);

            IHeaderDictionary headerDictionary = new HeaderDictionary();

            headerDictionary
            .Add("yaml-file", new StringValues(yamlFile));

            HttpRequest request = Substitute.For <HttpRequest>();

            request
            .Headers
            .Returns(headerDictionary);

            request
            .Body
            .Returns(stream);

            ILogger logger = CreateLogger();

            HttpStatusCode statusCode = HttpStatusCode.Created;

            IDatasetRepository datasetsRepository = CreateDataSetsRepository();

            datasetsRepository
            .SaveDefinition(Arg.Any <DatasetDefinition>())
            .Returns(statusCode);

            ISearchRepository <DatasetDefinitionIndex> searchRepository = CreateDatasetDefinitionSearchRepository();

            searchRepository
            .SearchById(Arg.Is(definitionId))
            .Returns((DatasetDefinitionIndex)null);

            byte[] excelAsBytes = new byte[0];

            IExcelWriter <DatasetDefinition> excelWriter = CreateExcelWriter();

            excelWriter
            .Write(Arg.Any <DatasetDefinition>())
            .Returns(excelAsBytes);

            DatasetDefinitionChanges datasetDefinitionChanges = new DatasetDefinitionChanges();

            IDefinitionChangesDetectionService definitionChangesDetectionService = CreateChangesDetectionService();

            definitionChangesDetectionService
            .DetectChanges(Arg.Any <DatasetDefinition>(), Arg.Any <DatasetDefinition>())
            .Returns(datasetDefinitionChanges);

            DefinitionsService service = CreateDefinitionsService(logger, datasetsRepository, searchRepository, excelWriter: excelWriter, definitionChangesDetectionService: definitionChangesDetectionService);

            //Act
            IActionResult result = await service.SaveDefinition(request);

            //Assert
            result
            .Should()
            .BeOfType <InternalServerErrorResult>()
            .Which
            .Value
            .Should()
            .Be($"Failed to generate excel file for 14/15");

            logger
            .Received(1)
            .Error(Arg.Is($"Failed to generate excel file for 14/15"));
        }
Пример #22
0
        async public Task SaveDefinition_GivenValidYamlButFailsToUploadToBlobStorage_ReturnsInvalidServerError()
        {
            //Arrange
            string yaml         = CreateRawDefinition();
            string definitionId = "9183";

            byte[]       byteArray = Encoding.UTF8.GetBytes(yaml);
            MemoryStream stream    = new MemoryStream(byteArray);

            IHeaderDictionary headerDictionary = new HeaderDictionary();

            headerDictionary
            .Add("yaml-file", new StringValues(yamlFile));

            HttpRequest request = Substitute.For <HttpRequest>();

            request
            .Headers
            .Returns(headerDictionary);

            request
            .Body
            .Returns(stream);

            ILogger logger = CreateLogger();

            HttpStatusCode statusCode = HttpStatusCode.Created;

            IDatasetRepository datasetsRepository = CreateDataSetsRepository();

            datasetsRepository
            .SaveDefinition(Arg.Any <DatasetDefinition>())
            .Returns(statusCode);

            ISearchRepository <DatasetDefinitionIndex> searchRepository = CreateDatasetDefinitionSearchRepository();

            searchRepository
            .SearchById(Arg.Is(definitionId))
            .Returns((DatasetDefinitionIndex)null);

            byte[] excelAsBytes = new byte[100];

            IExcelWriter <DatasetDefinition> excelWriter = CreateExcelWriter();

            excelWriter
            .Write(Arg.Any <DatasetDefinition>())
            .Returns(excelAsBytes);

            ICloudBlob blob = Substitute.For <ICloudBlob>();

            blob
            .When(x => x.UploadFromStreamAsync(Arg.Any <Stream>()))
            .Do(x => { throw new Exception($"Failed to upload 14/15 blob storage"); });

            IBlobClient blobClient = CreateBlobClient();

            blobClient
            .GetBlockBlobReference(Arg.Is("schemas/14_15.xlsx"))
            .Returns(blob);

            DatasetDefinitionChanges datasetDefinitionChanges = new DatasetDefinitionChanges();

            IDefinitionChangesDetectionService definitionChangesDetectionService = CreateChangesDetectionService();

            definitionChangesDetectionService
            .DetectChanges(Arg.Any <DatasetDefinition>(), Arg.Any <DatasetDefinition>())
            .Returns(datasetDefinitionChanges);

            DefinitionsService service = CreateDefinitionsService(logger, datasetsRepository, searchRepository,
                                                                  excelWriter: excelWriter, blobClient: blobClient, definitionChangesDetectionService: definitionChangesDetectionService);

            //Act
            IActionResult result = await service.SaveDefinition(request);

            //Assert
            result
            .Should()
            .BeOfType <InternalServerErrorResult>()
            .Which
            .Value
            .Should()
            .Be($"Failed to upload 14/15 blob storage");
        }
Пример #23
0
 public ExcelOpenXmlProvider(bool printHeader, string sheetName)
 {
     _excelWriter = new ExcelOpenXmlSheetWriter(printHeader);
     _excelReader = new ExcelOpenXmlSheetReader(sheetName);
 }
Пример #24
0
 /// <summary>
 /// Initialize a new write-only <see cref="T:Dt.Xls.ExcelOperator" /> with special <see cref="T:Dt.Xls.IExcelWriter" />.
 /// </summary>
 /// <param name="writer">
 /// An <see cref="T:Dt.Xls.IExcelWriter" /> indicate the writer.
 /// </param>
 /// <param name="measure">
 /// An <see cref="T:Dt.Xls.IMeasureString" /> indicate the utility instance for measuring string.
 /// The default value is <see langword="null" />.
 /// </param>
 /// <exception cref="T:System.ArgumentNullException">The <paramref name="writer" /> is <see langword="null" />.</exception>
 public ExcelOperator(IExcelWriter writer, IMeasureString measure = null) : this(null, writer, measure)
 {
 }
Пример #25
0
 public DataReaderExcelWriter(ExcelVersion version)
 {
     _excelWriter = new ExcelWriter(version);
 }
 public ExcelOpenXmlProvider(bool printHeader)
 {
     _excelWriter = new ExcelOpenXmlSheetWriter(printHeader);
     _excelReader = new ExcelOpenXmlSheetReader();
 }
Пример #27
0
 public void Initialize()
 {
     _filePath    = GetExcelFilePathToWrite();
     _excelWriter = new ExcelWriter(_filePath);
 }
Пример #28
0
 internal static FONTRecord GetFontBiffRecord(IExcelFont font, IExcelWriter writer)
 {
     return(new FONTRecord {
         CharacterSet = font.CharSetIndex, ColorIndex = (ushort)writer.GetPaletteColor(font.FontColor), FontFamily = (byte)font.FontFamily, FontName = font.FontName, FontHeight = (ushort)(font.FontSize * 20.0), IsBold = font.IsBold, IsItalic = font.IsItalic, IsOutline = font.IsOutlineStyle, IsShadow = font.IsShadowStyle, IsStrikeOut = font.IsStrikeOut, UnderlineStyle = (byte)font.UnderLineStyle, SuperScript = (ushort)font.VerticalAlignRun
     });
 }
Пример #29
0
 public ExcelHelper(IExcelWriter excelWriter)
 {
     _excelWriter = excelWriter;
 }
Пример #30
0
 /// <summary>
 /// 构造器 指定classNameDllName(ExcelWriterProviderName) 默认Pub.Class.Excel.OleDb.ExcelWriter,Pub.Class.Excel.OleDb
 /// </summary>
 /// <param name="classNameAndAssembly">命名空间.类名,程序集名称</param>
 /// <param name="excelPath">excel文件路径</param>
 public ExcelWriter(string classNameAndAssembly, string excelPath) { 
     if (excelWriter.IsNull()) {
         excelWriter = (IExcelWriter)classNameAndAssembly.IfNullOrEmpty("Pub.Class.Excel.OleDb.ExcelWriter,Pub.Class.Excel.OleDb").LoadClass();
         excelWriter.Open(excelPath);
     }
 }
Пример #31
0
        internal static XFRecrod GetXFBiffRecord(IExtendedFormat style, ushort fontID, IExcelWriter writer)
        {
            XFRecrod recrod = new XFRecrod {
                FontIndex = fontID,
                FillPatternBackgroundColor = (byte)writer.GetPaletteColor(style.PatternBackgroundColor),
                FillPatternColor           = (byte)writer.GetPaletteColor(style.PatternColor),
                FillPatternIndex           = (byte)style.FillPattern,
                HAlignment             = (byte)style.HorizontalAlign,
                VAlignment             = (byte)style.VerticalAlign,
                IndentLevel            = style.Indent,
                IsF123Prefix           = style.IsFirstSymbolApostrophe,
                IsHidden               = style.IsHidden,
                JustifyLastCharacter   = style.IsJustfyLastLine,
                IsLocked               = style.IsLocked,
                IsShrinkContent        = style.IsShrinkToFit,
                IsWordWrap             = style.IsWordWrap,
                Direction              = (byte)style.ReadingOrder,
                TextRotation           = (byte)style.Rotation,
                LeftBorderColorIndex   = (byte)writer.GetPaletteColor(style.Border.Left.Color),
                LeftBorderLine         = (byte)style.Border.Left.LineStyle,
                RightBorderColorIndex  = (byte)writer.GetPaletteColor(style.Border.Right.Color),
                RightBorderLine        = (byte)style.Border.Right.LineStyle,
                TopBorderColorIndex    = (byte)writer.GetPaletteColor(style.Border.Top.Color),
                TopBorderLine          = (byte)style.Border.Top.LineStyle,
                BottomBorderColorIndex = (byte)writer.GetPaletteColor(style.Border.Bottom.Color),
                BottomBorderLine       = (byte)style.Border.Bottom.LineStyle,
                ApplyAlignment         = style.ApplyAlignment,
                ApplyBorder            = style.ApplyBorder,
                ApplyFont              = style.ApplyFont,
                ApplyFill              = style.ApplyFill,
                ApplyNumberFormat      = style.ApplyNumberFormat,
                ApplyProtection        = style.ApplyProtection
            };

            if ((style is ExtendedFormat) && (style as ExtendedFormat).IsStyleFormat)
            {
                recrod.IsStyleXF     = true;
                recrod.ParentXFIndex = 0xfff;
            }
            else
            {
                recrod.IsStyleXF = false;
                if (style.ParentFormatID.HasValue)
                {
                    recrod.ParentXFIndex = (ushort)style.ParentFormatID.Value;
                }
                else
                {
                    recrod.ParentXFIndex = 15;
                }
            }
            if (style.NumberFormat != null)
            {
                recrod.FormatIndex = (ushort)style.NumberFormat.NumberFormatId;
                return(recrod);
            }
            recrod.FormatIndex = (ushort)style.NumberFormatIndex;
            return(recrod);
        }
Пример #32
0
 public ReadService(IReadDBService readService, IExcelWriter excelWriter)
 {
     this.excelWriter = excelWriter;
     this.client      = new WebApiClient();
 }
Пример #33
0
 /// <summary>
 /// 构造器 从Web.config中读ExcelWriterProviderName 默认Pub.Class.Excel.OleDb.ExcelWriter,Pub.Class.Excel.OleDb
 /// </summary>
 /// <param name="excelPath">excel文件路径</param>
 public ExcelWriter(string excelPath) { 
     if (excelWriter.IsNull()) {
         excelWriter = (IExcelWriter)(WebConfig.GetApp("ExcelWriterProviderName") ?? "Pub.Class.Excel.OleDb.ExcelWriter,Pub.Class.Excel.OleDb").LoadClass();
         excelWriter.Open(excelPath);
     }
 }
Пример #34
0
 /// <summary>
 /// 构造器
 /// </summary>
 /// <param name="dllFileName">dll文件名</param>
 /// <param name="className">命名空间.类名</param>
 /// <param name="excelPath">excel文件路径</param>
 public ExcelWriter(string dllFileName, string className, string excelPath) {
     if (excelWriter.IsNull()) {
         excelWriter = (IExcelWriter)dllFileName.LoadClass(className);
         excelWriter.Open(excelPath);
     }
 }
Пример #35
0
 public ResultsSummaryExcelExporter(IExcelWriter excelWriter)
 {
     m_ExcelWriter = excelWriter;
     Filter        = new FileFilter("Excel file", "*.xlsx");
 }