using Sarand.Net.Standard.Dbas.Data; using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Dbas; using Saxonite.Base.App; using Saxonite.Net.Standard.Dbas.Bus; using Saxonite.Net.Standard.Dbas.Internal; using Saxonite.Net.Standard.Base.Bus; using System; using System.Collections.Generic; using System.Data.Common; using System.Text; using Saxonite.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Utils; using System.Linq; namespace Saxonite.Net.Standard.Dbas.Mgr { //======================================================================= partial class SaxItemDataMgr_Dbas { //******************************************************************* // Item Data Mgr - Item Image //******************************************************************* // Utilities. private List GetLogProperties(SaxItemImage itemImage) { return new List() { new StringPair("Id", SysId.ToString(itemImage.Id)), new StringPair("ItemId", (Sax.DataItemType)itemImage.ItemId.Type + ": " + itemImage.ItemId.Id), new StringPair("ImageType", itemImage.ImageType.ToString()), new StringPair("Status", itemImage.StatusCode) }; } //------------------------------------------------------------------- // Create item. public override SaxItemImage CreateItemImage(ItemId itemId, Sax.ImageType imageType) { ClearErrorState(); return new SaxItemImage_Dbas(CoreDatabase, null, itemId, imageType, 0); } private SaxItemImage_Dbas CreateItemImage(ItemImage_Db dbItemImage) { ClearErrorState(); ItemId itemId = new ItemId(dbItemImage._ItemType, new SysId(dbItemImage._ItemId)); SaxItemImage_Dbas itemImage = new SaxItemImage_Dbas(CoreDatabase, new SysId(dbItemImage._Id), itemId, (Sax.ImageType)dbItemImage._ImageType, (ushort)dbItemImage._Flags); PopulateFrom(dbItemImage, itemImage); return itemImage; } //------------------------------------------------------------------- // Get item. public override SaxItemImage GetItemImage(SaxItemImage.Params prm) { ClearErrorState(); return GetItemImage(GetItemImageQueryFilter(prm).Concat(" And ", "(", ")")); } private SaxItemImage GetItemImage(String filter) { ClearErrorState(); long count = GetItemImageCount(filter); if (count == 0) return null; if (count != 1) { SetErrorState("Multiple items found"); return null; } SaxItemImage itemImage = null; // Query data. using (var dbConnection = CoreDatabase.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); ItemImage_Db dbItemImage = new ItemImage_Db(CoreDbInfo); dbItemImage.PopulateFrom(dbCommand, aliasItemImage, filter); itemImage = CreateItemImage(dbItemImage); } catch (Exception exc) { SetErrorState("Database query exception"); SaLogger.Warn(GetType().Name + ".GetItemImage\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc)); } } return itemImage; } //------------------------------------------------------------------- // Validate item. public override bool IsValidItemImageData(SaxItemImage.Data data, SaxItemImage.ErrField errField) { ClearErrorState(); if (!base.IsValidItemImageData(data, errField)) return false; return true; } //------------------------------------------------------------------- // Insert item. public override bool InsertItemImage(SaxItemImage itemImage, DbUpdateInfo dbUpdateInfo) { String fn = GetType().Name + ".InsertItemImage"; ClearErrorState(); if (!IsValidItemImage(itemImage)) return false; if (SysId.IsValid(itemImage.Id)) return SetErrorState(ErrorMessage.ValiditemId); using (var dbConnection = CoreDatabase.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); ItemImage_Db dbItemImage = new ItemImage_Db(CoreDbInfo); PopulateTo(dbItemImage, itemImage, dbUpdateInfo); if (ItemImage_Db.FieldsNonId.Contains("Id")) { // Generate next Id. dbItemImage._Id = CoreDatabase.GetNextIdFromTable("ItemImage"); } dbItemImage.ExecuteInsertCommand(dbCommand); itemImage.Id = new SysId(dbItemImage._Id); itemImage.Changed = false; if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(itemImage).Concat(": ").Concat("", "\n\t")); } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Update item. public override bool UpdateItemImage(SaxItemImage itemImage, DbUpdateInfo dbUpdateInfo) { String fn = GetType().Name + ".UpdateItemImage"; ClearErrorState(); if (!IsValidItemImage(itemImage)) return false; if (!SysId.IsValid(itemImage.Id)) return SetErrorState(ErrorMessage.InvalidItemId); if (!itemImage.Changed) { if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(itemImage).Concat(": ").Concat("", "\n\t")); return true; } using (var dbConnection = CoreDatabase.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { // Retrieve item. dbConnection.Open(); ItemImage_Db dbItemImage = new ItemImage_Db(CoreDbInfo); dbItemImage.PopulateFrom(dbCommand, aliasItemImage, "Id=" + SysId.ToString(itemImage.Id)); // ToDo SaxUpdateLogItemMonitor_ItemImage updateLogMonitor = new SaxUpdateLogItemMonitor_ItemImage(SessionContext, CreateItemImage(dbItemImage), dbUpdateInfo); // Update properties. PopulateTo(dbItemImage, itemImage, dbUpdateInfo); dbItemImage.ExecuteUpdateCommand(dbCommand); itemImage.Changed = false; if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(itemImage).Concat(": ").Concat("", "\n\t")); // Record updates. // ToDo updateLogMonitor.RecordUpdatedValues(itemImage); // ToDo updateLogMonitor.LogUpdates(); } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Delete item. public override bool ItemImageCanBeDeleted(SaxItemImage itemImage) { ClearErrorState(); if (!base.ItemImageCanBeDeleted(itemImage)) return false; return true; } public override bool DeleteItemImage(SaxItemImage itemImage, DbUpdateInfo dbUpdateInfo) { String fn = GetType().Name + ".DeleteItemImage"; ClearErrorState(); if (!ItemImageCanBeDeleted(itemImage)) return false; using (var dbConnection = CoreDatabase.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { // Retrieve itemImage. dbConnection.Open(); ItemImage_Db dbItemImage = new ItemImage_Db(CoreDbInfo); dbItemImage.PopulateFrom(dbCommand, aliasItemImage, "Id=" + itemImage.Id.ToString()); // Delete itemImage. dbCommand.CommandType = System.Data.CommandType.Text; dbCommand.CommandText = "DELETE FROM " + SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.ItemImage) + " WHERE Id=" + SysId.ToString(itemImage.Id) + ";"; dbCommand.ExecuteNonQuery(); itemImage.Changed = false; if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(itemImage).Concat(": ").Concat("", "\n\t")); } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Copy data properties to and from database. private void PopulateTo(ItemImage_Db dbItemImage, SaxItemImage itemImage, DbUpdateInfo dbUpdateInfo) { dbItemImage._Id = SysId.ToInt(itemImage.Id); dbItemImage._ItemType = itemImage.ItemId.Type; dbItemImage._ItemId = SysId.ToInt(itemImage.ItemId.Id); dbItemImage._ImageType = (short)itemImage.ImageType; dbItemImage._ImageSeq = itemImage.ImageSeq; dbItemImage._SessionUid = itemImage.SessionUid; dbItemImage._ImageUid = itemImage.ImageUid; dbItemImage._Filename = itemImage.Filename; dbItemImage._Mime = itemImage.Mime; dbItemImage._ContentType = itemImage.ContentType; dbItemImage._Width = itemImage.Width; dbItemImage._Height = itemImage.Height; dbItemImage._ImageData = itemImage.ImageData; // Common. dbItemImage._Notes = itemImage.Notes; dbItemImage._Status = SacsSystem.GetStatusCode(itemImage.Status); dbItemImage._Flags = (short)itemImage.Flags; if (!SysId.IsValid(itemImage.Id)) { dbItemImage._CreateOn = DateTime.Now; dbItemImage._CreateBy = dbUpdateInfo.UserId.ToInt(); dbItemImage._CreateHost = dbUpdateInfo.Host; } dbItemImage._UpdateOn = DateTime.Now; dbItemImage._UpdateBy = dbUpdateInfo.UserId.ToInt(); dbItemImage._UpdateHost = dbUpdateInfo.Host; } private void PopulateFrom(ItemImage_Db dbItemImage, SaxItemImage itemImage) { itemImage.Id = new SysId(dbItemImage._Id); //itemImage.ItemId = new ItemId(dbItemImage._ItemType, new SysId(dbItemImage._ItemId); //itemImage.ImageType = (Sax.ImageType)dbItemImage._ImageType; itemImage.ImageSeq = dbItemImage._ImageSeq; itemImage.SessionUid = dbItemImage._SessionUid; itemImage.ImageUid = dbItemImage._ImageUid; itemImage.Filename = dbItemImage._Filename; itemImage.Mime = dbItemImage._Mime; itemImage.ContentType = dbItemImage._ContentType; itemImage.Width = dbItemImage._Width; itemImage.Height = dbItemImage._Height; itemImage.ImageData = dbItemImage._ImageData; // Common. itemImage.Notes = dbItemImage._Notes; itemImage.Status = SacsSystem.GetStatusForCode(dbItemImage._Status); itemImage.SetCreateStamp(dbItemImage._CreateOn, new SysId(dbItemImage._CreateBy), dbItemImage._CreateHost); itemImage.SetUpdateStamp(dbItemImage._UpdateOn, new SysId(dbItemImage._UpdateBy), dbItemImage._UpdateHost); itemImage.AcceptChanges(); } //------------------------------------------------------------------- // Item column definitions. private static readonly String aliasItemImage = "ItmSpt"; private void SetItemImageColDfn (ColumnDfn col, String caption, int width, SaxDbDfn_Core.ColumnIdx dbCol, ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String, String alias = "", String prefix = "") { if (String.IsNullOrEmpty(alias) && SaxDbDfn_Core.GetTableForColumn(dbCol) == SaxDbDfn_Core.TableIdx.ItemImage) alias = aliasItemImage; col.Set(caption, width, (int)dbCol, prefix + SaxDbDfn_Core.GetColumnName(dbCol, false), SaxDbDfn_Core.GetColumnNameQual(dbCol, alias), dataType, align); if (dataType == DataValue.DataType.String && dbCol != SaxDbDfn_Core.ColumnIdx.Unknown) col.MaxLength = (int)SaxDbDfn_Core.GetColTextLen(dbCol); } public override ColumnDfn GetItemImageColumnDfn(SaxItemImage.Column columnId, string caption = "", int width = 0) { ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); switch (columnId) { //----------------------------------------------------------- case SaxItemImage.Column.Pos: SetItemImageColDfn(columnDfn, "Pos", 60, SaxDbDfn_Core.ColumnIdx.Unknown, ColumnAlignment.Right); columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off; columnDfn.ReadOnly = true; columnDfn.Resizable = false; break; case SaxItemImage.Column.Id: SetItemImageColDfn(columnDfn, "Id", 80, SaxDbDfn_Core.ColumnIdx.ItemImage_Id, ColumnAlignment.Right, DataValue.DataType.Long); columnDfn.ReadOnly = true; break; case SaxItemImage.Column.ItemType: SetItemImageColDfn(columnDfn, "Item type", 80, SaxDbDfn_Core.ColumnIdx.ItemImage_ItemType, ColumnAlignment.Center, DataValue.DataType.Long); columnDfn.ReadOnly = true; break; case SaxItemImage.Column.ItemType_Code: SetItemImageColDfn(columnDfn, "Item type", 80, SaxDbDfn_Core.ColumnIdx.ItemImage_ItemType, ColumnAlignment.Center); columnDfn.ReadOnly = true; break; case SaxItemImage.Column.ItemType_Desc: SetItemImageColDfn(columnDfn, "Item type", 80, SaxDbDfn_Core.ColumnIdx.ItemImage_ItemType, ColumnAlignment.Center); columnDfn.ReadOnly = true; break; case SaxItemImage.Column.ItemId: SetItemImageColDfn(columnDfn, "Item Id", 80, SaxDbDfn_Core.ColumnIdx.ItemImage_ItemId, ColumnAlignment.Right, DataValue.DataType.Long); columnDfn.ReadOnly = true; break; // Image type. case SaxItemImage.Column.ImageType: SetItemImageColDfn(columnDfn, "Image type", 80, SaxDbDfn_Core.ColumnIdx.ItemImage_ImageType, ColumnAlignment.Center, DataValue.DataType.Long); columnDfn.ReadOnly = true; break; case SaxItemImage.Column.ImageType_Code: SetItemImageColDfn(columnDfn, "Image type", 100, SaxDbDfn_Core.ColumnIdx.ItemImage_ImageType, ColumnAlignment.Center, DataValue.DataType.String); columnDfn.ReadOnly = true; break; case SaxItemImage.Column.ImageType_Desc: SetItemImageColDfn(columnDfn, "Image type", 120, SaxDbDfn_Core.ColumnIdx.ItemImage_ImageType, ColumnAlignment.Center, DataValue.DataType.String); columnDfn.ReadOnly = true; break; // Image properties. case SaxItemImage.Column.ImageSeq: SetItemImageColDfn(columnDfn, "Seq", 60, SaxDbDfn_Core.ColumnIdx.ItemImage_ImageSeq, ColumnAlignment.Center, DataValue.DataType.Long); columnDfn.ReadOnly = true; break; case SaxItemImage.Column.Filename: SetItemImageColDfn(columnDfn, "Filename", 160, SaxDbDfn_Core.ColumnIdx.ItemImage_Filename); columnDfn.ReadOnly = true; break; case SaxItemImage.Column.Mime: SetItemImageColDfn(columnDfn, "Mime", 100, SaxDbDfn_Core.ColumnIdx.ItemImage_Mime); columnDfn.ReadOnly = true; break; case SaxItemImage.Column.ContentType: SetItemImageColDfn(columnDfn, "Content Type", 120, SaxDbDfn_Core.ColumnIdx.ItemImage_ContentType); columnDfn.ReadOnly = true; break; //----------------------------------------------------------- // Derived properties. //----------------------------------------------------------- // Common properties. case SaxItemImage.Column.Notes: SetItemImageColDfn(columnDfn, "Notes", 240, SaxDbDfn_Core.ColumnIdx.ItemImage_Notes); break; case SaxItemImage.Column.Flags: SetItemImageColDfn(columnDfn, "Flags", 60, SaxDbDfn_Core.ColumnIdx.ItemImage_Flags, ColumnAlignment.Center, DataValue.DataType.Long); break; case SaxItemImage.Column.Status: SetItemImageColDfn(columnDfn, "Status", 80, SaxDbDfn_Core.ColumnIdx.ItemImage_Status, ColumnAlignment.Center); break; case SaxItemImage.Column.Status_Desc: SetItemImageColDfn(columnDfn, "Status", 90, SaxDbDfn_Core.ColumnIdx.ItemImage_Status, ColumnAlignment.Center); break; case SaxItemImage.Column.Status_Ind: SetItemImageColDfn(columnDfn, "Status", 80, SaxDbDfn_Core.ColumnIdx.ItemImage_Status, ColumnAlignment.Center, DataValue.DataType.TriState); columnDfn.TriStateFormat = ColumnTriStateFormat.Lights; break; case SaxItemImage.Column.CreateOn_Date: SetItemImageColDfn(columnDfn, "Created", 80, SaxDbDfn_Core.ColumnIdx.ItemImage_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.ReadOnly = true; break; case SaxItemImage.Column.UpdateOn_Date: SetItemImageColDfn(columnDfn, "Updated", 80, SaxDbDfn_Core.ColumnIdx.ItemImage_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.ReadOnly = true; break; //----------------------------------------------------------- } if (!String.IsNullOrEmpty(caption)) columnDfn.Caption = caption; if (width > 0) columnDfn.Width = width; return columnDfn; } //------------------------------------------------------------------- // Item query filter. public override List GetItemImageQueryFilter(SaxItemImage.Params prm) { List filter = new List(); // Item Ids. String idsIncluded = prm.IdsIncluded.Concat(","); if (!idsIncluded.IsEmpty()) filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Id, aliasItemImage) + " IN (" + idsIncluded + ")"); String idsExcluded = prm.IdsExcluded.Concat(","); if (!idsExcluded.IsEmpty()) filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Id, aliasItemImage) + " NOT IN (" + idsExcluded + ")"); // Item Ids. if (!prm.ItemIdsIncluded.IsEmpty()) { List itemIdFilters = new List(); foreach (ItemId itemId in prm.ItemIdsIncluded) { if (!ItemId.IsValid(itemId)) continue; String itemIdFilter = SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_ItemType, aliasItemImage) + "=" + itemId.Type + " AND " + SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_ItemId, aliasItemImage) + "=" + SysId.ToInt(itemId.Id); itemIdFilters.Add(itemIdFilter); } if (!itemIdFilters.IsEmpty()) filter.Add(itemIdFilters.Concat(" OR ", "(", ")")); } // Image Type. if (!prm.ImageTypesIncluded.IsEmpty()) filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_ImageType, aliasItemImage) + " IN (" + prm.ImageTypesIncluded.Select(item => ((int)item).ToString()).Concat(",") + ")"); // Notes. if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Notes, aliasItemImage) + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'"); // Status. if (prm.StatusCat == SaxItemImage.StatusCat.ActiveOnly) filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Status, aliasItemImage) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'"); else if (prm.StatusCat == SaxItemImage.StatusCat.InctiveOnly) filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Status, aliasItemImage) + "='" + SacsSystem.GetStatusCode(SaStatus.Inactive) + "'"); else if (prm.StatusCat == SaxItemImage.StatusCat.NotDeleted) filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Status, aliasItemImage) + "!='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'"); else if (prm.StatusCat == SaxItemImage.StatusCat.Deleted) filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Status, aliasItemImage) + "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'"); if (filter.Count < 1) filter.Add("1=1"); return filter; } // Item sort columns. public List GetItemImageSortColumns(SaxItemImage.Params prm) { // Sort sequence: List sortColumnNames = new List(); foreach (var columnDfn in prm.SortColumns) { // Need to ensure correct alias used for ItemImage columns in case of conflict. String sortCol = String.Empty; if (SaxDbDfn_Core.GetTableForColumn((SaxDbDfn_Core.ColumnIdx)columnDfn.DbColumn) == SaxDbDfn_Core.TableIdx.ItemImage) { sortCol = SaxDbDfn_Core.GetColumnNameQual((SaxDbDfn_Core.ColumnIdx)columnDfn.DbColumn, aliasItemImage); } else { sortCol = columnDfn.DataName; if (!StringUtil.IsEmpty(columnDfn.SortDataName)) sortCol = columnDfn.SortDataName; } if (!sortCol.IsEmpty()) { DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls sortColumnNames.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", ")); } } sortColumnNames.RemoveBlanks(); if (sortColumnNames.IsEmpty()) { // Default sort columns. sortColumnNames.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_ItemType, aliasItemImage) + " ASC"); sortColumnNames.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_ItemId, aliasItemImage) + " ASC"); } return sortColumnNames; } //------------------------------------------------------------------- // Item count. private long GetItemImageCount(String filter) { ClearErrorState(); return CoreDatabase.GetRowCount(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.ItemImage) + " As " + aliasItemImage, filter); } public override long GetItemImageCount(SaxItemImage.Params prm) { ClearErrorState(); return GetItemImageCount(GetItemImageQueryFilter(prm).Concat(" AND ", "(", ")")); } //------------------------------------------------------------------- // Item list. public override List GetItemImageList(SaxItemImage.Params prm) { List itemImages = new List(); DbQuery qry = new DbQuery(CoreDatabase.DbmsType); qry.Tables.Add(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.ItemImage), aliasItemImage); ItemImage_Db dbItemImage = new ItemImage_Db(CoreDbInfo); qry.Columns.AddRange(dbItemImage.ExistingColumnNames); qry.Filters.AddRange(GetItemImageQueryFilter(prm)); qry.OrderBy.AddRange(GetItemImageSortColumns(prm)); // Query data. using (var dbConnection = CoreDatabase.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging); using (DbDataReader dbDataReader = dbCommand.ExecuteReader()) { while (dbDataReader.Read()) { dbItemImage = new ItemImage_Db(CoreDbInfo); dbItemImage.PopulateFrom(dbDataReader); itemImages.Add(CreateItemImage(dbItemImage)); } } } catch (Exception exc) { SaLogger.Warn(GetType().Name + ".GetItemImageList\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc)); } } return itemImages; } //------------------------------------------------------------------- // Item query execution. public override DbResultSet ExecuteItemImageQuery(List columns, SaxItemImage.Params prm) { ClearErrorState(); //--------------------------------------------------------------------- // Construct query. DbQuery query = new DbQuery(CoreDatabase.DbmsType); query.Tables.Add(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.ItemImage), aliasItemImage); // Add columns as defined in query list. if (columns.HasId(SaxItemImage.Column.Id)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Id, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.ItemType) || columns.HasId(SaxItemImage.Column.ItemType_Code) || columns.HasId(SaxItemImage.Column.ItemType_Desc)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_ItemType, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.ItemId)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_ItemId, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.ImageType)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_ImageType, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.ImageSeq)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_ImageSeq, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.Filename)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Filename, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.Mime)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Mime, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.ContentType)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_ContentType, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.Width)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Width, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.Height)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Height, aliasItemImage)); // Common properties. if (columns.HasId(SaxItemImage.Column.Notes)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Notes, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.Flags)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Flags, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.Status) || columns.HasId(SaxItemImage.Column.Status_Desc) || columns.HasId(SaxItemImage.Column.Status_Ind)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_Status, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.CreateOn_Date)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_CreateOn, aliasItemImage)); if (columns.HasId(SaxItemImage.Column.UpdateOn_Date)) query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ItemImage_UpdateOn, aliasItemImage)); //--------------------------------------------------------------------- // Populate filter. query.Filters.AddRange(GetItemImageQueryFilter(prm)); if (prm.IdsIncluded.Count != 1) { // Configure sort sequence. foreach (String sortColumn in GetItemImageSortColumns(prm)) query.OrderBy.Add(sortColumn); } //--------------------------------------------------------------------- //return new DbResultSet_DataTableReader(db, query.BuildQuery(prm.ResultsPaging)); return DbResultSet_DataReader.ExecuteQuery(CoreDatabase, query.BuildQuery(prm.ResultsPaging)); } //------------------------------------------------------------------- } //======================================================================= }