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.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 SaxAccountMgr { //******************************************************************* // Account Mgr - User Sport Experience //******************************************************************* // Utilities. //------------------------------------------------------------------- // Create item. public abstract SaxUserSportExperience CreateUserSportExperience(SysId userUserId); //------------------------------------------------------------------- // Item exists. public bool UserSportExperienceExistsById(SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return false; SaxUserSportExperience.Params prmUserSportExperience = new SaxUserSportExperience.Params(); prmUserSportExperience.IdsIncluded.Add(id); prmUserSportExperience.StatusCat = SaxUserSportExperience.StatusCat.Any; return GetUserSportExperienceCount(prmUserSportExperience) == 1; } //------------------------------------------------------------------- // Retrieve individual items. public abstract SaxUserSportExperience GetUserSportExperience(SaxUserSportExperience.Params prmUserSportExperience); public SaxUserSportExperience GetUserSportExperienceById(SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return null; SaxUserSportExperience.Params prmUserSportExperience = new SaxUserSportExperience.Params(); prmUserSportExperience.IdsIncluded.Add(id); prmUserSportExperience.StatusCat = SaxUserSportExperience.StatusCat.Any; return GetUserSportExperience(prmUserSportExperience); } //------------------------------------------------------------------- // Validate item data. public bool IsValidUserSportExperience(SaxUserSportExperience userSportExperience) { ClearErrorState(); if (userSportExperience == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidUserSportExperienceData(userSportExperience.GetData(), new SaxUserSportExperience.ErrField()); } public virtual bool IsValidUserSportExperienceData(SaxUserSportExperience.Data data, SaxUserSportExperience.ErrField errField) { ClearErrorState(); //--------------------------------------------------------------- // User Sport. if (errField.UserSportId != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.UserSportId)) { errField.UserSportId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("User Sport Id must be specified"); } //--------------------------------------------------------------- // Organisation name. if (errField.OrganisationName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.OrganisationName, "organisation name", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserSportExperience_OrganisationName))) { errField.OrganisationName = SacsHierarchyItem.ValidValue.Invalid; return false; } // Summary. if (errField.Summary != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Summary, "summary", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Summary))) { errField.Summary = SacsHierarchyItem.ValidValue.Invalid; return false; } // Team. if (errField.Team != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Team, "team", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Team))) { errField.Team = SacsHierarchyItem.ValidValue.Invalid; return false; } // League. if (errField.League != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.League, "league", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserSportExperience_League))) { errField.League = SacsHierarchyItem.ValidValue.Invalid; return false; } // Speciality. if (errField.Speciality != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Speciality, "speciality", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Speciality))) { errField.Speciality = SacsHierarchyItem.ValidValue.Invalid; return false; } // Other specialities. if (errField.SpecialitiesOther != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.GetSpecialitiesOther().ToList().Concat(SaxUserSportExperience.SpecialitiesOtherDelim), "other specialities", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserSportExperience_SpecialitiesOther))) { errField.Speciality = SacsHierarchyItem.ValidValue.Invalid; return false; } // Awards. if (errField.Awards != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Awards, "Awards", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Awards))) { errField.Awards = SacsHierarchyItem.ValidValue.Invalid; return false; } //--------------------------------------------------------------- // Regions. if (errField.RegionIdNation != SacsHierarchyItem.ValidValue.Ignore) { } if (errField.RegionIdProvince != SacsHierarchyItem.ValidValue.Ignore) { } //--------------------------------------------------------------- // Common properties. if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserSportExperience_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.UserSportExperience_Status), true, true)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } if (!SaxUserSportExperience.ValidStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); } } //--------------------------------------------------------------- // Associated data - ignore for deleted items. if (!data.IsStatusDeleted) { // User Sport must be valid. if (errField.UserSportId != SacsHierarchyItem.ValidValue.Ignore && errField.UserSportId != SacsHierarchyItem.ValidValue.Invalid) { if (SysId.IsValid(data.UserSportId)) { if (!UserSportExistsById(data.UserSportId)) { errField.UserSportId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("User Sport does not exist"); } } } // Regions. if (errField.RegionIdNation != SacsHierarchyItem.ValidValue.Ignore && errField.RegionIdNation != SacsHierarchyItem.ValidValue.Invalid && SysId.IsValid(data.RegionIdNation)) { if (!ReferenceMgr.RegionExistsById(data.RegionIdNation)) { errField.RegionIdNation = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Invalid 'Nation' region"); } } if (errField.RegionIdProvince != SacsHierarchyItem.ValidValue.Ignore && errField.RegionIdProvince != SacsHierarchyItem.ValidValue.Invalid && SysId.IsValid(data.RegionIdProvince)) { if (!ReferenceMgr.RegionExistsById(data.RegionIdProvince)) { errField.RegionIdProvince = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Invalid 'Province' region"); } } } //--------------------------------------------------------------- //--------------------------------------------------------------- return true; } //------------------------------------------------------------------- // Item database interface. public abstract bool InsertUserSportExperience(SaxUserSportExperience userSportExperience, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateUserSportExperience(SaxUserSportExperience userSportExperience, DbUpdateInfo dbUpdateInfo); public virtual bool UserSportExperienceCanBeDeleted(SaxUserSportExperience userSportExperience) { ClearErrorState(); return true; } public abstract bool DeleteUserSportExperience(SaxUserSportExperience userSportExperience, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // Item list. public abstract ColumnDfn GetUserSportExperienceColumnDfn(SaxUserSportExperience.Column columnId, String caption = "", int width = 0); public abstract List GetUserSportExperienceQueryFilter(SaxUserSportExperience.Params prmUserSportExperience); public abstract long GetUserSportExperienceCount(SaxUserSportExperience.Params prmUserSportExperience); public abstract List GetUserSportExperienceList(SaxUserSportExperience.Params prmUserSportExperience); public abstract DbResultSet ExecuteUserSportExperienceQuery(List columns, SaxUserSportExperience.Params prmUserSportExperience); //------------------------------------------------------------------- /// /// 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 GetUserSportExperienceDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SaxUserSportExperience.Column)column.Id) { //----------------------------------------------------------- // Organisation name. case SaxUserSportExperience.Column.Organisation_Name: { String organisationName = values.GetString(column.DataName).TrimAll(); if (StringUtil.IsEmpty(organisationName)) organisationName = values.GetString(GetUserSportExperienceColumnDfn(SaxUserSportExperience.Column.OrganisationName).DataName).TrimAll(); value = new DataValue(organisationName); } break; //----------------------------------------------------------- // Notes. case SaxUserSportExperience.Column.Notes: { value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); } break; //----------------------------------------------------------- // Status. case SaxUserSportExperience.Column.Status_Desc: case SaxUserSportExperience.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SaxUserSportExperience.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDesc(status)); else if (column.Id == (int)SaxUserSportExperience.Column.Status_Ind) value = new DataValue(SaxUserSportExperience.GetStatusTriState(status)); } break; //----------------------------------------------------------- default: value = values.GetValue(column.DataName); break; } return value; } //------------------------------------------------------------------- } //======================================================================= }