Beispiel #1
0
        public static MvcHtmlString TagLink(this HtmlHelper html, Tag tag, int max, Func<string, string> tagUrl)
        {
            int fontSize = 0;
            double part = (double)(tag.Count ?? 0) / max * 100;

            if (part >= 70) fontSize = 22;
            else if (part >= 60) fontSize = 20;
            else if (part >= 50) fontSize = 18;
            else if (part >= 40) fontSize = 16;
            else if (part >= 30) fontSize = 14;
            else if (part >= 25) fontSize = 13;
            else if (part >= 20) fontSize = 12;
            else if (part >= 15) fontSize = 11;
            else fontSize = 10;

            StringBuilder result = new StringBuilder();
            TagBuilder span = new TagBuilder("span");
            TagBuilder a = new TagBuilder("a");
            a.MergeAttribute("href", tagUrl(tag.TagID.ToString()));
            a.MergeAttribute("style", String.Format("font-size: {0}pt", fontSize));
            a.InnerHtml = tag.Title;
            span.InnerHtml = a.ToString();

            result.Append(span.ToString());
            result.Append("&nbsp;");

            span = new TagBuilder("span");
            span.MergeAttribute("style", String.Format("font-size: {0}pt", 9));
            span.InnerHtml = tag.Count.ToString();

            result.Append(span.ToString());
            result.Append("  ");

            return MvcHtmlString.Create(result.ToString());
        }
Beispiel #2
0
        private void FillTagsTable()
        {
            //Заполняем таблицу Tags (выполняется 1 раз, ну и если руками добавляли книги в Books)
            //**************************************************
            var tagsFromRequest = db.GetTagsList();
            string[] tagsMerge = new string[] { };
            string[] tagsTemp = new string[] { };
            IEnumerable<string> tagsResult;

            foreach (var tag in tagsFromRequest)
            {
                tagsTemp = tag.Split(new string[] { ", " }, StringSplitOptions.None);
                tagsMerge = tagsMerge.Concat(tagsTemp).ToArray<string>();
            }

            tagsResult = (
                            from t in tagsMerge
                            orderby t ascending
                            select t
                         ).Distinct().ToList();

            bool isChanged = false;
            foreach (var tag in tagsResult)
            {
                Tag newTag = new Tag();
                newTag.Title = tag;
                newTag.Count = (from t in db.Books.Where(b => b.Cover2 == 0)
                                where t.Tags.Contains(tag)
                                select t).Count();

                // Если такой тег есть, переписываем его свойство Count (только если его свойство Count изменилось - иначе ничего не делаем),
                // иначе добавляем в базу новый тег
                Tag oldTag = db.Tags.FirstOrDefault(t => t.Title == tag);
                if (oldTag == null)
                {
                    db.Tags.AddObject(newTag);
                    isChanged = true;
                }
                else
                {
                    if (oldTag.Count != newTag.Count)
                    {
                        oldTag.Count = newTag.Count;
                        isChanged = true;
                    }
                }
            }
            if (isChanged)
                db.SaveChanges();
            //**************************************************
        }
Beispiel #3
0
 /// <summary>
 /// Deprecated Method for adding a new object to the Tags EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToTags(Tag tag)
 {
     base.AddObject("Tags", tag);
 }
Beispiel #4
0
 /// <summary>
 /// Create a new Tag object.
 /// </summary>
 /// <param name="tagID">Initial value of the TagID property.</param>
 /// <param name="title">Initial value of the Title property.</param>
 public static Tag CreateTag(global::System.Int32 tagID, global::System.String title)
 {
     Tag tag = new Tag();
     tag.TagID = tagID;
     tag.Title = title;
     return tag;
 }