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 Sarand.Net.Standard.Base.Utils; using System; using System.Collections.Generic; namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr { //======================================================================= // Asset manager - Vehicle Events. //======================================================================= partial class SbmAssetMgr { //------------------------------------------------------------------- // Utilities. //------------------------------------------------------------------- // Retrieve individual vehiclesEvents. //------------------------------------------------------------------- // VehicleEvent exists. public bool VehicleEventExistsById(SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return false; SbmVehicleEvent.Params prm = new SbmVehicleEvent.Params(); prm.IdsIncluded.Add(id); prm.StatusCat = SbmVehicleEvent.StatusCat.Any; return GetVehicleEventCount(prm) == 1; } public bool VehicleEventExistsByVehicleTypeDate(SysId vehicleId, Sbm.VehicleEventType vehicleEventType, DateTime eventOn) { ClearErrorState(); if (!SysId.IsValid(vehicleId) || (int)vehicleEventType < 1 || DateUtil.IsValid(eventOn)) return false; SbmVehicleEvent.Params prm = new SbmVehicleEvent.Params(); prm.IdsIncluded.Add(vehicleId); prm.VehicleEventType = vehicleEventType; prm.EventOn = eventOn; prm.StatusCat = SbmVehicleEvent.StatusCat.Any; return GetVehicleEventCount(prm) == 1; } //------------------------------------------------------------------- // Get vehicleEvent. public abstract SbmVehicleEvent GetVehicleEvent(SbmVehicleEvent.Params prm); public SbmVehicleEvent GetVehicleEventById(SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return null; SbmVehicleEvent.Params prm = new SbmVehicleEvent.Params(); prm.IdsIncluded.Add(id); prm.StatusCat = SbmVehicleEvent.StatusCat.Any; return GetVehicleEvent(prm); } public SbmVehicleEvent GetVehicleEventByVehicleTypeDate(SysId vehicleId, Sbm.VehicleEventType vehicleEventType, DateTime eventOn) { if (!SysId.IsValid(vehicleId) || (int)vehicleEventType < 1 || !DateUtil.IsValid(eventOn)) return null; SbmVehicleEvent.Params prm = new SbmVehicleEvent.Params(); prm.IdsIncluded.Add(vehicleId); prm.VehicleEventType = vehicleEventType; prm.EventOn = eventOn; prm.StatusCat = SbmVehicleEvent.StatusCat.Any; return GetVehicleEvent(prm); } //------------------------------------------------------------------- // Create vehicleEvent. public abstract SbmVehicleEvent CreateVehicleEvent(SysId vehicleId, Sbm.VehicleEventType vehicleEventType); //------------------------------------------------------------------- // Validate vehicleEvent data. public bool IsValidVehicleEvent(SbmVehicleEvent vehicleEvent) { ClearErrorState(); if (vehicleEvent == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidVehicleEventData(vehicleEvent.GetData(), new SbmVehicleEvent.ErrField()); } public virtual bool IsValidVehicleEventData(SbmVehicleEvent.Data data, SbmVehicleEvent.ErrField errField) { ClearErrorState(); // VehicleEvent properties.return SetErrorState("Aff Id Owner must be supplied"); if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "DescBrief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_DescBrief), true)) { errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "DescDetail", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_DescDetail), true)) { errField.DescDetail = SacsHierarchyItem.ValidValue.Invalid; return false; } // Common properties. if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_Notes))) { errField.Notes = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.Status != SacsHierarchyItem.ValidValue.Ignore) { if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_Status), true, true)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } if (!SbmVehicleEvent.ValidStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); } } return true; } //------------------------------------------------------------------- // VehicleEvent database interface. public abstract bool InsertVehicleEvent(SbmVehicleEvent vehicleEvent, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateVehicleEvent(SbmVehicleEvent vehicleEvent, DbUpdateInfo dbUpdateInfo); public virtual bool VehicleEventCanBeDeleted(SbmVehicleEvent vehicleEvent) { ClearErrorState(); return true; } public abstract bool DeleteVehicleEvent(SbmVehicleEvent vehicleEvent, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // VehicleEvent list. public abstract ColumnDfn GetVehicleEventColumnDfn(SbmVehicleEvent.Column columnId, String caption = "", int width = 0); public abstract List GetVehicleEventQueryFilter(SbmVehicleEvent.Params prm); public abstract long GetVehicleEventCount(SbmVehicleEvent.Params prm); public abstract List GetVehicleEventList(SbmVehicleEvent.Params prm); public abstract DbResultSet VehicleEventExecuteQuery(List columns, SbmVehicleEvent.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 GetVehicleEventDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SbmVehicleEvent.Column)column.Id) { //----------------------------------------------------------- // Notes. case SbmVehicleEvent.Column.Notes: value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); break; // Status. case SbmVehicleEvent.Column.Status_Desc: case SbmVehicleEvent.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SbmVehicleEvent.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode)); else if (column.Id == (int)SbmVehicleEvent.Column.Status_Ind) value = new DataValue(SbmVehicleEvent.GetStatusTriState(status)); } break; //----------------------------------------------------------- default: value = values.GetValue(column.DataName); break; } return value; } } //======================================================================= }