コード例 #1
0
        /// <summary>
        /// URL编码
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static Hashtable UrlEscape(this object obj)
        {
            if (obj == null)
            {
                throw new ArgumentNullException("obj");
            }

            Hashtable param     = JSON.ConvertToType <Hashtable>(obj);
            Hashtable param_new = new Hashtable();

            foreach (string key in param.Keys)
            {
                if (string.IsNullOrWhiteSpace(key))
                {
                    continue;
                }

                if (null == param[key] || string.IsNullOrWhiteSpace(param[key].ToString()))
                {
                    param_new[key] = param[key];
                }
                else
                {
                    param_new[key] = Uri.EscapeDataString(param[key].ToString());
                }
            }

            return(param_new);
        }
コード例 #2
0
        public static Hashtable ToHashtable(this object obj)
        {
            if (obj == null)
            {
                throw new ArgumentNullException("obj");
            }

            return(JSON.ConvertToType <Hashtable>(obj));
        }
コード例 #3
0
        public static string ToSortedQueryString(this object obj, bool needEncode = true)
        {
            var builder         = new StringBuilder();
            var parameters_temp = default(IDictionary <string, string>);

            #region 转换为IDictionary<string, string>

            if (obj is IDictionary <string, string> )
            {
                parameters_temp = obj as IDictionary <string, string>;
            }

            if (obj is IDictionary)
            {
                var parameters = obj as IDictionary;
                parameters_temp = new SortedDictionary <string, string>();
                foreach (DictionaryEntry item in parameters)
                {
                    parameters_temp.Add(item.Key.ValueOrEmpty(), item.Value.ValueOrEmpty());
                }
            }
            else
            {
                parameters_temp = JSON.ConvertToType <SortedDictionary <string, string> >(obj);
            }

            #endregion 转换为IDictionary<string, string>

            #region 拼接QueryString

            var enumerator = parameters_temp.GetEnumerator();
            while (enumerator.MoveNext())
            {
                string key = enumerator.Current.Key;
                string val = enumerator.Current.Value;

                if (key.IsNullOrWhiteSpace())
                {
                    continue;
                }

                if (needEncode)
                {
                    builder.Append("&").Append(key).Append("=").Append(Uri.EscapeDataString(val));
                }
                else
                {
                    builder.Append("&").Append(key).Append("=").Append(val);
                }
            }

            #endregion 拼接QueryString

            return(builder.ToString().TrimStart('&'));
        }
