/// <summary> /// Returns a shortened list of author names. /// </summary> public static string GetAuthorsList(string authors, bool initialsInFront, bool useNbSp) { var result = new List<string>(); var space = useNbSp ? Constants.NbSp : " "; foreach (var author in authors.Split(new[] { Constants.AuthorsDelimiter }, StringSplitOptions.RemoveEmptyEntries)) { var name = new StringBuilder(); var parts = author.Split(new[] {" ", "\t", "."}, StringSplitOptions.RemoveEmptyEntries); if(parts.Length == 1) { name.Append(parts[0]); } else { for (var i = 1; i < parts.Length; i++) { name.Append(parts[i].GetInitial() + "."); } if (initialsInFront) name.Append(space + parts[0]); else name.Insert(0, parts[0] + space); } result.Add(name.ToString()); } return result.CommaSeparated(); }
public void CommaSeparated_AddAddInBetweenTwoWords() { var words = new List <string> { "tomatos", "beans" }; var commaSeparated = words.CommaSeparated(); Assert.Equal("tomatos and beans", commaSeparated); }
public void CommaSeparated_AddCommaBetweenManyWords() { var words = new List <string> { "a", "b", "c", "d", "e" }; var commaSeparated = words.CommaSeparated(); Assert.Equal("a, b, c, d and e", commaSeparated); }
public void CommaSeparated_AddCommaBetweenWordsAndOneAddAtTheEnd() { var words = new List <string> { "tomatos", "beans", "brocolli" }; var commaSeparated = words.CommaSeparated(); Assert.Equal("tomatos, beans and brocolli", commaSeparated); }
public void CommaSeparated_DoesNotAddCommaOrAnd_WhenOnlyOneWordPassedIn() { var word = new List <string> { "tomatos" }; var commaSeparated = word.CommaSeparated(); Assert.Equal("tomatos", commaSeparated); }
/// <summary> /// //MouseON時のファンクション設定 /// </summary> private string InjectParameterToTrackFormatter(string targetScript, List<string> playerIDList, List<FormationDataSource> FormationDataSourceList, string suffix) { var result = targetScript; //MouseON時のテンプレート var formatterScript = Flotr2ScriptPartsResource.FormationTrackFormatterFunction; // 変数名を置換 formatterScript = InjectParameter(formatterScript, ContainerParameterKey.Suffix, suffix); // プレイヤーIDリストを置換 formatterScript = InjectParameter(formatterScript, ContainerParameterKey.PlayerIDList, playerIDList.CommaSeparated().Enclosed(ExtendConst.SquareBracketEnclosedFormat)); // ラベルのリストを作成 List<string> valueList = new List<string>(); foreach (var item in FormationDataSourceList) { valueList.Add(item.Value.ToString()); } // バリュー(攻撃力とか守備力)リストを置換 formatterScript = InjectParameter(formatterScript, ContainerParameterKey.ValueList, valueList.CommaSeparated().Enclosed(ExtendConst.SquareBracketEnclosedFormat)); result = InjectParameter(result, PropertiesParameterKey.MouseTrackFormatter, formatterScript); return result; }
/// <summary> /// データソース設定 /// </summary> private string InjectScriptParameterByDataSource(string targetScript, List<FormationDataSource> FormationDataSourceList) { var result = targetScript; List<string> DataSourceScript = new List<string>() ; const string dataTemplete = "[@x, @y, @Value]"; foreach (var item in FormationDataSourceList) { DataSourceScript.Add(dataTemplete.Replace("@x", item.X.ToString()).Replace("@y", item.Y.ToString()).Replace("@Value", item.Value.ToString())); } result = InjectParameter(result, ContainerParameterKey.Data, DataSourceScript.CommaSeparated().Enclosed(ExtendConst.SquareBracketEnclosedFormat)); return result; }
/// <summary> /// コンテナーのstring生成 /// </summary> private string InjectScriptContainer(string targetScript, FormationChartDto formationChartDto) { var result = targetScript; //コンテナーId設定 result = InjectParameter(result, ContainerParameterKey.ContainerId, FormationChartDto.FormationChartContainer.ViewContainerId); List<string> containerScript = new List<string>(); // ホームチームの情報 // フォーメーションの情報 // 位置を示す円(バブルチャート) var partialScript = Flotr2ScriptPartsResource.FormationBubblesTemplete; //コンテナー設定(バブルチャートの位置) partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.HomePositionContainer); //プロパティ設定(バブルチャート関連) partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.HomePositionProperties); // MouseON時ファンクションの設定 partialScript = InjectParameterToTrackFormatter(partialScript, FormationChartDto.FormationChartContainer.HomePlayerIDList, FormationChartDto.FormationChartContainer.HomePositionContainer, Flotr2Const.Home); // コンテナーの中身を追加 containerScript.Add(partialScript); // 選手名のマーカー partialScript = Flotr2ScriptPartsResource.FormationMarkersTemplete; //コンテナー設定(マーカーの位置) partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.HomePlayerNameContainer); //プロパティ設定(マーカー関連) partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.HomePlayerNameProperties); // Label表示のファンクション設定 partialScript = InjectParameterToLabelFormatter(partialScript, FormationChartDto.FormationChartContainer.HomePlayerNameContainer, Flotr2Const.HomePlayerName); // コンテナーの中身を追加 containerScript.Add(partialScript); // 選手背番号のマーカー partialScript = Flotr2ScriptPartsResource.FormationMarkersTemplete; //コンテナー設定(マーカーの位置) partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.HomePlayerNoContainer); //プロパティ設定(マーカー関連) partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.HomePlayerNoProperties); // Label表示のファンクション設定 partialScript = InjectParameterToLabelFormatter(partialScript, FormationChartDto.FormationChartContainer.HomePlayerNoContainer, Flotr2Const.HomePlayerNo); // コンテナーの中身を追加 containerScript.Add(partialScript); // アウェーチームの情報 // フォーメーションの情報 // 位置を示す円(バブルチャート) partialScript = Flotr2ScriptPartsResource.FormationBubblesTemplete; //コンテナー設定(バブルチャートの位置) partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.AwayPositionContainer); //プロパティ設定(バブルチャート関連) partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.AwayPositionProperties); // MouseON時ファンクションの設定 partialScript = InjectParameterToTrackFormatter(partialScript, FormationChartDto.FormationChartContainer.AwayPlayerIDList, FormationChartDto.FormationChartContainer.AwayPositionContainer, Flotr2Const.Away); // コンテナーの中身を追加 containerScript.Add(partialScript); // 選手名のマーカー partialScript = Flotr2ScriptPartsResource.FormationMarkersTemplete; //コンテナー設定 partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.AwayPlayerNameContainer); //プロパティ設定 partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.AwayPlayerNameProperties); // Label表示のファンクション設定 partialScript = InjectParameterToLabelFormatter(partialScript, FormationChartDto.FormationChartContainer.AwayPlayerNameContainer,Flotr2Const.AwayPlayerName); // コンテナーの中身を追加 containerScript.Add(partialScript); // 選手背番号のマーカー partialScript = Flotr2ScriptPartsResource.FormationMarkersTemplete; //コンテナー設定 partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.AwayPlayerNoContainer); //プロパティ設定 partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.AwayPlayerNoProperties); // Label表示のファンクション設. partialScript = InjectParameterToLabelFormatter(partialScript, FormationChartDto.FormationChartContainer.AwayPlayerNoContainer, Flotr2Const.AwayPlayerNo); // コンテナーの中身を追加 containerScript.Add(partialScript); // カンマ区切りに展開したコンテナーを反映 result = InjectParameter(result, ContainerParameterKey.Container, containerScript.CommaSeparated()); return result; }