/// <summary>
        /// Metode kura papildina HtmlHelper klasi ar jaunu metodi un ļauj ģenerēt lappuses
        /// </summary>
        /// <param name="html"></param>
        /// <param name="pagingInfo"> lapusošanas informacija</param>
        /// <param name="pageUrl"> delegats caur kuru ģeneres lappuses linka stringu</param>
        /// <returns></returns>
        public static MvcHtmlString PageLinksAll(this HtmlHelper html, PagingInfo pagingInfo, Func<int, string> pageUrl)
        {
            StringBuilder builder =  new StringBuilder();

            //Veido vairakus <a href> linkus pēc kārtas izmantojot pageUrl delegatu
            for (int i = 1; i <= pagingInfo.TotalPages; i++)
            {
                TagBuilder tag = new TagBuilder("a");
                tag.MergeAttribute("href", pageUrl(i));
                tag.InnerHtml = i.ToString();
                if (i == pagingInfo.CurrentPage)
                {
                    tag.AddCssClass("selected");
                }
                builder.Append(tag);
            }

            return MvcHtmlString.Create(builder.ToString());
        }
        /// <summary>
        /// Metode kura papildina HtmlHelper klasi ar jaunu metodi un ļauj ģenerēt lappuses
        /// </summary>
        /// <param name="html"></param>
        /// <param name="pagingInfo"> lappusošanas informacija</param>
        /// <param name="pageUrl"> delegats kurš ģenerēs lappaspuses href daļai</param>
        /// <param name="linkNum">Linku skaits</param>
        /// <returns></returns>
        public static MvcHtmlString PageLinksCompact(this HtmlHelper html, PagingInfo pagingInfo, Func<int, string> pageUrl, int linkNum)
        {
            StringBuilder builder = new StringBuilder();

            if (pagingInfo.TotalPages <= 1)
            {
                TagBuilder tag = new TagBuilder("a");
                tag.InnerHtml = "<<";
                tag.AddCssClass("disabled");
                builder.Append(tag);

                tag = new TagBuilder("a");
                tag.InnerHtml = "<";
                tag.AddCssClass("disabled");
                builder.Append(tag);

                tag = new TagBuilder("a");
                tag.InnerHtml = "1";
                tag.AddCssClass("disabled");
                builder.Append(tag);

                tag = new TagBuilder("a");
                tag.InnerHtml = ">";
                tag.AddCssClass("disabled");
                builder.Append(tag);

                tag = new TagBuilder("a");
                tag.InnerHtml = ">>";
                tag.AddCssClass("disabled");
                builder.Append(tag);

                return MvcHtmlString.Create(builder.ToString());
            }
            else
            {

                //Links uz pirmo lapu
                TagBuilder tag = new TagBuilder("a");
                tag.MergeAttribute("href", pageUrl(1));
                tag.InnerHtml = "<<";
                builder.Append(tag);

                //Links uz iepriekšejo lapu
                tag = new TagBuilder("a");
                tag.MergeAttribute("href", pagingInfo.CurrentPage > 1 ? pageUrl(pagingInfo.CurrentPage - 1) : pageUrl(1));
                tag.InnerHtml = "<";
                builder.Append(tag);

                //Aprēķina cik linkus japarāda uz katru pusi
                int diapazon = (int) Math.Ceiling((decimal) linkNum/2);

                int toAdd = 0;
                int toDiapazon = (pagingInfo.CurrentPage - 1) + diapazon;
                int fromDiapazon;

                //Nodrošina pareizu linku skaitu jo dalot piem 3/2 = 2 tadelj viens skaitlis janoniem nost
                if (linkNum%2 == 0)
                {
                    fromDiapazon = pagingInfo.CurrentPage - diapazon;
                }
                else
                {
                    fromDiapazon = (pagingInfo.CurrentPage + 1) - diapazon;
                }

                //Parbauda vai fromDiapazon nav mazaks par viens ja ir tad izlabo to un pievieno mainigaja toAdd to kas vel
                //tad japieliek klāt bus toDiapazon
                if (fromDiapazon < 1)
                {
                    toAdd = Math.Abs(fromDiapazon) + 1;
                    fromDiapazon = 1;
                }

                //Parbauda vai ir kaukas japievieno toDiapazon delj ta ka fromDiapazon bija vertibas mazakas par viens
                if (toAdd != 0)
                {
                    toDiapazon = toDiapazon + toAdd;
                    toAdd = 0;
                }

                //Parbauda vai toDiapazon neparsniedz maksimalo lappushu skaitu, ja parsniedz pievieno mainigaja toAdd kas vel
                //tad japieliek klat bus fromDiapazon ja tur bus vieta
                if (toDiapazon > pagingInfo.TotalPages)
                {
                    toAdd = toDiapazon - pagingInfo.TotalPages;
                    toDiapazon = pagingInfo.TotalPages;
                }

                //Ja toDiapazona bija par daudz vertibu pieliek fromDiapazon vertibas ja ir vel kadas brivas vietas
                if (toAdd != 0 && fromDiapazon > 1)
                {
                    while (fromDiapazon > 1 && toAdd > 0)
                    {
                        fromDiapazon--;
                        toAdd--;
                    }
                }

                //Ģenerē attiecīgo linku skaitu uz katru pusi
                for (int i = fromDiapazon; i <= toDiapazon; i++)
                {
                    tag = new TagBuilder("a");
                    tag.MergeAttribute("href", pageUrl(i));
                    tag.InnerHtml = i.ToString();

                    if (i == pagingInfo.CurrentPage)
                    {
                        tag.AddCssClass("selected");
                    }
                    builder.Append(tag);
                }

                //Links uz nākošo lapu
                tag = new TagBuilder("a");
                tag.MergeAttribute("href",
                                   pagingInfo.CurrentPage != pagingInfo.TotalPages
                                       ? pageUrl(pagingInfo.CurrentPage + 1)
                                       : pageUrl(pagingInfo.TotalPages));
                tag.InnerHtml = ">";
                builder.Append(tag);

                //Links uz pēdējo lapu
                tag = new TagBuilder("a");
                tag.MergeAttribute("href", pageUrl(pagingInfo.TotalPages));
                tag.InnerHtml = ">>";
                builder.Append(tag);

                return MvcHtmlString.Create(builder.ToString());
            }
        }