public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext.ActionDescriptor.ControllerDescriptor.ControllerName.Equals("Users"))
            {
                var url = string.Format(@"http://localhost:51895/{0}/{1}", filterContext.ActionDescriptor.ControllerDescriptor.ControllerName, filterContext.ActionDescriptor.ActionName);
                var uri = new Uri(url, UriKind.Absolute);

                try
                {
                    var request = WebRequest.Create(uri);
                    request.Method = "POST";
                    var postParams = filterContext.ActionParameters["data"];

                    if (postParams != null)
                    {
                        var bFormatter = new BinaryFormatter();
                        var dataStream = request.GetRequestStream();
                        bFormatter.Serialize(dataStream, postParams);
                        //request.ContentType = "application/x-www-form-urlencoded";
                        //request.ContentLength = request.GetRequestStream().Length;
                        dataStream.Close();
                    }

                    var response = request.GetResponse();
                    var s = response.GetResponseStream();
                    var sr = new StreamReader(s, Encoding.ASCII);
                    var result = sr.ReadToEnd();
                    filterContext.Result = new JsonResult();
                    WriteResponse(result, filterContext);
                }
                catch (Exception e)
                {
                    var exception = e.GetBaseException();
                    var serviceError = new ServiceError
                    {
                        ResponseCode = "404",
                        Url = url,
                        Message = exception.Message
                    };

                    var result = new JsonResult();
                    result.Data = serviceError;
                    filterContext.Result = result;
                }
            }
            else
            {
                base.OnActionExecuting(filterContext);
            }
        }
Exemple #2
0
        public JsonResult JsonError(Exception exception, string requestId, string url)
        {
            var e = exception.GetBaseException();

            var result = new ServiceError
            {
                Message = e.Message,
                RequestId = requestId,
                ResponseCode = "500",
                Url = url
            };

            return base.Json(result);
        }