/// <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);
            }
        }
Beispiel #5
0
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        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);
            }
        }