/// <summary>
        /// Обновить данные в текущей строке таблицы.
        /// </summary>
        /// <param name="table">Таблица.</param>
        /// <param name="reference">Ссылка на доску.</param>
        /// <param name="prep">Тип обновления.</param>
        protected virtual void UpdateFullRowInfo(BoardReferenceTable table, IBoardReference reference, JET_prep prep)
        {
            var row = new BoardReferenceTable.ViewValues.FullRowView()
            {
                Id           = GetId(reference),
                Category     = reference.Category ?? "",
                Pages        = reference.Pages,
                IsAdult      = reference.IsAdult,
                DefaultName  = reference.DefaultName,
                ShortName    = reference.ShortName,
                DisplayName  = reference.DisplayName,
                ExtendedData = SerializeDataContract(BoardExtendedInfo.ToContract(reference, LinkSerialization)),
                BumpLimit    = reference.BumpLimit
            };

            if (prep == JET_prep.Replace)
            {
                table.Update.UpdateAsFullRowView(ref row);
            }
            else if (prep == JET_prep.Insert)
            {
                table.Insert.InsertAsFullRowView(ref row);
            }
        }
 /// <summary>
 /// Десериализовать дополнительную ифнмормацию.
 /// </summary>
 /// <param name="extended">Дополнительная информация.</param>
 /// <param name="result">Результат.</param>
 protected virtual void SetExtendedInfo(byte[] extended, BoardReference result)
 {
     BoardExtendedInfo.SetExtendedInfoFor(DeserializeDataContract <BoardExtendedInfo>(extended), result, LinkSerialization);
 }