public void Add(ReferenceTableInfo referenceTableInfo)
        {
            ExceptionUtils.DisallowNullArgument <ReferenceTableInfo>(referenceTableInfo, "referenceTableInfo");

            string existingTableType;

            lock (_syncObject)
            {
                if (CheckIfTableExists(referenceTableInfo, out existingTableType))
                {
                    throw new SchemaInfoException(
                              SchemaInfoErrorCode.TableInfoAlreadyPresent,
                              Errors._SchemaInfo_TableInfoAlreadyExists,
                              existingTableType,
                              referenceTableInfo.SchemaName,
                              referenceTableInfo.TableName);
                }

                bool result = _referenceTables.Add(referenceTableInfo);
                // Adding to the reference table set shouldn't fail since we have done all necessary
                // verification apriori.
                Debug.Assert(result, "Addition of new sharded table info failed.");
            }
        }
 /// <summary>
 /// Removes information about a reference table.
 /// </summary>
 /// <param name="referenceTableInfo">Reference table info.</param>
 public bool Remove(ReferenceTableInfo referenceTableInfo)
 {
     return(_referenceTables.Remove(referenceTableInfo));
 }