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 Sarand.Net.Standard.Base.Utils; using Saxonite.Base.App; using Saxonite.Net.Standard.Base.Bus; using System; using System.Collections.Generic; using System.Text; namespace Saxonite.Net.Standard.Base.Mgr { //======================================================================= partial class SaxReferenceMgr { //******************************************************************* // Reference Mgr - Sport //******************************************************************* // Utilities. //------------------------------------------------------------------- // Create item. public abstract SaxSport CreateSport (); //------------------------------------------------------------------- // Item exists. public bool SportExistsById (SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return false; SaxSport.Params prmSport = new SaxSport.Params(); prmSport.IdsIncluded.Add(id); prmSport.StatusCat = SaxSport.StatusCat.Any; return GetSportCount(prmSport) == 1; } public bool SportExistsByName (String name) { ClearErrorState(); if (StringUtil.IsEmpty(name)) return false; SaxSport.Params prmSport = new SaxSport.Params(); prmSport.NameFull = name; prmSport.StatusCat = SaxSport.StatusCat.Any; return GetSportCount(prmSport) == 1; } //------------------------------------------------------------------- // Retrieve individual items. public abstract SaxSport GetSport (SaxSport.Params prmSport); public SaxSport GetSportById (SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return null; SaxSport.Params prmSport = new SaxSport.Params(); prmSport.IdsIncluded.Add(id); prmSport.StatusCat = SaxSport.StatusCat.Any; return GetSport(prmSport); } public SaxSport GetSportByName (String name) { ClearErrorState(); if (StringUtil.IsEmpty(name)) return null; SaxSport.Params prmSport = new SaxSport.Params(); prmSport.NameFull = name; prmSport.StatusCat = SaxSport.StatusCat.Any; return GetSport(prmSport); } //------------------------------------------------------------------- // Validate item data. public bool IsValidSport (SaxSport sport) { ClearErrorState(); if (sport == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidSportData(sport.GetData(), new SaxSport.ErrField()); } public virtual bool IsValidSportData (SaxSport.Data data, SaxSport.ErrField errField) { ClearErrorState(); // Name. if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Sport_Name), true)) { errField.Name = SacsHierarchyItem.ValidValue.Invalid; return false; } // Common properties. if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Sport_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.Sport_Status), true, true)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } if (!SaxSport.ValidStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); } } return true; } //------------------------------------------------------------------- // Sport database interface. public abstract bool InsertSport (SaxSport sport, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateSport (SaxSport sport, DbUpdateInfo dbUpdateInfo); public virtual bool SportCanBeDeleted (SaxSport sport) { ClearErrorState(); return true; } public abstract bool DeleteSport (SaxSport sport, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // Sport list: public abstract ColumnDfn GetSportColumnDfn (SaxSport.Column columnId, String caption = "", int width = 0); public abstract List GetSportQueryFilter (SaxSport.Params prmSport); public abstract long GetSportCount (SaxSport.Params prmSport); public abstract List GetSportList (SaxSport.Params prmSport); public abstract DbResultSet ExecuteSportQuery (List columns, SaxSport.Params prmSport); //------------------------------------------------------------------- /// /// 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 GetSportDataValue (ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SaxSport.Column)column.Id) { //----------------------------------------------------------- // Notes - limit to 200 chars. case SaxSport.Column.Notes: value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); break; //----------------------------------------------------------- // Status. case SaxSport.Column.Status_Desc: case SaxSport.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SaxSport.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDesc(status)); else if (column.Id == (int)SaxSport.Column.Status_Ind) value = new DataValue(SaxSport.GetStatusTriState(status)); } break; //----------------------------------------------------------- } return value; } //------------------------------------------------------------------- } //======================================================================= }