示例#1
0
        public async Task HandleRequest(IOwinContext context, string rootpath, string relativePath)
        {
            var api      = relativePath.ToLower();
            var formdata = await FormData.FromRequest(context.Request);

            if (formdata == null)
            {
                context.Response.StatusCode  = 500;
                context.Response.ContentType = "text/plain";
                MyJson.JsonNode_Object json = new MyJson.JsonNode_Object();
                json["msg"] = new MyJson.JsonNode_ValueString("formdata format error.");
                json["tag"] = new MyJson.JsonNode_ValueNumber(-1);
                await context.Response.WriteAsync(json.ToString());

                return;
            }

            if (relativePath == "parse")
            {
                await parse(context, formdata);

                return;
            }

            else
            {
                await help(context, formdata);

                return;
            }
        }
示例#2
0
        public async Task HandleRequest(IOwinContext context, string rootpath, string relativePath)
        {
            var api      = relativePath.ToLower();
            var formdata = await FormData.FromRequest(context.Request);

            if (formdata == null)
            {
                context.Response.StatusCode  = 500;
                context.Response.ContentType = "text/plain";
                MyJson.JsonNode_Object json = new MyJson.JsonNode_Object();
                json["msg"] = new MyJson.JsonNode_ValueString("formdata format error.");
                json["tag"] = new MyJson.JsonNode_ValueNumber(-1);
                await context.Response.WriteAsync(json.ToString());

                return;
            }

            if (relativePath == "ver")
            {
                await ver(context, formdata);

                return;
            }
            else if (relativePath == "filemap_list")
            {
                await filemap_list(context, formdata);

                return;
            }
            else if (relativePath == "filemap_add")
            {
                await filemap_add(context, formdata);

                return;
            }
            else if (relativePath == "filemap_remove")
            {
                await filemap_remove(context, formdata);

                return;
            }
            else if (relativePath == "file_list")
            {
                await file_list(context, formdata);

                return;
            }
            else if (relativePath == "file_save")
            {
                await file_save(context, formdata);

                return;
            }
            else if (relativePath == "file_remove")
            {
                await file_remove(context, formdata);

                return;
            }
            else if (relativePath == "file_cmd")
            {
                await file_cmd(context, formdata);

                return;
            }
            else
            {
                MyJson.JsonNode_Object jsonr = new MyJson.JsonNode_Object();
                jsonr["tag"] = new MyJson.JsonNode_ValueNumber(-1000);
                jsonr["msg"] = new MyJson.JsonNode_ValueString("unknown cmd.");
                await context.Response.WriteAsync(jsonr.ToString());
            }
            return;
        }
示例#3
0
        public void HandleRequest(IOwinContext context, string rootpath, string relativePath)
        {
            var api      = relativePath.ToLower();
            var formdata = FormData.FromRequest(context.Request);

            if (formdata == null)
            {
                context.Response.StatusCode  = 500;
                context.Response.ContentType = "text/plain";
                MyJson.JsonNode_Object json = new MyJson.JsonNode_Object();
                json["msg"] = new MyJson.JsonNode_ValueString("formdata format error.");
                json["tag"] = new MyJson.JsonNode_ValueNumber(-1);
                context.Response.Write(json.ToString());
                return;
            }
            if (linking && relativePath != "comfirmpassword")
            {
                MyJson.JsonNode_Object json = new MyJson.JsonNode_Object();
                json["tag"] = new MyJson.JsonNode_ValueNumber(-1);
                json["msg"] = new MyJson.JsonNode_ValueString("server is busy");
                context.Response.Write(json.ToString());
                return;
            }
            if (relativePath == "ver")
            {
                ver(context, formdata);
                return;
            }
            else if (relativePath == "state")
            {//查询状态
                var signer = NeoDun.Signer.Ins;
                MyJson.JsonNode_Object jsonr = new MyJson.JsonNode_Object();
                jsonr["tag"] = new MyJson.JsonNode_ValueNumber(0);
                string dc = signer.CheckDevice();
                jsonr["count"] = new MyJson.JsonNode_ValueString(dc);

                if (!string.IsNullOrEmpty(dc))
                {
                    jsonr["type"] = new MyJson.JsonNode_ValueString(signer.CheckDeviceTag());
                }
                else
                {
                    jsonr["type"] = new MyJson.JsonNode_ValueString("_null_");
                }
                context.Response.Write(jsonr.ToString());
            }
            else if (relativePath == "listaddress")
            {
                var signer = NeoDun.Signer.Ins;
                MyJson.JsonNode_Object jsonr = new MyJson.JsonNode_Object();
                jsonr["tag"] = new MyJson.JsonNode_ValueNumber(0);
                MyJson.JsonNode_Array adds = new MyJson.JsonNode_Array();
                jsonr["addresses"] = adds;
                string dc = signer.CheckDevice();
                if (!string.IsNullOrEmpty(dc))
                {
                    foreach (var add in signer.addressPool.addresses)
                    {
                        MyJson.JsonNode_Object item = new MyJson.JsonNode_Object();
                        adds.Add(item);
                        item["type"]    = new MyJson.JsonNode_ValueString(add.type.ToString());
                        item["address"] = new MyJson.JsonNode_ValueString(add.AddressText);
                    }
                }
                context.Response.Write(jsonr.ToString());
            }
            else if (relativePath == "sign")
            {
                linking = true;
                sign(context, formdata);
                return;
            }
            else if (relativePath == "addaddress")
            {
                linking = true;
                addAddress(context, formdata);
            }
            else if (relativePath == "deladdress")
            {
                linking = true;
                delAddress(context, formdata);
                return;
            }
            else
            {
                MyJson.JsonNode_Object jsonr = new MyJson.JsonNode_Object();
                jsonr["tag"] = new MyJson.JsonNode_ValueNumber(-1000);
                jsonr["msg"] = new MyJson.JsonNode_ValueString("unknown cmd.");
            }

            return;
        }
