Ejemplo n.º 1
0
        /// <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();
        }
Ejemplo n.º 2
0
        public void CommaSeparated_AddAddInBetweenTwoWords()
        {
            var words = new List <string> {
                "tomatos", "beans"
            };

            var commaSeparated = words.CommaSeparated();

            Assert.Equal("tomatos and beans", commaSeparated);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        public void CommaSeparated_AddCommaBetweenWordsAndOneAddAtTheEnd()
        {
            var words = new List <string> {
                "tomatos", "beans", "brocolli"
            };

            var commaSeparated = words.CommaSeparated();

            Assert.Equal("tomatos, beans and brocolli", commaSeparated);
        }
Ejemplo n.º 5
0
        public void CommaSeparated_DoesNotAddCommaOrAnd_WhenOnlyOneWordPassedIn()
        {
            var word = new List <string> {
                "tomatos"
            };

            var commaSeparated = word.CommaSeparated();

            Assert.Equal("tomatos", commaSeparated);
        }
Ejemplo n.º 6
0
        /// <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;
        }
Ejemplo n.º 7
0
        /// <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;
        }
Ejemplo n.º 8
0
        /// <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;
        }