コード例 #1
0
        public void GeneratedBanner_for_decimal_with_defualt_prefix_suffix()
        {
            // arrange
            var        tt     = "[RECENT]-[AVG]-[MAX]-[TOTAL]-[MIN]";
            TempBanner banner = new TempBanner()
            {
                template = tt
            };
            BasicSts data = new BasicSts()
            {
                Total  = 5,
                Min    = 0.2345,
                Max    = 20.2332,
                Avg    = 5.2376,
                Recent = 12.2397
            };

            // act
            var rslt = banner.GeneratedBanner(data);

            // assert
            Assert.True(banner.TemplateText == tt);
            Assert.True(!string.IsNullOrWhiteSpace(rslt));
            Assert.True(rslt == "12.24-5.24-20.23-5-0.23");
            Assert.True(banner.Prefix == "[");
            Assert.True(banner.Suffix == "]");
        }
コード例 #2
0
        public void GeneratedBanner_for_decimal_with_custom_prefix_suffix()
        {
            // arrange
            var        tt     = "{RECENT}-{AVG}-{MAX}-{TOTAL}-{MIN}";
            TempBanner banner = new TempBanner("{", "}")
            {
                template = tt
            };
            BasicSts data = new BasicSts()
            {
                Total  = 5,
                Min    = 0.2345,
                Max    = 20.2332,
                Avg    = 5.2376,
                Recent = 12.2397
            };

            // act
            var rslt = banner.GeneratedBanner(data);

            // assert
            Assert.True(banner.TemplateText == tt);
            Assert.True(!string.IsNullOrWhiteSpace(rslt));
            Assert.True(rslt == "12.24-5.24-20.23-5-0.23");
            Assert.True(banner.Prefix == "{");
            Assert.True(banner.Suffix == "}");
        }
コード例 #3
0
        /// <summary>
        /// Generates the widget html from configured template
        /// </summary>
        /// <param name="Data"></param>
        /// <returns></returns>
        public override string GeneratedBanner(BasicSts Data)
        {
            var banner = base.GeneratedBanner(Data);

            banner = banner.Replace(_url, GetCurrentUrl());

            return(banner);
        }
コード例 #4
0
        /// <summary>
        /// Generates the live widget for given data
        /// </summary>
        /// <param name="data">live data to be used</param>
        /// <returns></returns>
        public virtual string GeneratedBanner(BasicSts Data)
        {
            TemplateText = this.GetTemplateText();

            if (string.IsNullOrWhiteSpace(TemplateText))
            {
                throw new ArgumentNullException(_ex_msg);
            }

            return(UpdateTemplate(Data));
        }
コード例 #5
0
        string UpdateTemplate(BasicSts data)
        {
            if (data == default(BasicSts))
            {
                throw new ArgumentNullException(nameof(data));
            }

            var text = string.Copy(TemplateText);

            foreach (var kvp in data.GetDataAsKvp())
            {
                text = text.Replace(Prefix + kvp.Key + Suffix, kvp.Value);
            }

            return(text);
        }
コード例 #6
0
        /// <summary>
        /// Converts the given basic data into key value pairs
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public static Dictionary <string, string> GetDataAsKvp(this BasicSts data)
        {
            string _min    = nameof(BasicSts.Min).ToUpper();
            string _avg    = nameof(BasicSts.Avg).ToUpper();
            string _max    = nameof(BasicSts.Max).ToUpper();
            string _total  = nameof(BasicSts.Total).ToUpper();
            string _recent = nameof(BasicSts.Recent).ToUpper();

            return(new Dictionary <string, string>()
            {
                { _min, Math.Round(data.Min, 2).ToString() },
                { _avg, Math.Round(data.Avg, 2).ToString() },
                { _max, Math.Round(data.Max, 2).ToString() },
                { _total, data.Total.ToString() },
                { _recent, Math.Round(data.Recent, 2).ToString() }
            });
        }
コード例 #7
0
        public void GeneratedBanner_with_empty_template()
        {
            // arrange
            TempBanner banner = new TempBanner()
            {
                template = null
            };
            TempBanner banner_ws = new TempBanner()
            {
                template = "   "
            };
            BasicSts data = new BasicSts(20);

            // act and assert
            Assert.Throws <ArgumentNullException>(() => banner.GeneratedBanner(data));
            Assert.Throws <ArgumentNullException>(() => banner_ws.GeneratedBanner(data));
        }
コード例 #8
0
        /// <summary>
        /// Update the Basic data with recent and recalculates its value.
        /// </summary>
        /// <param name="this"></param>
        /// <param name="current"></param>
        public static void Update(this BasicSts @this, double current)
        {
            lock (@this)
            {
                @this.Recent = current;
                if (Math.Abs(@this.Min - double.MinValue) < double.Epsilon || @this.Min > @this.Recent)
                {
                    @this.Min = @this.Recent;
                }

                if (Math.Abs(@this.Max - double.MinValue) < double.Epsilon || @this.Max < @this.Recent)
                {
                    @this.Max = @this.Recent;
                }

                @this.Avg    = @this.Total == 0 ? @this.Recent : ((@this.Total * @this.Avg) + @this.Recent) / (@this.Total + 1);
                @this.Total += 1;
            }
        }
コード例 #9
0
        public void GeneratedBanner_with_invalid_template()
        {
            // arrange
            var        tt     = "[RECENT1]-[MIN1]-[AVG2]-[MAX23]-[TOTAL5]";
            TempBanner banner = new TempBanner()
            {
                template = tt
            };
            BasicSts data = new BasicSts(20);

            // act
            var rslt = banner.GeneratedBanner(data);

            // assert
            Assert.True(banner.TemplateText == tt);
            Assert.True(!string.IsNullOrWhiteSpace(rslt));
            Assert.True(rslt == tt);
            Assert.True(banner.Prefix == "[");
            Assert.True(banner.Suffix == "]");
        }
コード例 #10
0
        public void GeneratedBanner_with_defualt_prefix_suffix()
        {
            // arrange
            var        tt     = "[RECENT]-[MIN]-[AVG]-[MAX]-[TOTAL]";
            TempBanner banner = new TempBanner()
            {
                template = tt
            };
            BasicSts data = new BasicSts(20);

            // act
            var rslt = banner.GeneratedBanner(data);

            // assert
            Assert.True(banner.TemplateText == tt);
            Assert.True(!string.IsNullOrWhiteSpace(rslt));
            Assert.True(rslt == "20-20-20-20-1");
            Assert.True(banner.Prefix == "[");
            Assert.True(banner.Suffix == "]");
        }