Exemple #1
0
        public void ProcessRequest(HttpContext context)
        {
            System.Threading.Thread.Sleep(3000);

            string
                GenerateStatusCode,
                StatusCodeStr,
                WriteToResponse;

            int
                StatusCode;

            if (!string.IsNullOrEmpty(GenerateStatusCode = context.Request.Form["GenerateStatusCode"]) &&
                GenerateStatusCode.Trim().ToLower() == "true" &&
                !string.IsNullOrEmpty(StatusCodeStr = context.Request.Form["StatusCode"]) &&
                int.TryParse(StatusCodeStr, out StatusCode))
            {
                context.Response.StatusCode = StatusCode;

                if (!string.IsNullOrEmpty(WriteToResponse = context.Request.Form["WriteToResponse"]) &&
                    WriteToResponse.Trim().ToLower() == "true")
                {
                    context.Response.Write("blah-blah-blah");
                }

                context.Response.End();

                return;
            }

            context.Response.CacheControl = "no-cache";
            context.Response.Expires      = -1;
            context.Response.ContentType  = "application/json";

            JsonObject
                tmpJsonObject = new JsonObject(new Dictionary <string, object> {
                { "success", true }
            });

            string
                type;

            if (!string.IsNullOrEmpty(type = context.Request.Form["type"]) &&
                type.Trim().ToLower() == "load")
            {
                tmpJsonObject.Accumulate("data", new JsonObject(new Dictionary <string, object> {
                    { "TextField", "TextField" }
                }));
            }

            JsonTextWriter
                tmpJsonTextWriter = new JsonTextWriter(context.Response.Output);

            tmpJsonObject.Export(tmpJsonTextWriter);
            tmpJsonTextWriter.Flush();
            tmpJsonTextWriter.Close();
        }
        public void ProcessRequest(HttpContext context)
        {
            System.Threading.Thread.Sleep(3000);

            string
                GenerateStatusCode,
                StatusCodeStr,
                WriteToResponse;

            int
                StatusCode;

            if (!string.IsNullOrEmpty(GenerateStatusCode = context.Request.Form["GenerateStatusCode"]) &&
                GenerateStatusCode.Trim().ToLower() == "true" &&
                !string.IsNullOrEmpty(StatusCodeStr = context.Request.Form["StatusCode"]) &&
                int.TryParse(StatusCodeStr, out StatusCode))
            {
                context.Response.StatusCode = StatusCode;

                if (!string.IsNullOrEmpty(WriteToResponse = context.Request.Form["WriteToResponse"]) &&
                    WriteToResponse.Trim().ToLower() == "true")
                {
                    context.Response.Write("blah-blah-blah");
                }

                context.Response.End();

                return;
            }

            string
                startStr = context.Request.Form["start"],
                limitStr = context.Request.Form["limit"];

            int
                start = 0,
                limit = int.MaxValue;

            if (!int.TryParse(startStr, out start))
            {
                start = 0;
            }
            if (!int.TryParse(limitStr, out limit))
            {
                limit = int.MaxValue;
            }

            context.Response.CacheControl = "no-cache";
            context.Response.Expires      = -1;
            context.Response.ContentType  = "application/json";

            JsonObject
                RootJsonObject = null;

            JsonTextWriter
                tmpJsonTextWriter = new JsonTextWriter(context.Response.Output);

            string
                xaction = context.Request.Form["xaction"];

            switch (xaction)
            {
            case "read":
            {
                RootJsonObject = DataTableToJson(GetData(context), start, limit);

                break;
            }

            case "update":
            {
                DataTable
                    tmpDataTable = GetData(context);

                object
                    tmpObject = JsonConvert.Import(context.Request.Form["rows"]);

                if (tmpObject is JsonArray)
                {
                    JsonArray
                        tmpJsonArray = (JsonArray)tmpObject;

                    for (int i = 0; i < tmpJsonArray.Count; ++i)
                    {
                        UpdateRow((JsonObject)tmpJsonArray[i], IdPropertyName, tmpDataTable);
                    }
                }
                else if (tmpObject is JsonObject)
                {
                    UpdateRow((JsonObject)tmpObject, IdPropertyName, tmpDataTable);
                }

                RootJsonObject = new JsonObject();
                RootJsonObject.Accumulate("success", true);
                RootJsonObject.Accumulate("message", "200OK");
                RootJsonObject.Accumulate("msg", "200OK");

                break;
            }

            default:
            {
                throw new Exception("Unknown \"xaction\"=\"" + xaction + "\"");
            }
            }

            RootJsonObject.Export(tmpJsonTextWriter);
            tmpJsonTextWriter.Flush();
            tmpJsonTextWriter.Close();
        }