Beispielcode für:
Referenzierte Assemblies: eBiss.Api.dll und Pranke.Orm.TypeLib.dll
using eBiss.Api;
using eBiss.Api.Data;
using Pranke.Attributes;
using System.Linq;
using Pranke.Orm.Interfaces;
using System.Collections;
namespace Map
{
[OrmClass(tableName: "my_country_codes")]
public abstract class CountryCodes
{
[Key]
public abstract string CountryCode { get; set; }
public abstract string Description { get; set; }
}
/// <summary>
///
/// </summary>
public class Functions : IMapFunctionExtender, ILoggingObject, IApplicationConsumer, ISystemVariableConsumer
{
private static string Db_Connection_Variable = "Db.CountryCodes.Connection";
public IApplication Application { get; set; }
public ILogContext Log { get; set; }
public IDictionary Variables { get; set; }
/// <summary>
/// Select from my_country_codes using local DB
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
/// Sample Call: Map.Functions.CountryCode('DE')
[eBiss.Api.MappingFunction]
public object CountryCode(string code)
{
CountryCodes foundItem = Application.Entities.DbSet<CountryCodes>().Where(c => c.CountryCode == code).FirstOrDefault();
return foundItem?.Description;
}
/// <summary>
/// Select from my_country_codes using from diffrent DB, in this sample from MS-SQLServer DB eBiss3Demo
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
/// Sample Call: Map.Functions.CountryCodeFromDb('DE')
[eBiss.Api.MappingFunction]
public object CountryCodeFromDb(string code)
{
Pranke.Orm.Interfaces.IEntities entities = Pranke.Orm.EntitiesBase.Connect(Pranke.Orm.DatabaseType.MsSql, GetDbConnection());
IQueryResult<CountryCodes> res = entities.DbSet<CountryCodes>();
res.Query.Timeout = 100;
CountryCodes foundItem = res.Where(c => c.CountryCode == code).FirstOrDefault();
return foundItem?.Description;
}
/// <summary>
/// the Connection string has the same format as the one in the eBiss.Config under 'add key="DbConnectionString"...',
/// e.g. with „…;uid=<user>;pwd=<password>“ and not "User=<user>; Password=<password>"
/// </summary>
/// <returns></returns>
/// <exception cref="System.ApplicationException"></exception>
private string GetDbConnection()
{
if (Variables.Contains(Db_Connection_Variable) && string.IsNullOrWhiteSpace(Variables[Db_Connection_Variable].ToString()) == false)
{
return Variables[Db_Connection_Variable].ToString();
}
else
{
throw new System.ApplicationException($"Missing Variable {Db_Connection_Variable}!");
}
}
}
}