예제 #1
0
        public async Task <IHttpActionResult> Process(int eventId, HttpRequestMessage requestMessage)
        {
            JsonResult <T> jsonResult;

            try
            {
                await AuditService.LogUserEvent(eventId);

                var result = await ProcessEvent(eventId);

                if (result is FileActionResult)
                {
                    return(result as FileActionResult);
                }

                jsonResult = new JsonResult <T>(result, JSON_SETTINGS, Encoding.UTF8, requestMessage);
                //Logger.Debug("Result from processing " + eventId + " is:");
                //Logger.Debug(new JavaScriptSerializer().Serialize(jsonResult.Content));
                return(jsonResult);
            }
            catch (Exception error)
            {
                SystemLogger.LogError("Error in core processor during Process", this.GetType(), error);

                return(new BadRequestErrorMessageResult(SystemLogger.GetMessageStack(error), new DefaultContentNegotiator(), requestMessage, new List <MediaTypeFormatter>()
                {
                    new JsonMediaTypeFormatter()
                }));
            }
        }