public ImageLocInfo GetImageByForeign(int imageId, int foreignId, string token, string language)
{
using (IDataContext context = DataContext.Instance())
{
string sqlCmd = "; WITH cte as (SELECT ImageLang.ShortDescription, ImageLang.LongDescription, Image.ImageId " +
" FROM {databaseOwner}[{objectQualifier}" + Prefix + "ForeignImage] ForeignImage" +
" LEFT JOIN {databaseOwner}[{objectQualifier}" + Prefix + "Image] Image ON ForeignImage.ImageId = Image.ImageId " +
" LEFT JOIN {databaseOwner}[{objectQualifier}" + Prefix + "ImageLang] ImageLang ON Image.ImageId = ImageLang.ImageId " +
" WHERE ForeignImage.ForeignId = @1 " +
" AND ForeignImage.ForeignToken = @2 " +
" AND ImageLang.Language = @3)" +
" SELECT Image.ImageId, Image.TextPosition, cte.ShortDescription, cte.LongDescription,iFiles.FileName, " +
" iFiles.Extension , iFiles.Folder , iFiles.Height , iFiles.Width , iFiles.Size," +
" ForeignImage.ViewOrder, @0 AS ForeignId" +
" FROM {databaseOwner}[{objectQualifier}" + Prefix + "ForeignImage] ForeignImage" +
" LEFT JOIN cte ON ForeignImage.ImageId = cte.ImageId" +
" LEFT JOIN {databaseOwner}[{objectQualifier}" + Prefix + "Image] Image ON ForeignImage.ImageId = Image.ImageId" +
" LEFT JOIN {databaseOwner}[{objectQualifier}Files] iFiles ON Image.FileId = iFiles.FileId" +
" WHERE ForeignImage.ImageId = @0 AND ForeignImage.ForeignId = @1 AND ForeignImage.ForeignToken = @2" +
" ORDER BY ForeignImage.ViewOrder";
return context.ExecuteQuery<ImageLocInfo>(CommandType.Text, sqlCmd, imageId, foreignId, token.ToUpper(), language).FirstOrDefault();
}
}