예제 #1
0
        public Error CreateErrorFor(SerializableError serializableError)
        {
            var error = new Error
            {
                Code    = "BadRequest",
                Message = "One or more error occured during model validation.",
                Details = serializableError
                          .Select(v => CreateErrorFor(v)).ToList()
            };

            return(error);
        }
        /// <summary>
        /// Converts the <paramref name="serializableError"/> to an <see cref="ODataError"/>.
        /// </summary>
        /// <param name="serializableError">The <see cref="SerializableError"/> instance to convert.</param>
        /// <returns>The converted <see cref="ODataError"/></returns>
        public static ODataError CreateODataError(this SerializableError serializableError)
        {
            if (serializableError == null)
            {
                throw Error.ArgumentNull("serializableError");
            }

            string message = serializableError.GetPropertyValue <string>(SerializableErrorKeys.MessageKey);
            string details = ConvertModelStateErrors(serializableError);

            return(new ODataError
            {
                Message = string.IsNullOrEmpty(message) ? details : message,
                ErrorCode = serializableError.GetPropertyValue <string>(SerializableErrorKeys.ErrorCodeKey),
                InnerError = ToODataInnerError(serializableError),
                Details = serializableError
                          .Select(kvp => new ODataErrorDetail()
                {
                    Message = kvp.Key + ":" + kvp.Value,
                })
                          .AsCollection(),
            });
        }