/// <summary> /// Checks reference object marked as deleted. /// </summary> /// <param name="obj">Object to check.</param> /// <returns>TRUE if object marked as deleted.</returns> private bool _IsDeleted(DataObject obj) { Debug.Assert(null != obj); IMarkableAsDeleted mark = obj as IMarkableAsDeleted; bool isDeleted = ((null != mark) && mark.IsMarkedAsDeleted); return(isDeleted); }
private static bool _IsMarkedAsDeleted(DataObject obj) { bool isMarked = false; IMarkableAsDeleted mark = obj as IMarkableAsDeleted; if (mark != null) { isMarked = mark.IsMarkedAsDeleted; } return(isMarked); }
public void RemoveObject(T dataObject) { IMarkableAsDeleted delMark = dataObject as IMarkableAsDeleted; if (delMark != null) { // mark object as deleted delMark.IsMarkedAsDeleted = true; // emulate Remove event _NotifyContextCollectionChanged(CollectionChangeAction.Remove, dataObject); } else { // delete object from context base.RemoveObject(dataObject); } }
/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// Does validation. /// </summary> /// <param name="objectToValidate">Object to validation /// (<see cref="T:ESRI.ArcLogistics.Data.DataObject"/>).</param> /// <param name="currentTarget">Current target (expected only /// <see cref="T:ESRI.ArcLogistics.DomainObjects.Route"/>).</param> /// <param name="key">Ignored.</param> /// <param name="validationResults">Validation results.</param> protected override void DoValidate(DataObject objectToValidate, object currentTarget, string key, ValidationResults validationResults) { // Check input parametrs. IMarkableAsDeleted mark = objectToValidate as IMarkableAsDeleted; Debug.Assert(currentTarget is Route); Debug.Assert(this.MessageTemplate != null); if (objectToValidate == null || mark != null) { return; } // If item is mark as deleted - log validation message. if (mark.IsMarkedAsDeleted) { string error = this.MessageTemplate; this.LogValidationResult(validationResults, error, currentTarget, key); } }
/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// protected override void DoValidate(IDataObjectCollection <Location> objectToValidate, object currentTarget, string key, ValidationResults validationResults) { if (null == objectToValidate) { return; } string format = this.MessageTemplate; string deletedFormat = Properties.Messages.Error_RenewalLocationsIsDeletedErrorFormat; StringBuilder sb = new StringBuilder(); foreach (Location location in objectToValidate) { IMarkableAsDeleted mark = location as IMarkableAsDeleted; System.Diagnostics.Debug.Assert(null != mark); if (mark.IsMarkedAsDeleted) // deleted is not valid state { sb.AppendLine(string.Format(deletedFormat, location.Name)); } else { // check location error string error = location.Error; if (!string.IsNullOrEmpty(error)) { sb.AppendLine(string.Format(format, location.Name)); } } } string message = sb.ToString().Trim(); if (!string.IsNullOrEmpty(message)) { this.LogValidationResult(validationResults, message, currentTarget, key); } }