public async Task <string> GetTopByProperties( [FromQuery] string city = "amsterdam", [FromQuery] int limit = 10, [FromQuery] string[]?extras = null) { extras ??= new string[0]; // We are fetching a lot of duplicate entries because the second query // (properties with garden) will return a subset of objects already available in the // initial query. However, becuase the property entity does not contain info whether // it has a garden or not, we need to make fetch them separately (instead of doing // client side filtering) // Since fetching this from Funda requires walking over all the available data, we // cache the results based on `city` and `extras`. We don't cache based on `limit` // because we need to fetch all the properties anyway regardless of client requested // limit. var cacheKey = (city, extras); if (!cache.TryGetValue(cacheKey, out List <Agent> agents)) { agents = await repository.ListTopAgentsByProperties(city, extras); var cacheEntryOptions = new MemoryCacheEntryOptions() .SetAbsoluteExpiration(TimeSpan.FromDays(1)); cache.Set(cacheKey, agents, cacheEntryOptions); } var tableFormatter = new TableFormatter(); return(tableFormatter.FormatObjects(agents.Take(limit))); }
private void InitializeExecutionMessageHandlers() { var activatorWrapper = new ActivatorWrapper(); var reflectionWrapper = new ReflectionWrapper(); var assemblies = new AssemblyLocater(new DirectoryWrapper(), new FileWrapper()).GetAllAssemblies(); var assemblyLoader = new AssemblyLoader(new AssemblyWrapper(), assemblies, reflectionWrapper, activatorWrapper); _stepRegistry = assemblyLoader.GetStepRegistry(); var tableFormatter = new TableFormatter(assemblyLoader, activatorWrapper); var classInstanceManager = assemblyLoader.GetClassInstanceManager(); var executionOrchestrator = new ExecutionOrchestrator(reflectionWrapper, assemblyLoader, activatorWrapper, classInstanceManager, new HookExecutor(assemblyLoader, reflectionWrapper, classInstanceManager), new StepExecutor(assemblyLoader, reflectionWrapper, classInstanceManager)); this.executionStartingProcessor = new ExecutionStartingProcessor(executionOrchestrator); this.executionEndingProcessor = new ExecutionEndingProcessor(executionOrchestrator); this.specExecutionStartingProcessor = new SpecExecutionStartingProcessor(executionOrchestrator); this.specExecutionEndingProcessor = new SpecExecutionEndingProcessor(executionOrchestrator); this.scenarioExecutionStartingProcessor = new ScenarioExecutionStartingProcessor(executionOrchestrator); this.scenarioExecutionEndingProcessor = new ScenarioExecutionEndingProcessor(executionOrchestrator); this.stepExecutionStartingProcessor = new StepExecutionStartingProcessor(executionOrchestrator); this.stepExecutionEndingProcessor = new StepExecutionEndingProcessor(executionOrchestrator); this.executeStepProcessor = new ExecuteStepProcessor(_stepRegistry, executionOrchestrator, tableFormatter); this.scenarioDataStoreInitProcessor = new ScenarioDataStoreInitProcessor(assemblyLoader); this.specDataStoreInitProcessor = new SpecDataStoreInitProcessor(assemblyLoader); this.suiteDataStoreInitProcessor = new SuiteDataStoreInitProcessor(assemblyLoader); }
internal override async Task Execute(CommandObjects CommandObject) { Database.DatabaseMethods.RolesMethods.RolesListFind(CommandObject.Guild.Id, out List <Roles> DBRolesList); List <object> DBRolesObjects = new List <object> { }; foreach (Roles DBRole in DBRolesList) { DBRolesObjects.Add(new { RegisteredID = DBRole.Uuid, RegisteredNumber = DBRole.RoleNum, DBRole.RoleLevel }); } object[] DBRolesArray = DBRolesObjects.ToArray(); string DBRolesTableText = new TableFormatter().FormatObjects(DBRolesArray); await CommandObject.Message.Channel.SendMessageAsync(string.Format(CommandObject.Language.DMMention, CommandObject.Message.Author.Mention)); if (string.IsNullOrWhiteSpace(DBRolesTableText)) { await CommandObject.Member.SendMessageAsync(CommandObject.Language.ListNothing); } else { await CommandObject.Member.SendMessageAsync(DBRolesTableText); } }
public void CanFormatAsTableWithCellWithMultipleLines() { var tableFormatter = new TableFormatter(); var text = tableFormatter.FormatObjects(new[] { new { FirstColumn = @"This is the first line This is the second line And this is the third and last line" } }); Console.WriteLine(text); const string expected = @" +-------------------------------------+ | FirstColumn | +-------------------------------------+ | This is the first line | | This is the second line | | And this is the third and last line | +-------------------------------------+ "; Assert.That(text.Normalized(), Is.EqualTo(expected.Normalized())); }
public void CanFormatAsTableWithTwoColumns() { var tableFormatter = new TableFormatter(); var text = tableFormatter.FormatObjects(new[] { new { FirstColumn = "r1", SecondColumn = "hej" }, new { FirstColumn = "r2", SecondColumn = "hej" }, new { FirstColumn = "r3", SecondColumn = "hej" }, new { FirstColumn = "r4", SecondColumn = "hej" } }); Console.WriteLine(text); const string expected = @" +-------------+--------------+ | FirstColumn | SecondColumn | +-------------+--------------+ | r1 | hej | +-------------+--------------+ | r2 | hej | +-------------+--------------+ | r3 | hej | +-------------+--------------+ | r4 | hej | +-------------+--------------+ "; Assert.That(text.Normalized(), Is.EqualTo(expected.Normalized())); }
public void Example3() { var objects = new[] { new { MachineName = "ctxtest01", Ip = "10.0.0.10", Ports = new[] { 80, 8080, 9090 }, Comments = "" }, new { MachineName = "ctxtest02", Ip = "10.0.0.11", Ports = new[] { 5432 }, Comments = @"This bad boy hosts our database and a couple of internal jobs." } }; var hints = new Hints { MaxTableWidth = 80 }; var formatter = new TableFormatter(hints); var text = formatter.FormatObjects(objects); Console.WriteLine(text); /* * * ==================================================================================== | MachineName | Ip | Ports | Comments | | ==================================================================================== | ctxtest01 | 10.0.0.10 | 80 | | | | | 8080 | | | | | 9090 | | | ==================================================================================== | ctxtest02 | 10.0.0.11 | 5432 | This bad boy hosts our database and a couple | | | | | of internal jobs. | | ==================================================================================== | */ }
public void CanFormatAsTableWithThreeColumns() { var tableFormatter = new TableFormatter(); var objects = new[] { new { FirstColumn = "r1", SecondColumn = "hej", ThirdColumn = "hej igen" }, new { FirstColumn = "r2", SecondColumn = "hej", ThirdColumn = "hej igen" }, }; var text = tableFormatter.FormatObjects(objects); Console.WriteLine(text); const string expected = @" +-------------+--------------+-------------+ | FirstColumn | SecondColumn | ThirdColumn | +-------------+--------------+-------------+ | r1 | hej | hej igen | +-------------+--------------+-------------+ | r2 | hej | hej igen | +-------------+--------------+-------------+ "; Assert.That(text.Normalized(), Is.EqualTo(expected.Normalized())); }
public void DoesNotCollapseWhenCellHasMoreLines() { var objects = new[] { new { Id = "whatever01", Value = "jigeojgieojw" }, new { Id = "whatever02", Value = @"huiehguiw ruined the party!" }, }; var formatter = new TableFormatter(new Hints { CollapseVerticallyWhenSingleLine = true }); var text = formatter.FormatObjects(objects); Console.WriteLine(text); Assert.That(text.Normalized(), Is.EqualTo(@" +------------+-------------------+ | Id | Value | +------------+-------------------+ | whatever01 | jigeojgieojw | +------------+-------------------+ | whatever02 | huiehguiw | | | ruined the party! | +------------+-------------------+ ".Normalized())); }
private void Format() { try { DataTable dataTable = new TableFormatter().Format(this.InputTextBox.Text, this.FormatOptions, this.TableOptions); //DataTable dataTable = new DataTable(); foreach (DataColumn dataColumn in dataTable.Columns) { DataColumn expr_3D = dataColumn; expr_3D.ColumnName += string.Format("{0}({1})", Environment.NewLine, dataColumn.DataType); } this.OutputDataTable.ItemsSource = dataTable.AsDataView(); } catch (Exception ex) { Window window = Window.GetWindow(this); if (window != null) { SharedObject.Instance.Output(SharedObject.enOutputType.Error, "", ex); } else { SharedObject.Instance.Output(SharedObject.enOutputType.Error, "", ex); } Trace.TraceError(ex.Message); } }
public IMessageProcessor GetProcessor(Message.Types.MessageType messageType, bool scan = false) { if (!scan) { return(!_messageProcessorsDictionary.ContainsKey(messageType) ? new DefaultProcessor() : _messageProcessorsDictionary[messageType]); } var activatorWrapper = new ActivatorWrapper(); var reflectionWrapper = new ReflectionWrapper(); var assemblyLoader = new AssemblyLoader(new AssemblyWrapper(), new AssemblyLocater(new DirectoryWrapper(), new FileWrapper()).GetAllAssemblies(), reflectionWrapper); _stepRegistry = assemblyLoader.GetStepRegistry(); var tableFormatter = new TableFormatter(assemblyLoader, activatorWrapper); var classInstanceManager = assemblyLoader.GetClassInstanceManager(activatorWrapper); InitializeExecutionMessageHandlers(reflectionWrapper, assemblyLoader, activatorWrapper, tableFormatter, classInstanceManager); return(!_messageProcessorsDictionary.ContainsKey(messageType) ? new DefaultProcessor() : _messageProcessorsDictionary[messageType]); }
public void CanCollapseTable() { var objects = new[] { new { Id = "whatever01", Value = "jigeojgieojw" }, new { Id = "whatever02", Value = "huiehguiw" }, new { Id = "whatever03", Value = "nvnjkdnjkdsjkvds" }, new { Id = "whatever04", Value = "fjeiufhweui" } }; var formatter = new TableFormatter(new Hints { CollapseVerticallyWhenSingleLine = true }); var text = formatter.FormatObjects(objects); Console.WriteLine(text); Assert.That(text.Normalized(), Is.EqualTo(@" +------------+------------------+ | Id | Value | +------------+------------------+ | whatever01 | jigeojgieojw | | whatever02 | huiehguiw | | whatever03 | nvnjkdnjkdsjkvds | | whatever04 | fjeiufhweui | +------------+------------------+ ".Normalized())); }
internal override async Task Execute(CommandObjects CommandObject) { Database.DatabaseMethods.AllowUsersMethods.AllowUsersListFind(CommandObject.Guild.Id, out List <AllowUsers> DBAllowUsersList); List <object> DBAllowUsersObjects = new List <object> { }; foreach (AllowUsers DBAllowUser in DBAllowUsersList) { Database.DatabaseMethods.RolesMethods.RoleFind(CommandObject.Guild.Id, DBAllowUser.RoleNum, out Roles DBRole); DiscordRole GuildRole = CommandObject.Guild.GetRole(DBRole.Uuid); DBAllowUsersObjects.Add(new { RegisteredName = DBAllowUser.Name, UserID = DBAllowUser.Uuid, Role = GuildRole.Name }); } object[] DBAllowUsersArray = DBAllowUsersObjects.ToArray(); string DBAllowUsersTableText = new TableFormatter().FormatObjects(DBAllowUsersArray); await CommandObject.Message.Channel.SendMessageAsync(string.Format(CommandObject.Language.DMMention, CommandObject.Message.Author.Mention)); if (string.IsNullOrWhiteSpace(DBAllowUsersTableText)) { await CommandObject.Member.SendMessageAsync(CommandObject.Language.ListNothing); } else { await CommandObject.Member.SendMessageAsync(DBAllowUsersTableText); } }
public void Example3_WithoutHint() { var objects = new[] { new { MachineName = "ctxtest01", Ip = "10.0.0.10", Ports = new[] { 80, 8080, 9090 }, Comments = "" }, new { MachineName = "ctxtest02", Ip = "10.0.0.11", Ports = new[] { 5432 }, Comments = @"This bad boy hosts our database and a couple of internal jobs." } }; var formatter = new TableFormatter(); var text = formatter.FormatObjects(objects); Console.WriteLine(text); /* * +----------------------------------------------------------------+-----------+-------------+-------+ | Comments | Ip | MachineName | Ports | +----------------------------------------------------------------+-----------+-------------+-------+ | | 10.0.0.10 | ctxtest01 | 80 | | | | | 8080 | | | | | 9090 | +----------------------------------------------------------------+-----------+-------------+-------+ | This bad boy hosts our database and a couple of internal jobs. | 10.0.0.11 | ctxtest02 | 5432 | +----------------------------------------------------------------+-----------+-------------+-------+ | */ }
public void Print(ITextOutput output, TableFormatter tableFormatter) { var table = CreateTable(); foreach (var issueView in Issues) { object[] currentRow = table.AddRow(issueView.Name); for (int i = 1; i < table.Columns.Count; i++) { var currentWorkDay = WorkingDays.SingleOrDefault(x => x.Date.Equals(table.Columns[i].Value)); double?totalHoursPerIssue = currentWorkDay?.GetTotalHoursByIssue(issueView); // TODO: move tostring into formatter it doesn't belongs here currentRow[i] = totalHoursPerIssue > 0 ? totalHoursPerIssue.Value.ToString("0.##") : null; } } var currentFooterRow = table.AddFooterRow("Total hours:"); for (int i = 1; i < table.Columns.Count; i++) { var day = WorkingDays.SingleOrDefault(x => x.Date.Equals(table.Columns[i].Value)); //TODO: move tostring into formatter it doesn't belongs here currentFooterRow[i] = day?.TotalHours.ToString("0.##"); } //TODO: move tostring into formatter it doesn't belongs here table.AddFooterRow($"Total hours for period logged/expected: {TotalHoursInPeriod.ToString("0.##")}" + $"/{ExpectedTotalHoursInPeriod.ToString("0.##")}"); tableFormatter.Write(table, output); }
public void CanTakeAHint() { var column = new Column("Just a colum"); var row = new Row(); row.AddCell(column, new Cell(new string('*', 80))); var table = new Table(new List <Column> { column }, new List <Row> { row }); var text = TableFormatter.FormatTable(table, new Hints { MaxTableWidth = 50 }); Console.WriteLine(text); Assert.That(text.Normalized(), Is.EqualTo(@" =============================================== | Just a colum | =============================================== | ******************************************* | | ************************************* | =============================================== ".Normalized())); }
private void InitializeExecutionMessageHandlers() { var tableFormatter = new TableFormatter(this._assemblyLoader, this._activatorWrapper); var classInstanceManager = new ThreadLocal <object>(() => { return(this._assemblyLoader.GetClassInstanceManager()); }); var executionInfoMapper = new ExecutionInfoMapper(this._assemblyLoader, this._activatorWrapper); var executionOrchestrator = new ExecutionOrchestrator(this._reflectionWrapper, this._assemblyLoader, classInstanceManager.Value, new HookExecutor(this._assemblyLoader, this._reflectionWrapper, classInstanceManager.Value, executionInfoMapper), new StepExecutor(this._assemblyLoader, this._reflectionWrapper, classInstanceManager.Value)); this.executionStartingProcessor = new ExecutionStartingProcessor(executionOrchestrator); this.executionEndingProcessor = new ExecutionEndingProcessor(executionOrchestrator); this.specExecutionStartingProcessor = new SpecExecutionStartingProcessor(executionOrchestrator); this.specExecutionEndingProcessor = new SpecExecutionEndingProcessor(executionOrchestrator); this.scenarioExecutionStartingProcessor = new ScenarioExecutionStartingProcessor(executionOrchestrator); this.scenarioExecutionEndingProcessor = new ScenarioExecutionEndingProcessor(executionOrchestrator); this.stepExecutionStartingProcessor = new StepExecutionStartingProcessor(executionOrchestrator); this.stepExecutionEndingProcessor = new StepExecutionEndingProcessor(executionOrchestrator); this.executeStepProcessor = new ExecuteStepProcessor(_stepRegistry, executionOrchestrator, tableFormatter); this.scenarioDataStoreInitProcessor = new ScenarioDataStoreInitProcessor(this._assemblyLoader); this.specDataStoreInitProcessor = new SpecDataStoreInitProcessor(this._assemblyLoader); this.suiteDataStoreInitProcessor = new SuiteDataStoreInitProcessor(this._assemblyLoader); }
public void NoColumnsAndNoRows_EmptyResult() { var text = TableFormatter.FormatTable(new Table(new List <Column>(), new List <Row>())); Console.WriteLine(text); Assert.That(text.Normalized(), Is.EqualTo("".Normalized())); }
private static IList <string> BuildCompareTables( Dictionary <CryptoExchangeId, Dictionary <CryptoExchangeId, Dictionary <CryptoCoinId, CoinMapModel> > > compare) { var tables = new List <string> ( ); foreach (var from in compare) { var table = new StringBuilder( ); var formatter = new TableFormatter( ); var objects = new List <IDictionary <string, object> > ( ); //table.AppendLine ( $"{from.Key}" ); var coinIds = ExtractSymbols(from.Value.Values); foreach (var value in from.Value) { foreach (var item in value.Value) { var buyINR = FiatConverter.Convert(item.Value.Buy, FiatCurrency.USD, FiatCurrency.INR); var sellINR = FiatConverter.Convert(item.Value.Sell, FiatCurrency.USD, FiatCurrency.INR); var minInvestment = FiatConverter.Convert(item.Value.minInvestment, FiatCurrency.USD, FiatCurrency.INR); table.AppendLine(item.Value.Coin.ToString()); table.AppendLine($"{from.Key} Ask {item.Value.Buy:C} / {TOINR(buyINR)}"); table.AppendLine($"{value.Key} Bid {item.Value.Sell:C} / {TOINR(sellINR)}"); table.AppendLine($"Withdr Fee: {item.Value.WithdrawFee } {item.Value.Coin.ToString()}"); table.AppendLine($"Expected profit: {item.Value.Profit:C} / {TOINR(item.Value.ProfitINR)}"); table.AppendLine($"Minimum Investment: {item.Value.minInvestment:C} / {TOINR(minInvestment)}"); table.AppendLine($"{item.Value.ProfitPercentage:P}"); table.AppendLine(); } // $"Buy {best} From: {from.Name,-12} @ {from[best].BuyPrice:C}\n" + //$"Sell {best} To: {to.Name,-12} @ {to[best].SellPrice:C}\n" + //$"Buy {leastWorst} From: {to.Name,-12} @ {to[leastWorst].BuyPrice:C}\n" + //$"Sell {leastWorst} To: {from.Name,-12} @ {from[leastWorst].SellPrice:C}\n" + //$"Expected profit: {profit:P}\n" + //$"Estimated fees: {fees:C}\n" + //$"Minimum Investment: {minInvestment:C}"; //var dict = new Dictionary<string, object> {["Exchange"] = $"{value.Key}"}; //foreach ( var id in coinIds ) // dict[id.ToString ( )] = // value.Value.ContainsKey ( id ) // ? $"{value.Value[id]:P}" // : ""; //objects.Add ( dict ); } table.AppendLine( ); tables.Add(table.ToString( )); } return(tables); }
protected override void CreatFormatter() { IReportService reporService = IOCContainer.Instance.Resolve <IReportService>(); var data = reporService.GetFeeByRegionReport(StartTime, EndTime); var parameterContainer = new WorkbookParameterContainer(); parameterContainer.Load(TemplateFormatterPath); SheetParameterContainer sheetContainer = parameterContainer["Sheet1"]; var dataFormatter = new List <ElementFormatter>(); dataFormatter.Add(new CellFormatter(sheetContainer["StartDate"], data.StartDate)); dataFormatter.Add(new CellFormatter(sheetContainer["EndDate"], data.EndDate)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurResNum"], data.SumCurrent.ResNum)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurHospDay"], data.SumCurrent.HospDay)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurFee"], data.SumCurrent.Fee)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurMedFee"], data.SumCurrent.MedFee)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurNciPay"], data.SumCurrent.NciPay)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurSvcDep"], data.SumCurrent.SvcDep)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurDecut"], data.SumCurrent.Decut)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurAccNciPay"], data.SumCurrent.AccNciPay)); //dataFormatter.Add(new CellFormatter(sheetContainer["SumTotalResNum"], data.SumTotal.ResNum)); //dataFormatter.Add(new CellFormatter(sheetContainer["SumTotalHospDay"], data.SumTotal.HospDay)); //dataFormatter.Add(new CellFormatter(sheetContainer["SumTotalFee"], data.SumTotal.Fee)); //dataFormatter.Add(new CellFormatter(sheetContainer["SumTotalMedFee"], data.SumTotal.MedFee)); //dataFormatter.Add(new CellFormatter(sheetContainer["SumTotalNciPay"], data.SumTotal.NciPay)); //dataFormatter.Add(new CellFormatter(sheetContainer["SumTotalSvcDep"], data.SumTotal.SvcDep)); //dataFormatter.Add(new CellFormatter(sheetContainer["SumTotalDecut"], data.SumTotal.Decut)); //dataFormatter.Add(new CellFormatter(sheetContainer["SumTotalAccNciPay"], data.SumTotal.AccNciPay)); var indexNum = 1; var tableFormatter = new TableFormatter <FeeReportComDetail>(sheetContainer["Index"], data.DataDetail, new CellFormatter <FeeReportComDetail>(sheetContainer["Index"], t => indexNum++), new CellFormatter <FeeReportComDetail>(sheetContainer["OrgName"], t => t.GroupColumn1), new CellFormatter <FeeReportComDetail>(sheetContainer["CurResNum"], t => t.Current.ResNum), new CellFormatter <FeeReportComDetail>(sheetContainer["CurHospDay"], t => t.Current.HospDay), new CellFormatter <FeeReportComDetail>(sheetContainer["CurFee"], t => t.Current.Fee), new CellFormatter <FeeReportComDetail>(sheetContainer["CurMedFee"], t => t.Current.MedFee), new CellFormatter <FeeReportComDetail>(sheetContainer["CurNciPay"], t => t.Current.NciPay), new CellFormatter <FeeReportComDetail>(sheetContainer["CurSvcDep"], t => t.Current.SvcDep), new CellFormatter <FeeReportComDetail>(sheetContainer["CurDecut"], t => t.Current.Decut), new CellFormatter <FeeReportComDetail>(sheetContainer["CurAccNciPay"], t => t.Current.AccNciPay) //new CellFormatter<FeeReportComDetail>(sheetContainer["TotalResNum"], t => t.Total.ResNum), //new CellFormatter<FeeReportComDetail>(sheetContainer["TotalHospDay"], t => t.Total.HospDay), //new CellFormatter<FeeReportComDetail>(sheetContainer["TotalFee"], t => t.Total.Fee), //new CellFormatter<FeeReportComDetail>(sheetContainer["TotalMedFee"], t => t.Total.MedFee), //new CellFormatter<FeeReportComDetail>(sheetContainer["TotalNciPay"], t => t.Total.NciPay), //new CellFormatter<FeeReportComDetail>(sheetContainer["TotalSvcDep"], t => t.Total.SvcDep), //new CellFormatter<FeeReportComDetail>(sheetContainer["TotalDecut"], t => t.Total.Decut), //new CellFormatter<FeeReportComDetail>(sheetContainer["TotalAccNciPay"], t => t.Total.AccNciPay) ); dataFormatter.Add(tableFormatter); Formatter = new SheetFormatter("Sheet1", dataFormatter.ToArray()); }
private async Task HandleStatus(Message message, IList <string> _) { var formatter = new TableFormatter( ); var objects = new List <IDictionary <string, string> > ( ); foreach (var exchange in exchanges.Values) { objects.Add(new Dictionary <string, string> {
public void MultipleCellsWithMultipleLines() { var objects = new[] { new { MachineName = "ctxtest01", Ip = "10.0.0.10", Ports = new[] { 80, 8080, 9090 } }, new { MachineName = "ctxtest02", Ip = "10.0.0.11", Ports = new[] { 80, 5432 } } }; var text = new TableFormatter().FormatObjects(objects); Console.WriteLine(text); }
public static IEnumerable <string> Tablize(IEnumerable objs, Type type, params string[] columeOptions) { var info = GetOrRegister(type); // TODO: TypeRegister can cache a TableFormatter. But need to make a base non-generic TableFormatter Func <TypeInfo, string> getHeader = _ => columeOptions.FirstOrDefault(opt => opt.StartsWith(_.Name)) ?? _.Name; var formatter = new TableFormatter <object>() .SetHeaders(info.Select(getHeader).ToArray()) .SetColumns(info.Select(_ => _.Getter).ToArray()); return(formatter.Format(objs.OfType <object>())); }
public void Example1() { var tableFormatter = new TableFormatter(); var objects = new[] { new { FirstColumn = "r1", SecondColumn = "hej", ThirdColumn = "hej igen" }, new { FirstColumn = "r2", SecondColumn = "hej", ThirdColumn = "hej igen" }, }; var text = tableFormatter.FormatObjects(objects); Console.WriteLine(text); }
public string GetConfiguration() { var obj = new ConfigurationMainLogic(_context); var data = obj.SelectSchemaHeaderSync(); var data1 = obj.SelectAllDataAsync(); Task.WaitAll(data1); var result = new TableFormatter { Header = data, Body = data1.Result }; return(Tools.ConvertToJSON(result)); }
public string GetHistory(string identifier) { var obj = new HistoryLogic(_context); var header = obj.SelectSchemaHeaderSync(); var data = obj.SelectSpecificdata(identifier); Task.WaitAll(data); var result = new TableFormatter { Header = header, Body = data.Result }; return(Tools.ConvertToJSON(result)); }
public void CanGenerateTableFromSingleJsonObject() { var text = new TableFormatter().FormatJson(@"{""A property"": ""A value"", ""Another property"": 123}"); Console.WriteLine(text); Assert.That(text.Normalized(), Is.EqualTo(@" +------------+------------------+ | A property | Another property | +------------+------------------+ | A value | 123 | +------------+------------------+ ".Normalized())); }
public void NoRows_JustColumnHeaders() { var columns = new List <Column> { new Column("Bimse"), new Column("Hej"), }; var text = TableFormatter.FormatTable(new Table(columns, new List <Row>())); Console.WriteLine(text); Assert.That(text.Normalized(), Is.EqualTo(@" =============== | Bimse | Hej | =============== ".Normalized())); }
protected override void CreatFormatter() { IReportService reporService = IOCContainer.Instance.Resolve <IReportService>(); var data = reporService.GetFeeByCareTypeMainReport(StartTime, EndTime); var parameterContainer = new WorkbookParameterContainer(); parameterContainer.Load(TemplateFormatterPath); SheetParameterContainer sheetContainer = parameterContainer["Sheet1"]; var dataFormatter = new List <ElementFormatter>(); dataFormatter.Add(new CellFormatter(sheetContainer["StartDate"], data.StartDate + " - ")); dataFormatter.Add(new CellFormatter(sheetContainer["EndDate"], data.EndDate)); dataFormatter.Add(new CellFormatter(sheetContainer["SumSpecCareResNum"], data.SumTotal.SpecCareResNum)); dataFormatter.Add(new CellFormatter(sheetContainer["SumSpecCareHospDay"], data.SumTotal.SpecCareHospDay)); dataFormatter.Add(new CellFormatter(sheetContainer["SumSpecCareFee"], data.SumTotal.SpecCareFee)); dataFormatter.Add(new CellFormatter(sheetContainer["SumSpecCareNciPay"], data.SumTotal.SpecCareNciPay)); dataFormatter.Add(new CellFormatter(sheetContainer["SumOrgCareResNum"], data.SumTotal.OrgCareResNum)); dataFormatter.Add(new CellFormatter(sheetContainer["SumOrgCareHospDay"], data.SumTotal.OrgCareHospDay)); dataFormatter.Add(new CellFormatter(sheetContainer["SumOrgCareFee"], data.SumTotal.OrgCareFee)); dataFormatter.Add(new CellFormatter(sheetContainer["SumOrgCareNciPay"], data.SumTotal.OrgCareNciPay)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurResNum"], data.SumTotal.ResNum)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurFee"], data.SumTotal.Fee)); dataFormatter.Add(new CellFormatter(sheetContainer["SumCurNciPay"], data.SumTotal.NciPay)); var indexNum = 1; var tableFormatter = new TableFormatter <FeeByCareTypeDetail>(sheetContainer["Index"], data.Detail, new CellFormatter <FeeByCareTypeDetail>(sheetContainer["Index"], t => indexNum++), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["OrgName"], t => t.OrgName), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["SpecCareResNum"], t => t.SpecCareResNum), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["SpecCareHospDay"], t => t.SpecCareHospDay), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["SpecCareFee"], t => t.SpecCareFee), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["SpecCareNciPay"], t => t.SpecCareNciPay), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["OrgCareResNum"], t => t.OrgCareResNum), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["OrgCareHospDay"], t => t.OrgCareHospDay), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["OrgCareFee"], t => t.OrgCareFee), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["OrgCareNciPay"], t => t.OrgCareNciPay), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["CurResNum"], t => t.ResNum), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["CurFee"], t => t.Fee), new CellFormatter <FeeByCareTypeDetail>(sheetContainer["CurNciPay"], t => t.NciPay) ); dataFormatter.Add(tableFormatter); Formatter = new SheetFormatter("Sheet1", dataFormatter.ToArray()); }
protected override Task <DataTable> ExecuteAsyncWithResult(AsyncCodeActivityContext context, CancellationToken cancellationToken) { IEnumerable <KeyValuePair <Rectangle, string> > positions = this.Positions.Get(context); string input = this.InputString.Get(context); ITableOptions tableOptions = this.GetTableOptions(); IFormatOptions formatOptions = this.GetFormatOptions(context); return(Task.Factory.StartNew <DataTable>(delegate { TableFormatter tableFormatter = new TableFormatter(); if (positions == null) { return tableFormatter.Format(input, formatOptions, tableOptions); } return tableFormatter.Format(positions, tableOptions); })); }
protected override int OnExecute(CommandLineApplication app) { var config = Parent.GetK8SConfiguration(); var clusters = config.Clusters ?? Enumerable.Empty <Cluster>(); if (!clusters.Any()) { Reporter.Output.WriteLine("No clusters found"); return(1); } TableFormatter.Print(clusters, "", null, new Dictionary <string, Func <Cluster, object> > { { "NAME", x => x.Name } }); return(0); }