using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tools;
namespace ModelData.BusinessModel.BaseAndInterface
{
/*!
\defgroup Entities Сущности
\brief Группа классов всех сущностей
Включает в себя такие сущности: BaseOntologyEntity,
@{
*/
/// \class BaseOntologyEntity
///
/// \brief Базовый класс онтологической сущности.
/// Данный класс описывает сущность, обладающую уникальным идентификатором (URL) и собственным названием (Title).
/// Данные параметры наследованы от интерфейса I_URL.
/// \author Denis
/// \date 30.03.2019
public abstract class BaseOntologyEntity : I_URLcs, I_MySerializable
{
/// \property public string URL
///
/// \brief Уникальный идентификатор сущности.
/// Установлен атрибут IndexAttrib со значением 0, т.е. данное свойство будет выводится первым при записи в поток.
/// \returns The URL.
[IndexAttrib(0)] public string URL { set; get; }
/// \property public string Title
///
/// \brief Наименование сущности.
/// Установлен атрибут IndexAttrib со значением 1.
/// \returns The title.
[IndexAttrib(1)] public string Title { set; get; }
/// \fn public abstract Dictionary<string, string> Serialize();
///
/// \brief Метод, помещающий все необходимые сведения об объекте в Dictionary для последущей записи в поток.
///
/// \author Denis
/// \date 30.03.2019
///
/// \returns A Dictionary<string,string>
public abstract Dictionary<string, string> Serialize();
/// \fn protected string Concat(List<string> l)
///
/// \brief Объединяет непустые строки из списка в одну.
///
/// \author Denis
/// \date 30.03.2019
///
/// \param l A List<string> to process.
///
/// \returns A string.
protected string Concat(List<string> l)
{
string r = "";
if (l != null)
foreach (string s in l)
if (s != null && s != "")
r += s;
return r;
}
/// \fn protected string Concat(Dictionary<string, string> l)
///
/// \brief Объединяет все непустые (Value) элементы из Dictionary в строку
///
/// \author Denis
/// \date 30.03.2019
///
/// \param l A Dictionary<string,string> to process.
///
/// \returns A string.
protected string Concat(Dictionary<string, string> l)
{
string r = "";
if (l != null)
foreach (var s in l)
if (s.Value != null && s.Value != "")
r += s.Key + " : " + s.Value + "\n";
return r;
}
}
/// @}
}