2019-12-04 10:39:49 +01:00
|
|
|
|
using Umbraco.Core.Strings;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Umbraco.Core.Models.PublishedContent
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
public class IndexedArrayItem<TContent>
|
|
|
|
|
|
{
|
|
|
|
|
|
public IndexedArrayItem(TContent content, int index)
|
|
|
|
|
|
{
|
|
|
|
|
|
Content = content;
|
|
|
|
|
|
Index = index;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public TContent Content { get; }
|
|
|
|
|
|
|
|
|
|
|
|
public int Index { get; }
|
|
|
|
|
|
|
2019-12-09 14:12:06 +01:00
|
|
|
|
public int TotalCount { get; set; }
|
2016-06-09 20:13:20 +02:00
|
|
|
|
|
|
|
|
|
|
public bool IsFirst()
|
|
|
|
|
|
{
|
|
|
|
|
|
return Index == 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsFirst(string valueIfTrue)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
return IsFirst(valueIfTrue, string.Empty);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsFirst(string valueIfTrue, string valueIfFalse)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
2019-11-27 08:27:18 +01:00
|
|
|
|
return new HtmlEncodedString(IsFirst() ? valueIfTrue : valueIfFalse);
|
2016-06-09 20:13:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsNotFirst()
|
|
|
|
|
|
{
|
|
|
|
|
|
return IsFirst() == false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsNotFirst(string valueIfTrue)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
return IsNotFirst(valueIfTrue, string.Empty);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsNotFirst(string valueIfTrue, string valueIfFalse)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
2019-11-27 08:27:18 +01:00
|
|
|
|
return new HtmlEncodedString(IsNotFirst() ? valueIfTrue : valueIfFalse);
|
2016-06-09 20:13:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsIndex(int index)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Index == index;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsIndex(int index, string valueIfTrue)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
return IsIndex(index, valueIfTrue, string.Empty);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsIndex(int index, string valueIfTrue, string valueIfFalse)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
2019-11-27 08:27:18 +01:00
|
|
|
|
return new HtmlEncodedString(IsIndex(index) ? valueIfTrue : valueIfFalse);
|
2016-06-09 20:13:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsModZero(int modulus)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Index % modulus == 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsModZero(int modulus, string valueIfTrue)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
return IsModZero(modulus, valueIfTrue, string.Empty);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsModZero(int modulus, string valueIfTrue, string valueIfFalse)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
2019-11-27 08:27:18 +01:00
|
|
|
|
return new HtmlEncodedString(IsModZero(modulus) ? valueIfTrue : valueIfFalse);
|
2016-06-09 20:13:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsNotModZero(int modulus)
|
|
|
|
|
|
{
|
|
|
|
|
|
return IsModZero(modulus) == false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsNotModZero(int modulus, string valueIfTrue)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
return IsNotModZero(modulus, valueIfTrue, string.Empty);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsNotModZero(int modulus, string valueIfTrue, string valueIfFalse)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
2019-11-27 08:27:18 +01:00
|
|
|
|
return new HtmlEncodedString(IsNotModZero(modulus) ? valueIfTrue : valueIfFalse);
|
2016-06-09 20:13:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsNotIndex(int index)
|
|
|
|
|
|
{
|
|
|
|
|
|
return IsIndex(index) == false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsNotIndex(int index, string valueIfTrue)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
return IsNotIndex(index, valueIfTrue, string.Empty);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsNotIndex(int index, string valueIfTrue, string valueIfFalse)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
2019-11-27 08:27:18 +01:00
|
|
|
|
return new HtmlEncodedString(IsNotIndex(index) ? valueIfTrue : valueIfFalse);
|
2016-06-09 20:13:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsLast()
|
|
|
|
|
|
{
|
|
|
|
|
|
return Index == TotalCount - 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsLast(string valueIfTrue)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
return IsLast(valueIfTrue, string.Empty);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsLast(string valueIfTrue, string valueIfFalse)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
2019-11-27 08:27:18 +01:00
|
|
|
|
return new HtmlEncodedString(IsLast() ? valueIfTrue : valueIfFalse);
|
2016-06-09 20:13:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsNotLast()
|
|
|
|
|
|
{
|
|
|
|
|
|
return IsLast() == false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsNotLast(string valueIfTrue)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
return IsNotLast(valueIfTrue, string.Empty);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsNotLast(string valueIfTrue, string valueIfFalse)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
2019-11-27 08:27:18 +01:00
|
|
|
|
return new HtmlEncodedString(IsNotLast() ? valueIfTrue : valueIfFalse);
|
2016-06-09 20:13:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsEven()
|
|
|
|
|
|
{
|
|
|
|
|
|
return Index % 2 == 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsEven(string valueIfTrue)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
return IsEven(valueIfTrue, string.Empty);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsEven(string valueIfTrue, string valueIfFalse)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
2019-11-27 08:27:18 +01:00
|
|
|
|
return new HtmlEncodedString(IsEven() ? valueIfTrue : valueIfFalse);
|
2016-06-09 20:13:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsOdd()
|
|
|
|
|
|
{
|
|
|
|
|
|
return Index % 2 == 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsOdd(string valueIfTrue)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
return IsOdd(valueIfTrue, string.Empty);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-11-27 08:27:18 +01:00
|
|
|
|
public IHtmlEncodedString IsOdd(string valueIfTrue, string valueIfFalse)
|
2016-06-09 20:13:20 +02:00
|
|
|
|
{
|
2019-11-27 08:27:18 +01:00
|
|
|
|
return new HtmlEncodedString(IsOdd() ? valueIfTrue : valueIfFalse);
|
2016-06-09 20:13:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|