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.Base.Bus; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Saxonite.Net.Standard.Base.Mgr { //======================================================================= partial class SaxItemDataMgr { //******************************************************************* // Item Data Mgr - Item Sport //******************************************************************* // Utilities. //------------------------------------------------------------------- // Create item. public abstract SaxItemSport CreateItemSport(); //------------------------------------------------------------------- // Item exists. public bool ItemSportExistsById(SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return false; SaxItemSport.Params prmItemSport = new SaxItemSport.Params(); prmItemSport.IdsIncluded.Add(id); prmItemSport.StatusCat = SaxItemSport.StatusCat.Any; return GetItemSportCount(prmItemSport) == 1; } //------------------------------------------------------------------- // Retrieve individual items. public abstract SaxItemSport GetItemSport(SaxItemSport.Params prmItemSport); public SaxItemSport GetItemSportById(SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return null; SaxItemSport.Params prmItemSport = new SaxItemSport.Params(); prmItemSport.IdsIncluded.Add(id); prmItemSport.StatusCat = SaxItemSport.StatusCat.Any; return GetItemSport(prmItemSport); } //------------------------------------------------------------------- // Validate item data. public bool IsValidItemSport(SaxItemSport itemSport) { ClearErrorState(); if (itemSport == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidItemSportData(itemSport.GetData(), new SaxItemSport.ErrField()); } public virtual bool IsValidItemSportData(SaxItemSport.Data data, SaxItemSport.ErrField errField) { ClearErrorState(); //--------------------------------------------------------------- // Item Id. if (errField.ItemId != SacsHierarchyItem.ValidValue.Ignore && !ItemId.IsValid(data.ItemId)) { errField.ItemId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Item Id must be specified"); } // Sport. if (errField.SportId != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.SportId)) { errField.SportId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Sport must be specified"); } //--------------------------------------------------------------- // Common properties. if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.ItemSport_Notes))) { errField.Notes = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.Status != SacsHierarchyItem.ValidValue.Ignore) { if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.ItemSport_Status), true, true)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } if (!SaxItemSport.ValidStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); } } //--------------------------------------------------------------- // Item & Sport combination must be unique. if (errField.ItemId != SacsHierarchyItem.ValidValue.Ignore && errField.SportId != SacsHierarchyItem.ValidValue.Ignore) { if (ItemId.IsValid(data.ItemId) && SysId.IsValid(data.SportId)) { SaxItemSport.Params prmItemSport = new SaxItemSport.Params(); if (SysId.IsValid(data.Id)) prmItemSport.IdsExcluded.Add(data.Id); prmItemSport.ItemIdsIncluded.Add(data.ItemId); prmItemSport.SportIdsIncluded.Add(data.SportId); prmItemSport.StatusCat = SaxItemSport.StatusCat.Any; if (GetItemSportCount(prmItemSport) > 0) { errField.SportId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Sport must be unique for item"); } } } //--------------------------------------------------------------- return true; } //------------------------------------------------------------------- // Item database interface. public abstract bool InsertItemSport(SaxItemSport itemSport, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateItemSport(SaxItemSport itemSport, DbUpdateInfo dbUpdateInfo); public virtual bool ItemSportCanBeDeleted(SaxItemSport itemSport) { ClearErrorState(); return true; } public abstract bool DeleteItemSport(SaxItemSport itemSport, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // Item list. public abstract ColumnDfn GetItemSportColumnDfn(SaxItemSport.Column columnId, String caption = "", int width = 0); public abstract List GetItemSportQueryFilter(SaxItemSport.Params prmItemSport); public abstract long GetItemSportCount(SaxItemSport.Params prmItemSport); public abstract List GetItemSportList(SaxItemSport.Params prmItemSport); public abstract DbResultSet ExecuteItemSportQuery(List columns, SaxItemSport.Params prmItemSport); //------------------------------------------------------------------- /// /// Extract and format result set data value where specific handling is required. /// Where response is an invalid data value, format value using column.FormatValue(values). /// public virtual DataValue GetItemSportDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SaxItemSport.Column)column.Id) { //----------------------------------------------------------- // Data item type. case SaxItemSport.Column.ItemType_Code: { value = new DataValue(DataItemTypeCodes.GetCodeForType(values.GetLong(column.DataName))); } break; case SaxItemSport.Column.ItemType_Desc: { value = new DataValue(DataItemTypeCodes.GetDescForType(values.GetLong(column.DataName))); } break; //----------------------------------------------------------- // Notes. case SaxItemSport.Column.Notes: value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); break; //----------------------------------------------------------- // Status. case SaxItemSport.Column.Status_Desc: case SaxItemSport.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SaxItemSport.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDesc(status)); else if (column.Id == (int)SaxItemSport.Column.Status_Ind) value = new DataValue(SaxItemSport.GetStatusTriState(status)); } break; //----------------------------------------------------------- default: value = values.GetValue(column.DataName); break; } return value; } //------------------------------------------------------------------- } //======================================================================= }