using Sarand.BusinessMgr.Net.Standard.Base.App; using Sarand.BusinessMgr.Net.Standard.Base.Bus; 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 System; using System.Collections.Generic; namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr { //======================================================================= // Asset manager - Vehicle Features. //======================================================================= partial class SbmAssetMgr { //------------------------------------------------------------------- // Utilities. public abstract bool StoreVehicleFeature(SbmVehicleFeature.Data vehicleFeatureData, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // Retrieve individual vehiclesFeatures. //------------------------------------------------------------------- // VehicleFeature exists. public bool VehicleFeatureExistsById(SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return false; SbmVehicleFeature.Params prm = new SbmVehicleFeature.Params(); prm.IdsIncluded.Add(id); prm.StatusCat = SbmVehicleFeature.StatusCat.Any; return GetVehicleFeatureCount(prm) == 1; } public abstract bool VehicleFeatureExistsByVF_Id(SbmVehicleFeature.SbmVehicleFeature_Id id); public abstract bool VehicleFeaturesExist(SbmVehicleFeature.Params prm); // Get vehicleFeature. public abstract SbmVehicleFeature GetVehicleFeature(SbmVehicleFeature.Params prm); public SbmVehicleFeature GetVehicleFeatureById(SbmVehicleFeature.SbmVehicleFeature_Id vehicleFeatureId) { ClearErrorState(); if (vehicleFeatureId == null) return null; SbmVehicleFeature.Params prm = new SbmVehicleFeature.Params(); prm.VehicleId = vehicleFeatureId.VehicleId; prm.VehicleFeatureSource = vehicleFeatureId.VehicleFeatureSource; prm.VehicleFeatureType = vehicleFeatureId.VehicleFeatureType; prm.CategoryCode = vehicleFeatureId.CategoryCode; prm.FeatureCode = vehicleFeatureId.FeatureCode; prm.StatusCat = SbmVehicleFeature.StatusCat.Any; return GetVehicleFeature(prm); } // Create vehicleFeature. public abstract SbmVehicleFeature CreateVehicleFeature(SbmVehicleFeature.SbmVehicleFeature_Id vehicleFeature_Id); //------------------------------------------------------------------- // Validate vehicleFeature data. public bool IsValidVehicleFeature(SbmVehicleFeature vehicleFeature) { ClearErrorState(); if (vehicleFeature == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidVehicleFeatureData(vehicleFeature.GetData(), new SbmVehicleFeature.ErrField()); } public virtual bool IsValidVehicleFeatureData(SbmVehicleFeature.Data data, SbmVehicleFeature.ErrField errField) { ClearErrorState(); // VehicleFeature properties. if (errField.CategoryCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CategoryCode, "CategoryCode", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_CategoryCode), true)) { errField.CategoryCode = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.CategoryDesc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CategoryDesc, "CategoryDesc", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_CategoryDesc), true)) { errField.CategoryDesc = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.FeatureCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FeatureCode, "FeatureCode", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_FeatureCode), true)) { errField.FeatureCode = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.FeatureDesc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FeatureDesc, "FeatureDesc", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_FeatureDesc), true)) { errField.FeatureDesc = SacsHierarchyItem.ValidValue.Invalid; return false; } // Common properties. if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_Notes))) { errField.Notes = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.Status != SacsHierarchyItem.ValidValue.Ignore) { if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_Status), true, true)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } if (!SbmVehicleFeature.ValidStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); } } return true; } //------------------------------------------------------------------- // VehicleFeature database interface. public abstract bool InsertVehicleFeature(SbmVehicleFeature vehicleFeature, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateVehicleFeature(SbmVehicleFeature vehicleFeature, DbUpdateInfo dbUpdateInfo); public virtual bool VehicleFeatureCanBeDeleted(SbmVehicleFeature vehicleFeature) { ClearErrorState(); return true; } public abstract bool DeleteVehicleFeature(SbmVehicleFeature vehicleFeature, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // VehicleFeature list. public abstract ColumnDfn GetVehicleFeatureColumnDfn(SbmVehicleFeature.Column columnId, String caption = "", int width = 0); public abstract List GetVehicleFeatureQueryFilter(SbmVehicleFeature.Params prm); public abstract long GetVehicleFeatureCount(SbmVehicleFeature.Params prm); public abstract List GetVehicleFeatureList(SbmVehicleFeature.Params prm); public abstract DbResultSet VehicleFeatureExecuteQuery(List columns, SbmVehicleFeature.Params prm); //------------------------------------------------------------------- // D a t a V a l u e s //------------------------------------------------------------------- /// /// 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 DataValue GetVehicleFeatureDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SbmVehicleFeature.Column)column.Id) { //----------------------------------------------------------- // Notes. case SbmVehicleFeature.Column.Notes: value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); break; // Status. case SbmVehicleFeature.Column.Status_Desc: case SbmVehicleFeature.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SbmVehicleFeature.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode)); else if (column.Id == (int)SbmVehicleFeature.Column.Status_Ind) value = new DataValue(SbmVehicleFeature.GetStatusTriState(status)); } break; //----------------------------------------------------------- default: value = values.GetValue(column.DataName); break; } return value; } } //======================================================================= }