public IHttpActionResult CreateDocument(DocumentRequest request)
        {
            try
            {
                _log.Info("begin CreateDocument");

                if (request == null)
                {
                    throw new ArgumentNullException("The request content was null or not in the correct format");
                }

                _warehouseManager.CreateDocument(Mapper.Map <DocumentItem>(request));

                return(Content <DocumentResponse>(HttpStatusCode.Created, new DocumentResponse()
                {
                    Code = HttpStatusCode.Created, Data = request
                }));
            }
            catch (ArgumentNullException argEx)
            {
                _log.Error(argEx);
                return(BadRequest(argEx.Message));
            }
            catch (Exception ex)
            {
                _log.Error(ex);
                return(Content <DocumentResponse>(HttpStatusCode.InternalServerError, new DocumentResponse()
                {
                    Code = HttpStatusCode.InternalServerError, Message = ex.Message
                }));
            }
        }