示例#4
0
        public async void HandleRequest(IOwinContext context, string rootpath, string relativePath)
        {
            try
            {
                var api      = relativePath.ToLower();
                var formdata = FormData.FromRequest(context.Request);
                if (formdata == null)
                {
                    context.Response.StatusCode  = 500;
                    context.Response.ContentType = "text/plain";
                    MyJson.JsonNode_Object json = new MyJson.JsonNode_Object();
                    json["msg"] = new MyJson.JsonNode_ValueString("formdata format error.");
                    json["tag"] = new MyJson.JsonNode_ValueNumber(-1);
                    context.Response.Write(json.ToString());
                    return;
                }
                else if (relativePath == "state")
                {//查询状态
                    var signer = NeoDun.Signer.Ins;
                    MyJson.JsonNode_Object jsonr = new MyJson.JsonNode_Object();
                    jsonr["tag"] = new MyJson.JsonNode_ValueNumber(0);
                    string dc = signer.CheckDevice();
                    jsonr["count"] = new MyJson.JsonNode_ValueString(dc);

                    if (!string.IsNullOrEmpty(dc))
                    {
                        jsonr["type"] = new MyJson.JsonNode_ValueString(signer.CheckDeviceTag());
                    }
                    else
                    {
                        jsonr["type"] = new MyJson.JsonNode_ValueString("_null_");
                    }
                    context.Response.Write(jsonr.ToString());
                }
                else if (relativePath == "listaddress")
                {
                    var signer = NeoDun.Signer.Ins;
                    MyJson.JsonNode_Object jsonr = new MyJson.JsonNode_Object();
                    jsonr["tag"] = new MyJson.JsonNode_ValueNumber(0);
                    MyJson.JsonNode_Array adds = new MyJson.JsonNode_Array();
                    jsonr["addresses"] = adds;
                    string dc = signer.CheckDevice();
                    if (!string.IsNullOrEmpty(dc))
                    {
                        foreach (var add in signer.addressPool.addresses)
                        {
                            MyJson.JsonNode_Object item = new MyJson.JsonNode_Object();
                            adds.Add(item);
                            item["type"]    = new MyJson.JsonNode_ValueString(add.type.ToString());
                            item["address"] = new MyJson.JsonNode_ValueString(add.AddressText);
                            item["name"]    = new MyJson.JsonNode_ValueString(add.name);
                        }
                    }
                    context.Response.Write(jsonr.ToString());
                }
                else if (relativePath == "sign")
                {
                    if (doing)
                    {
                        return;
                    }
                    if (formdata.mapParams.ContainsKey("address") == false || formdata.mapParams.ContainsKey("data") == false)
                    {
                        context.Response.Write("need param,address & data");
                        return;
                    }
                    var address = formdata.mapParams["address"];
                    var data    = formdata.mapParams["data"];

                    MyJson.JsonNode_Object json = new MyJson.JsonNode_Object();

                    doing = true;

                    sign(json, address, data);

                    while (true)
                    {
                        if (json.Keys.Count > 0)
                        {
                            doing = false;
                            //读出来,拼为http响应,发回去
                            context.Response.Write(json.ToString());
                            break;
                        }
                    }
                }
                else
                {
                    MyJson.JsonNode_Object jsonr = new MyJson.JsonNode_Object();
                    jsonr["tag"] = new MyJson.JsonNode_ValueNumber(-1000);
                    jsonr["msg"] = new MyJson.JsonNode_ValueString("unknown cmd.");
                }
                return;
            }
            catch (Exception e)
            {
                context.Response.Write(e.ToString());
            }

            async void sign(MyJson.JsonNode_Object json, string address, string data)
            {
                driver_win.helper.Result _result = await ManagerControl.Ins.ToDo(driver_win.helper.EnumControl.SignData, data, address);

                var result    = (MyJson.JsonNode_Object)_result.data;
                var enumError = _result.errorCode;

                json["msg"] = new MyJson.JsonNode_ValueString(((UInt16)enumError).ToString("x4"));
                if (result != null)
                {
                    json["signdata"] = result.ContainsKey("signdata") ? result["signdata"] : new MyJson.JsonNode_ValueString("");
                    json["pubkey"]   = result.ContainsKey("pubkey") ? result["pubkey"] : new MyJson.JsonNode_ValueString("");
                }
            }
        }