using System;
using System.Collections.Generic;
namespace BismNormalizer.TabularCompare.TabularMetadata
{
///
/// Represents a collection of CalculationItem objects.
///
public class CalculationItemCollection : List
{
///
/// Find an object in the collection by name.
///
///
/// CalculationItem object if found. Null if not found.
public CalculationItem FindByName(string name)
{
foreach (CalculationItem calculationItem in this)
{
if (calculationItem.Name == name)
{
return calculationItem;
}
}
return null;
}
///
/// A Boolean specifying whether the collection contains object by name.
///
///
/// True if the object is found, or False if it's not found.
public bool ContainsName(string name)
{
foreach (CalculationItem calculationItem in this)
{
if (calculationItem.Name == name)
{
return true;
}
}
return false;
}
///
/// A Boolean specifying whether the collection contains object by name searching without case sensitivity.
///
///
/// True if the object is found, or False if it's not found.
public bool ContainsNameCaseInsensitive(string name)
{
foreach (CalculationItem calculationItem in this)
{
if (calculationItem.Name.ToUpper() == name.ToUpper())
{
return true;
}
}
return false;
}
///
/// Returns a collection of CalculationItem objects filtered by the parent table's name.
///
///
/// CalculationItemCollection
public CalculationItemCollection FilterByTableName(string tableName)
{
CalculationItemCollection returnCalculationItems = new CalculationItemCollection();
foreach (CalculationItem calculationItem in this)
{
if (calculationItem.TableName == tableName)
{
returnCalculationItems.Add(calculationItem);
}
}
return returnCalculationItems;
}
///
/// Removes an object from the collection by its name.
///
///
/// True if the object was removed, or False if was not found.
public bool RemoveByName(string name)
{
foreach (CalculationItem calculationItem in this)
{
if (calculationItem.Name == name)
{
this.Remove(calculationItem);
return true;
}
}
return false;
}
}
}