コード例 #4
0
            /// <summary>
            /// 取缓存 为null返回default(T)
            /// </summary>
            /// <typeparam name="T">对象类型</typeparam>
            /// <param name="key">缓存键</param>
            /// <returns></returns>
            public static T Get <T>(string key, bool isFullKey = false, int db_num = -1)
                where T : class, new()
            {
                if (key.IsNullOrWhiteSpace())
                {
                    throw new ArgumentException("key不能为空");
                }

                var hash = Get(key, isFullKey, db_num);

                if (null == hash)
                {
                    return(default(T));
                }

                var obj = default(T);

                try
                {
                    if (!hash["_type"].IsNullOrWhiteSpace() && !hash["_data"].IsNullOrWhiteSpace())
                    {
                        obj = JSON.Deserialize <T>(hash["_data"].ToString());
                    }
                    else
                    {
                        obj = JSON.ConvertToType <T>(hash);
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.RuntimeLog(new {
                        ReqId      = string.Empty,
                        flag_type  = 4,
                        target     = string.Format("/{0}/{1}", System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.FullName, new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name),
                        LogContent = $"【异常】:【{JSON.Serialize(ex)}】"
                    });
                }

                return(obj);
            }
コード例 #5
0
ファイル: SettingController.cs プロジェクト: 17/YunPos
        public ActionResult SaveSystem(string obj)
        {
            BaseResult  br    = new BaseResult();
            Hashtable   param = JSON.Deserialize <Hashtable>(obj);
            ParamVessel p     = new ParamVessel();

            p.Add("OrderSettingList", null, HandleType.ReturnMsg);//设置列表
            param = param.Trim(p);
            try {
                var id_user_master = GetLoginInfo <long>("id_user_master");
                var id_user        = GetLoginInfo <long>("id_user");
                var list           = JSON.ConvertToType <List <Ts_Param_Business> >(param["OrderSettingList"]);
                if (list == null || list.Count < 1)
                {
                    br.Success = false;
                    br.Level   = ErrorLevel.Warning;
                    br.Message.Add("设置参数不能为空.");
                }
                else
                {
                    foreach (var m in list)
                    {
                        m.id_user_master = id_user_master;
                        m.id_create      = id_user;
                    }
                    br = BusinessFactory.Setting.Save(list);
                }
            }
            catch (CySoftException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(Json(br));
        }
コード例 #6
0
ファイル: ServiceSaleOutController.cs プロジェクト: 17/YunPos
        public ActionResult Out(string obj)
        {
            BaseResult br = new BaseResult();

            try
            {
                Hashtable   param = JSON.Deserialize <Hashtable>(obj);
                ParamVessel p     = new ParamVessel();
                p.Add("head", null, HandleType.ReturnMsg);
                p.Add("body", null, HandleType.ReturnMsg);
                p.Add("ShoppingInfo", null, HandleType.Remove);
                param = param.Trim(p);
                Td_Sale_Out_Head head = JSON.ConvertToType <Td_Sale_Out_Head>(param["head"]);
                head.id_gys = GetLoginInfo <long>("id_supplier");//int.Parse(param["id_supplier"].ToString());
                List <Td_Sale_Out_Body> body         = JSON.ConvertToType <List <Td_Sale_Out_Body> >(param["body"]);
                ShoppingInfo            shoppinginfo = JSON.ConvertToType <ShoppingInfo>(param["ShoppingInfo"]);
                Ts_Sale_Order_Log       ts           = new Ts_Sale_Order_Log();//日志

                //单号 赋值
                if (head.id_cgs <= 0)
                {
                    br.Success = false;
                    br.Message.Add("未知采购商,请刷新后再试!");
                    br.Level = ErrorLevel.Warning;
                    return(Json(br));
                }
                if (head.dh_order.IsEmpty())
                {
                    br.Success = false;
                    br.Message.Add("订单号丢失,请刷新后再试!");
                    br.Level = ErrorLevel.Warning;
                    return(Json(br));
                }
                if (head.id_gys <= 0)
                {
                    br.Success = false;
                    br.Message.Add("未知供应商,请刷新后再试!");
                    br.Level = ErrorLevel.Warning;
                    return(Json(br));
                }
                if (body.Count < 1)
                {
                    br.Success = false;
                    br.Message.Add("<h5>参数错误</h5>");
                    br.Message.Add("没有可保存的商品!");
                    br.Level = ErrorLevel.Warning;
                    return(Json(br));
                }
                int xh = 1;
                foreach (var item in body)
                {
                    if (item != null)
                    {
                        if (item.id_sku < 1)
                        {
                            br.Success = false;
                            br.Message.Add("<h5>参数错误</h5>");
                            br.Message.Add(String.Format("[代码:303],第{0}行数据中商品id有误!", xh));
                            br.Level = ErrorLevel.Warning;
                            return(Json(br));
                        }
                        if (item.sl <= 0m)
                        {
                            br.Success = false;
                            br.Message.Add("<h5>参数错误</h5>");
                            br.Message.Add(String.Format("[代码:303],第{0}行数据中商品数量有误!", xh));
                            br.Level = ErrorLevel.Warning;
                            return(Json(br));
                        }
                        //if (item.zhl <= 0m)
                        //{
                        //    br.Success = false;
                        //    br.Message.Add("<h5>参数错误</h5>");
                        //    br.Message.Add(String.Format("[代码:303],第{0}行数据中包装数有误!", xh));
                        //    br.Level = ErrorLevel.Warning;
                        //    return Json(br);
                        //}
                        xh++;
                    }
                }
                br = BusinessFactory.Utilety.GetNextDH(head, typeof(Td_Sale_Out_Head));

                if (!br.Success)
                {
                    return(Json(br));
                }
                ts.id             = BusinessFactory.Utilety.GetNextKey(typeof(Ts_Sale_Order_Log));
                ts.id_user        = GetLoginInfo <long>("id_user");
                ts.id_user_master = GetLoginInfo <long>("id_user_master");
                ts.flag_type      = 4;
                head.id_create    = GetLoginInfo <long>("id_user");
                head.id_edit      = GetLoginInfo <long>("id_user");
                head.flag_state   = CySoft.Model.Flags.OrderFlag.WaitDelivery;
                param.Clear();
                param.Add("head", head);
                param.Add("body", body);
                param.Add("Ts", ts);
                param.Add("id_user_master", GetLoginInfo <long>("id_user_master"));
                param.Add("ShoppingInfo", shoppinginfo);
                br = BusinessFactory.ShippingRecord.Add(param);

                return(Json(br));
            }
            catch (CySoftException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }