116 lines
4.6 KiB
C#
116 lines
4.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Sarand.Net.Standard.Base.App;
|
|
using Sarand.Net.Standard.Base.Core;
|
|
using Sarand.Net.Standard.Base.Bus;
|
|
using Sarand.Net.Standard.Base.Dbas;
|
|
|
|
namespace Sarand.Net.Standard.Base.ReferenceData
|
|
{
|
|
//=======================================================================
|
|
public abstract partial class SaReferenceDataMgr : SacsItemMgr
|
|
{
|
|
//*******************************************************************
|
|
// L a n g u a g e s
|
|
//*******************************************************************
|
|
// Retrieve individual languages.
|
|
public abstract bool LanguageExistsById (SysId id);
|
|
public abstract bool LanguageExistsByCode (String code);
|
|
public abstract SaLanguage GetLanguageById (SysId id);
|
|
public abstract SaLanguage GetLanguageByCode (String code);
|
|
public abstract SaLanguage GetLanguage (SaLanguage.Params prm);
|
|
|
|
// Create language.
|
|
public abstract SaLanguage CreateLanguage ();
|
|
|
|
//-------------------------------------------------------------------
|
|
// Validate language data.
|
|
public bool IsValidLanguage (SaLanguage language)
|
|
{
|
|
ClearErrorState();
|
|
if (language == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
|
return IsValidLanguageData(language.GetData(), new SaLanguage.ErrField());
|
|
}
|
|
public virtual bool IsValidLanguageData (SaLanguage.Data data, SaLanguage.ErrField errField)
|
|
{
|
|
ClearErrorState();
|
|
// Language properties.
|
|
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)SaReferenceDataDbDfn.GetColTextLen(SaReferenceDataDbDfn.ColumnIdx.Language_Code), true))
|
|
{
|
|
errField.Code = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SaReferenceDataDbDfn.GetColTextLen(SaReferenceDataDbDfn.ColumnIdx.Language_Name), true))
|
|
{
|
|
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Unicode != SacsHierarchyItem.ValidValue.Ignore && data.Unicode)
|
|
{
|
|
errField.Unicode = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Translation != SacsHierarchyItem.ValidValue.Ignore && data.Translation)
|
|
{
|
|
errField.Translation = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
// Validate associated data.
|
|
if (errField.LanguageIdPrimary != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.LanguageIdPrimary))
|
|
{
|
|
if (!LanguageExistsById(data.LanguageIdPrimary))
|
|
{
|
|
errField.LanguageIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
|
return SetErrorState("Language's parent not found");
|
|
}
|
|
}
|
|
return true;
|
|
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Language database interface.
|
|
public abstract bool InsertLanguage (SaLanguage language, DbUpdateInfo dbUpdateInfo);
|
|
public abstract bool UpdateLanguage (SaLanguage language, DbUpdateInfo dbUpdateInfo);
|
|
public virtual bool LanguageCanBeDeleted (SaLanguage language)
|
|
{
|
|
ClearErrorState();
|
|
if (language == null) return SetErrorState(Msg_ItemNotSpecified);
|
|
if (language.HasDependentLanguages()) return SetErrorState("Has dependent languages");
|
|
return true;
|
|
}
|
|
public abstract bool DeleteLanguage (SaLanguage language, DbUpdateInfo dbUpdateInfo);
|
|
|
|
//-------------------------------------------------------------------
|
|
// Language list.
|
|
public abstract ColumnDfn GetLanguageColumnDfn (SaLanguage.Column columnId, String caption = "", int width = 0);
|
|
public abstract List<String> GetLanguageQueryFilter (SaLanguage.Params prm);
|
|
public abstract long GetLanguageCount (SaLanguage.Params prm);
|
|
public abstract List<SaLanguage> GetLanguageList (SaLanguage.Params prm);
|
|
public abstract DbResultSet ExecuteLanguageQuery (List<ColumnDfn> columns, SaLanguage.Params prm);
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>
|
|
/// Extract and format result set data value where specific handling is required.
|
|
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
|
|
/// </summary>
|
|
public virtual DataValue GetLanguageDataValue (ColumnDfn column, NamedValue.Map values)
|
|
{
|
|
DataValue value = new DataValue();
|
|
switch ((SaLanguage.Column)column.Id)
|
|
{
|
|
//-----------------------------------------------------------
|
|
// Default.
|
|
default:
|
|
break;
|
|
|
|
//-----------------------------------------------------------
|
|
}
|
|
return value;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|