public void BuildWithEquitiesAndBondsReturnsATwoEntryList() { getStocksFunc = SetupFund(baseTestingStockSet); var sut = new SummaryBuilder(getStocksFunc); Assert.AreEqual(2, sut.WithEquities().WithBonds().Build().Count()); }
public override async Task <IStatementResultCursor> RunInExplicitTransactionAsync(IConnection connection, Statement statement, bool reactive, long fetchSize = Config.Infinite) { var summaryBuilder = new SummaryBuilder(statement, connection.Server); var streamBuilder = new StatementResultCursorBuilder(summaryBuilder, connection.ReceiveOneAsync, RequestMore(connection, summaryBuilder, null), CancelRequest(connection, summaryBuilder, null), null, fetchSize, reactive); var runHandler = new V4.RunResponseHandler(streamBuilder, summaryBuilder); var pullMessage = default(PullMessage); var pullHandler = default(V4.PullResponseHandler); if (!reactive) { pullMessage = new PullMessage(fetchSize); pullHandler = new V4.PullResponseHandler(streamBuilder, summaryBuilder, null); } await connection.EnqueueAsync(new RunWithMetadataMessage(statement), runHandler, pullMessage, pullHandler) .ConfigureAwait(false); await connection.SendAsync().ConfigureAwait(false); return(streamBuilder.CreateCursor()); }
public void BuildWithEquitiesReturnsAListOfOne() { getStocksFunc = () => arbitraryStockSet; var sut = new SummaryBuilder(getStocksFunc); Assert.AreEqual(1, sut.WithEquities().Build().Count()); }
public override async Task <IStatementResultCursor> RunInAutoCommitTransactionAsync(IConnection connection, Statement statement, bool reactive, IBookmarkTracker bookmarkTracker, IResultResourceHandler resultResourceHandler, string database, Bookmark bookmark, TransactionConfig configBuilder, long fetchSize = Config.Infinite) { var summaryBuilder = new SummaryBuilder(statement, connection.Server); var streamBuilder = new StatementResultCursorBuilder(summaryBuilder, connection.ReceiveOneAsync, RequestMore(connection, summaryBuilder, bookmarkTracker), CancelRequest(connection, summaryBuilder, bookmarkTracker), resultResourceHandler, fetchSize, reactive); var runHandler = new V4.RunResponseHandler(streamBuilder, summaryBuilder); var pullMessage = default(PullMessage); var pullHandler = default(V4.PullResponseHandler); if (!reactive) { pullMessage = new PullMessage(fetchSize); pullHandler = new V4.PullResponseHandler(streamBuilder, summaryBuilder, bookmarkTracker); } await connection .EnqueueAsync( new RunWithMetadataMessage(statement, database, bookmark, configBuilder, connection.GetEnforcedAccessMode()), runHandler, pullMessage, pullHandler) .ConfigureAwait(false); await connection.SendAsync().ConfigureAwait(false); return(streamBuilder.CreateCursor()); }
public void OnlyUsingBuildWithNonEmptyListReturnsEmptyList() { getStocksFunc = () => arbitraryStockSet; var sut = new SummaryBuilder(getStocksFunc); CollectionAssert.IsEmpty(sut.Build()); }
public void BuildWithOnlyTotalReturnsEmptyListForGivenEmptyList() { getStocksFunc = () => emptyStockSet; var sut = new SummaryBuilder(getStocksFunc); CollectionAssert.IsEmpty(sut.WithTotal().Build()); }
public void ShouldReturnEmptyDatabaseInfoIfNotSet() { var builder = new SummaryBuilder(new Statement("RETURN 1"), new ServerInfo(new Uri("bolt://localhost"))); var summary = builder.Build(); summary.Database.Should().NotBeNull(); summary.Database.Name.Should().BeNull(); }
public RunResponseHandler(IResultStreamBuilder streamBuilder, SummaryBuilder summaryBuilder) { _streamBuilder = streamBuilder ?? throw new ArgumentNullException(nameof(streamBuilder)); _summaryBuilder = summaryBuilder ?? throw new ArgumentNullException(nameof(summaryBuilder)); AddMetadata <FieldsCollector, string[]>(); AddMetadata <ResultAvailableAfterCollector, long>(); }
public void BuildWithOnlyEquitiesAndBondsReturnsEmptyListForGivenEmptyList() { getStocksFunc = () => emptyStockSet; var sut = new SummaryBuilder(getStocksFunc); CollectionAssert.IsEmpty( sut.WithEquities().WithBonds().Build()); }
public static IInternalResultCursor CreateResultCursor(int keyCount, int recordCount, string query = "fake", int delayMs = 0) { var fields = Enumerable.Range(1, keyCount).Select(f => $"key{f:D2}").ToArray(); var summaryBuilder = new SummaryBuilder(new Query(query), new ServerInfo(new Uri("bolt://localhost"))); return(new ListBasedRecordCursor(fields, () => CreateRecords(fields, recordCount, delayMs), () => summaryBuilder.Build())); }
public void BuildWithBondsReturnsCorrectSummaryModel() { getStocksFunc = SetupFund(baseTestingStockSet); var sut = new SummaryBuilder(getStocksFunc); var result = sut.WithBonds().Build().First(); Assert.AreEqual("Bonds", result.Name); Assert.AreEqual(2, result.TotalNumber); Assert.AreEqual(0.6m, result.TotalStockWeight); }
private void generateSummary(RunReport report) { if (report == null) { _dispatch("run-summary", new { message = "" }); return; } var builder = new SummaryBuilder(report); _dispatch("run-summary", new { message = builder.Build() }); }
public virtual async Task <IResultCursor> RunInExplicitTransactionAsync(IConnection connection, Query query, bool reactive, long fetchSize = Config.Infinite) { var summaryBuilder = new SummaryBuilder(query, connection.Server); var streamBuilder = new ResultCursorBuilder(summaryBuilder, connection.ReceiveOneAsync, null, null, null); var runHandler = new V3.RunResponseHandler(streamBuilder, summaryBuilder); var pullAllHandler = new V3.PullResponseHandler(streamBuilder, summaryBuilder, null); await connection.EnqueueAsync(new RunWithMetadataMessage(query), runHandler, PullAll, pullAllHandler).ConfigureAwait(false); await connection.SendAsync().ConfigureAwait(false); return(streamBuilder.CreateCursor()); }
public void BuildSummary_GivenStringArray_ReturnsSummary(string[] termsReplaced, int[] originalNumbers, Dictionary <string, int> expectedSummary) { // Arrange var summaryBuilder = new SummaryBuilder(); // Act var resultSummary = summaryBuilder.BuildSummary(termsReplaced, originalNumbers); // Assert Assert.Equal(resultSummary, expectedSummary); }
public PullResponseHandler(IResultStreamBuilder streamBuilder, SummaryBuilder summaryBuilder) { _streamBuilder = streamBuilder ?? throw new ArgumentNullException(nameof(streamBuilder)); _summaryBuilder = summaryBuilder ?? throw new ArgumentNullException(nameof(summaryBuilder)); AddMetadata <ResultConsumedAfterCollector, long>(); AddMetadata <TypeCollector, StatementType>(); AddMetadata <CountersCollector, ICounters>(); AddMetadata <PlanCollector, IPlan>(); AddMetadata <ProfiledPlanCollector, IProfiledPlan>(); AddMetadata <NotificationsCollector, IList <INotification> >(); }
public void Should_build_tooltip_string() { var report = new RunReport(); report.AddBuild(Path.GetFullPath("Project1.csproj"), new TimeSpan(0, 0, 0, 2, 234), true); report.AddBuild(Path.GetFullPath("Project2.csproj"), new TimeSpan(0, 0, 0, 3, 154), false); report.AddTestRun(Path.GetFullPath("Project3.csproj"), Path.GetFullPath("Assembly.dll"), new TimeSpan(0, 0, 0, 6, 211), 0, 0, 0); var builder = new SummaryBuilder(report); var output = builder.Build(); output.ToString().ShouldEqual(getResult()); }
public void BuildWithEquitiesAndBondsReturnsCorrectSummaryModel() { getStocksFunc = SetupFund(baseTestingStockSet); var sut = new SummaryBuilder(getStocksFunc); var result = sut.WithEquities().WithBonds().Build(); var equities = result.First(); Assert.AreEqual(0.4m, equities.TotalStockWeight); var bonds = result.ElementAt(1); Assert.AreEqual(0.6m, bonds.TotalStockWeight); }
private static Func <StatementResultCursorBuilder, long, Task> CancelRequest(IConnection connection, SummaryBuilder summaryBuilder, IBookmarkTracker bookmarkTracker) { return(async(streamBuilder, id) => { var pullAllHandler = new V4.PullResponseHandler(streamBuilder, summaryBuilder, bookmarkTracker); await connection .EnqueueAsync(new DiscardMessage(id, All), pullAllHandler) .ConfigureAwait(false); await connection.SendAsync().ConfigureAwait(false); }); }
private static Func <IResultStreamBuilder, long, long, Task> RequestMore(IConnection connection, SummaryBuilder summaryBuilder, IBookmarkTracker bookmarkTracker) { return(async(streamBuilder, id, n) => { var pullAllHandler = new V4.PullResponseHandler(streamBuilder, summaryBuilder, bookmarkTracker); await connection .EnqueueAsync(new PullMessage(id, n), pullAllHandler) .ConfigureAwait(false); await connection.SendAsync().ConfigureAwait(false); }); }
public async Task <IStatementResultCursor> RunInExplicitTransactionAsync(IConnection connection, Statement statement, bool reactive) { var summaryBuilder = new SummaryBuilder(statement, connection.Server); var streamBuilder = new StatementResultCursorBuilder(summaryBuilder, connection.ReceiveOneAsync, null, null, null); var runHandler = new V1.RunResponseHandler(streamBuilder, summaryBuilder); var pullAllHandler = new V1.PullResponseHandler(streamBuilder, summaryBuilder); await connection.EnqueueAsync(new RunMessage(statement), runHandler, PullAll, pullAllHandler) .ConfigureAwait(false); await connection.SendAsync().ConfigureAwait(false); return(streamBuilder.CreateCursor()); }
public PullResponseHandler(IResultStreamBuilder streamBuilder, SummaryBuilder summaryBuilder, IBookmarkTracker bookmarkTracker) { _streamBuilder = streamBuilder ?? throw new ArgumentNullException(nameof(streamBuilder)); _summaryBuilder = summaryBuilder ?? throw new ArgumentNullException(nameof(summaryBuilder)); _bookmarkTracker = bookmarkTracker; AddMetadata <BookmarkCollector, Bookmark>(); AddMetadata <TimeToLastCollector, long>(); AddMetadata <TypeCollector, QueryType>(); AddMetadata <CountersCollector, ICounters>(); AddMetadata <PlanCollector, IPlan>(); AddMetadata <ProfiledPlanCollector, IProfiledPlan>(); AddMetadata <NotificationsCollector, IList <INotification> >(); }
public async Task <IStatementResultCursor> RunInAutoCommitTransactionAsync(IConnection connection, Statement statement, bool reactive, IBookmarkTracker bookmarkTracker, IResultResourceHandler resultResourceHandler, Bookmark ignored, TransactionConfig txConfig) { AssertNullOrEmptyTransactionConfig(txConfig); var summaryBuilder = new SummaryBuilder(statement, connection.Server); var streamBuilder = new StatementResultCursorBuilder(summaryBuilder, connection.ReceiveOneAsync, null, null, resultResourceHandler); var runHandler = new V1.RunResponseHandler(streamBuilder, summaryBuilder); var pullAllHandler = new V1.PullResponseHandler(streamBuilder, summaryBuilder); await connection.EnqueueAsync(new RunMessage(statement), runHandler, PullAll, pullAllHandler) .ConfigureAwait(false); await connection.SendAsync().ConfigureAwait(false); return(streamBuilder.CreateCursor()); }
public virtual async Task <IStatementResultCursor> RunInAutoCommitTransactionAsync(IConnection connection, Statement statement, bool reactive, IBookmarkTracker bookmarkTracker, IResultResourceHandler resultResourceHandler, Bookmark bookmark, TransactionConfig txConfig) { var summaryBuilder = new SummaryBuilder(statement, connection.Server); var streamBuilder = new StatementResultCursorBuilder(summaryBuilder, connection.ReceiveOneAsync, null, null, resultResourceHandler); var runHandler = new V3.RunResponseHandler(streamBuilder, summaryBuilder); var pullAllHandler = new V3.PullResponseHandler(streamBuilder, summaryBuilder, bookmarkTracker); await connection .EnqueueAsync( new RunWithMetadataMessage(statement, bookmark, txConfig, connection.GetEnforcedAccessMode()), runHandler, PullAll, pullAllHandler) .ConfigureAwait(false); await connection.SendAsync().ConfigureAwait(false); return(streamBuilder.CreateCursor()); }
public virtual async Task <IResultCursor> RunInAutoCommitTransactionAsync(IConnection connection, Query query, bool reactive, IBookmarkTracker bookmarkTracker, IResultResourceHandler resultResourceHandler, string database, Bookmark bookmark, TransactionConfig config, long fetchSize = Config.Infinite) { AssertNullDatabase(database); var summaryBuilder = new SummaryBuilder(query, connection.Server); var streamBuilder = new ResultCursorBuilder(summaryBuilder, connection.ReceiveOneAsync, null, null, resultResourceHandler); var runHandler = new V3.RunResponseHandler(streamBuilder, summaryBuilder); var pullAllHandler = new V3.PullResponseHandler(streamBuilder, summaryBuilder, bookmarkTracker); await connection.EnqueueAsync(new RunWithMetadataMessage(query, bookmark, config, connection.GetEnforcedAccessMode()), runHandler, PullAll, pullAllHandler).ConfigureAwait(false); await connection.SendAsync().ConfigureAwait(false); return(streamBuilder.CreateCursor()); }
public static IEnumerable <(object builder, string sheetName, bool omitEmptyColumns)> GetBuilders(Settings.Settings settings, DateTimeZone zone, IList <Record> records, IList <Workout> workouts) { var stepBuilder = new StepBuilder(records, zone); var distanceCyclingBuilder = new DistanceCyclingBuilder(records, zone, settings); var massBuilder = new MassBuilder(records, zone, settings); var bodyFatBuilder = new BodyFatPercentageBuilder(records, zone); var generalRecordsBuilder = new GeneralRecordsBuilder(records, zone, settings); var healthMarkersBuilder = new HealthMarkersBuilder(records, zone); var nutritionBuilder = new NutritionBuilder(records, zone, settings); var settingsBuilder = new SettingsSheetBuilder(settings); var workoutBuilderFactory = new WorkoutBuilderFactory(workouts, zone, settings); var summaryBuilder = new SummaryBuilder(records, workouts, workoutBuilderFactory, zone, stepBuilder, generalRecordsBuilder, healthMarkersBuilder, nutritionBuilder, distanceCyclingBuilder, massBuilder, bodyFatBuilder); var monthBuilders = Enumerable.Range(0, settings.NumberOfMonthlySummaries) .Select(i => DateTime.Today.AddMonths(-i)) .Select(d => new { d.Year, d.Month }) .Select(m => { var lastMonth = DateTime.Today.AddMonths(-1); var isCurrentMonth = m.Year == DateTime.Today.Year && m.Month == DateTime.Today.Month; var isPreviousMonth = m.Year == lastMonth.Year && m.Month == lastMonth.Month; var sheetName = isCurrentMonth && settings.UseConstantNameForMostRecentMonthlySummarySheet ? SheetNames.MonthSummary.Current : isPreviousMonth && settings.UseConstantNameForPreviousMonthlySummarySheet ? SheetNames.MonthSummary.Previous : SheetNames.MonthSummary.Name(m.Year, m.Month); var builder = new MonthSummaryBuilder(m.Year, m.Month, zone, stepBuilder, generalRecordsBuilder, healthMarkersBuilder, nutritionBuilder, workoutBuilderFactory, distanceCyclingBuilder, massBuilder, bodyFatBuilder); return(new { builder = (object)builder, sheetName, omitEmptyColumns = settings.OmitEmptyColumnsOnMonthlySummary, }); }).ToList(); var sheetBuilders = new[] { new { builder = (object)summaryBuilder, sheetName = SheetNames.Summary, omitEmptyColumns = settings.OmitEmptyColumnsOnOverallSummary } } .Concat(monthBuilders) .Concat(new { builder = (object)stepBuilder, sheetName = SheetNames.Steps, omitEmptyColumns = true }) .Concat(new { builder = (object)massBuilder, sheetName = SheetNames.Mass, omitEmptyColumns = true }) .Concat(new { builder = (object)bodyFatBuilder, sheetName = SheetNames.BodyFat, omitEmptyColumns = true }) .Concat(new { builder = (object)generalRecordsBuilder, sheetName = SheetNames.GeneralRecords, omitEmptyColumns = true }) .Concat(new { builder = (object)healthMarkersBuilder, sheetName = SheetNames.HealthMarkers, omitEmptyColumns = true }) .Concat(new { builder = (object)nutritionBuilder, sheetName = SheetNames.Nutrition, omitEmptyColumns = true }) .Concat(new { builder = (object)distanceCyclingBuilder, sheetName = SheetNames.CyclingDistance, omitEmptyColumns = true }) .Concat(workoutBuilderFactory.GetWorkoutBuilders().Select(builder => new{ builder = (object)builder, sheetName = SheetNames.For(builder.WorkoutKey), omitEmptyColumns = true })) .Concat(new { builder = (object)settingsBuilder, sheetName = SheetNames.Settings, omitEmptyColumns = true }) .ToList(); return(sheetBuilders.Select(s => (s.builder, s.sheetName, s.omitEmptyColumns))); }
/// <summary> /// Exporte le projet. /// </summary> /// <param name="sheet">La feuille.</param> private void ExportProject(WorksheetPart sheet) { var project = _data.Project; var cellReference = new CellReference(); // Nom _file.SetCellValue(sheet, cellReference, project.Label); cellReference.NewLine(); // Description _file.SetCellValue(sheet, cellReference, project.Description); cellReference.NewLine(); // Utilisateur _file.SetCellValue(sheet, cellReference, SecurityContext.CurrentUser.FullName); cellReference.NewLine(); // Objectif SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_Objective", project.Objective != null ? project.Objective.LongLabel : project.OtherObjectiveLabel); // Atelier SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_Workshop", project.Workshop); // Custom Labels SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_CustomLabel_Text1", project.CustomTextLabel); SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_CustomLabel_Text2", project.CustomTextLabel2); SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_CustomLabel_Text3", project.CustomTextLabel3); SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_CustomLabel_Text4", project.CustomTextLabel4); SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_CustomLabel_Numeric1", project.CustomNumericLabel); SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_CustomLabel_Numeric2", project.CustomNumericLabel2); SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_CustomLabel_Numeric3", project.CustomNumericLabel3); SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_CustomLabel_Numeric4", project.CustomNumericLabel4); // Version SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_ApplicationVersion", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()); // Precision SetLabelValue(sheet, cellReference, "ViewModel_AnalyzeRestitution_Export_Project_Precision", (int)TimeSpan.FromTicks(project.TimeScale).TotalMilliseconds); // Summary ///////////////////////// cellReference.NewLine(); cellReference.NewLine(); var dataGrid = new System.Windows.Controls.DataGrid(); SummaryBuilder.BuildScenarios(project.ScenariosCriticalPath, dataGrid); var headers = dataGrid.Columns.Select(column => column.Header); if (dataGrid.ItemsSource is object[][] dataSource) { foreach (var header in headers) { _file.SetCellValue(sheet, cellReference, header.SafeToString()); cellReference.MoveRight(); } cellReference.NewLine(); foreach (var row in dataSource) { foreach (var cell in row) { if (cell != null) { if (cell is SummaryBuilder.CellContent) { _file.SetCellValue(sheet, cellReference, ((SummaryBuilder.CellContent)cell).Content.SafeToString()); } else { _file.SetCellValue(sheet, cellReference, cell.ToString()); } } cellReference.MoveRight(); } cellReference.NewLine(); } } }
public string Summary(bool isUbwDatabase) { if (null == _summary) { SummaryBuilder sb = new SummaryBuilder(this, isUbwDatabase); if (!string.IsNullOrEmpty(DotNetType)) { sb.FullLine(".Net type:", DotNetType); switch (DotNetType) { case "Boolean": sb.Boolean(); break; case "Byte": sb.Byte(); break; case "Byte[]": sb.ByteArray(); break; case "DateTime": sb.DateTime(); break; case "DateTimeOffset": sb.DateTimeOffset(); break; case "Decimal": sb.Decimal(); break; case "Double": sb.Double(); break; case "Int16": sb.Int16(); break; case "Int32": sb.Int32(); break; case "Int64": sb.Int64(); break; case "SqlGeography": sb.SqlGeography(); break; case "SqlGeometry": sb.SqlGeometry(); break; case "SqlHierarchyId": sb.SqlHierarchyId(); break; case "String": sb.String(); break; case "Tinyint": sb.TinyInt(); break; case "Uniqueidentifier": sb.Uniqueidentifier(); break; } } _summary = sb.ToString(); } return _summary; }