Использование базового DAL 2 для захвата данных из таблицы с табидом. Хотелось бы также получить URL-адрес вкладки через API DNN. Я мог бы присоединиться к таблице Tabs, но хочу работать с api.DNN DAL 2 гидратный объект и другие
Вот моя модель.
[TableName("My_Products")]
[PrimaryKey("ProductId")]
[Cacheable("My_Products_", CacheItemPriority.Normal, 20)]
public class ProductInfo
{
public ProductInfo()
{
Langs = new List<ProductLangInfo>();
}
public int ProductId { get; set; }
[ReadOnlyColumn]
public string ProductImage { get; set; }
public int LineID { get; set; }
[ReadOnlyColumn]
public string Culture { get; set; }
[ReadOnlyColumn]
public string ProductName { get; set; }
[ReadOnlyColumn]
public string ProductShortDesc { get; set; }
[ReadOnlyColumn]
public int TabId { get; set; }
[ReadOnlyColumn]
public string ProductURL { get; set; } //GET THIS FROM API
[ReadOnlyColumn]
public List<ProductLangInfo> Langs { get; set; }
}
Это мой контроллер
public IEnumerable<ProductInfo> GetProducts(string language)
{
using (IDataContext ctx = DataContext.Instance())
{
string sqlCmd = ";WITH cte as (SELECT * FROM [ProductsLang] WHERE Culture = @0)" +
" SELECT Products.*,cte.ProductName, cte.ProductShortDesc, cte.TabId" +
" FROM [Products] as Products" +
" INNER JOIN cte ON Products.ProductId = cte.ProductId";
string order = " ORDER BY Products.ProductId DESC";
return ctx.ExecuteQuery<ProductInfo>(CommandType.Text, sqlCmd + order, language);
}
}
Я думаю, мой вопрос, где это лучший способ передать в табетический от моего запроса к DNN API?
Так что я должен делать это за пределами моей модели и контроллера и называть это с передней стороны? Мой модуль является угловым модулем спа, поэтому я бы создал веб-сервис, чтобы вернуть это? – nextoneup
Не могли бы вы поместить его в собственность? Чтобы вызов «получить» URL-адрес, делает этот вызов API в совокупности объекта? Добавил некоторую информацию в ответ, это непроверено, хотя –
Я думал, что это тоже сработает, но оно возвращается как null. ' public class ProductLangInfo { public int? ПродуктыId {get; задавать; } public string ProductName {get; задавать; } public string ProductShortDesc {get; задавать; } public int TabId {get; задавать; } приватная строка _productUrl; общественная строка ProductURL { получить { возвращение DotNetNuke.Common.Globals.NavigateURL (TabId); } } } ' – nextoneup