Example #1
0
        protected virtual ActionResult CreateConcurrencyConflictErrorResult <TEntity, TModel>(ConcurrencyError <TEntity> concurrencyError)
        {
            var model   = _mapper.Map <TEntity, TModel>(concurrencyError.ConflictingObject);
            var message = new ConcurrencyErrorModel <TModel>()
            {
                Message       = concurrencyError.Message,
                CurrentObject = model
            };

            return(new ConflictObjectResult(message));
        }
Example #2
0
        protected virtual ActionResult CreateObjectExistsConflictErrorResult <TEntity, TModel>(ObjectAlreadyExistsError <TEntity> objectExistsError)
        {
            var model   = _mapper.Map <TEntity, TModel>(objectExistsError.ExistingObject);
            var message = new ConcurrencyErrorModel <TModel>()
            {
                Message       = objectExistsError.Message,
                CurrentObject = model
            };

            return(new ConflictObjectResult(message));
        }
Example #3
0
        /// <summary>
        /// Helper Method to create a ConflictObjectResult object for when a concurrency exception occurs
        /// </summary>
        /// <remarks>
        /// This method will take in a ConcurrencyException of type T and translate it into a
        /// ConflictObjectResult object with the CurrentObject property being a ViewModel representation
        /// of the current (conflicting) object.  This way the client can see the conflicting object
        /// such that they can make any needed changes and resubmit.
        /// </remarks>
        /// <typeparam name="TModel"></typeparam>
        /// <typeparam name="TObject"></typeparam>
        /// <param name="concurrencyException"></param>
        /// <returns></returns>
        protected virtual IActionResult CreateConcurrencyConflictErrorResult <TModel, TObject>(ConcurrencyException <TObject> concurrencyException)
        {
            var conflictingObject = concurrencyException.TypedObject;
            var model             = _mapper.Map <TObject, TModel>(conflictingObject);
            var message           = new ConcurrencyErrorModel <TModel>()
            {
                Message       = concurrencyException.Message,
                CurrentObject = model
            };

            return(new ConflictObjectResult(message));
        }