Exemple #1
0
        public ActionResult Submit(WeixinCardModel model)
        {
            //model.total_info.base_info.color = "Color010";
            model.card_type = CardTypeEnum.GROUPON;

            string         requestmodelstr = JsonConvert.SerializeObject(model);
            HttpWebRequest httpRequest     = (HttpWebRequest)WebRequest.Create("https://api.weixin.qq.com/card/create?access_token=ACCESS_TOKEN");

            httpRequest.Method        = "POST";
            httpRequest.ContentType   = "application/x-www-form-urlencoded";
            httpRequest.ContentLength = requestmodelstr.Length;

            var streamWriter = new StreamWriter(httpRequest.GetRequestStream());

            streamWriter.Write(requestmodelstr);
            streamWriter.Close();

            var response = httpRequest.GetResponse();

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Exemple #2
0
 public ActionResult Save(WeixinCardModel model)
 {
     return(View(model));
 }
Exemple #3
0
        public static string GetJsonStr(WeixinCardModel model)
        {
            // model.total_info.base_info.date_info.type = 0;
            model.total_info.base_info.sku = new SKUQuantity()
            {
                quantity = 0
            };
            model.total_info.base_info.use_custom_code               = true;
            model.total_info.base_info.bind_openid                   = false;
            model.total_info.base_info.center_app_brand_user_name    = "gh_513038890d99@app";
            model.total_info.base_info.custom_app_brand_user_name    = "gh_513038890d99@app";
            model.total_info.base_info.promotion_app_brand_user_name = "gh_513038890d99@app";
            // model.total_info.base_info.center_url = "https://wx.tuhu.cn/";
            // model.total_info.base_info.custom_url = "https://wx.tuhu.cn/";
            // model.total_info.base_info.promotion_url = "https://wx.tuhu.cn/";
            model.total_info.base_info.get_custom_code_mode = "GET_CUSTOM_CODE_MODE_DEPOSIT";


            model.total_info.base_info.color = AccessTokenModel.GetOutColors(model.total_info.base_info.colorid).Where(q => q.Value == model.total_info.base_info.colorid.Value.ToString()).First().Text;
            // model.total_info.base_info.logo_url = "http://mmbiz.qpic.cn/mmbiz/iaL1LJM1mF9aRKPZJkmG8xXhiaHqkKSVMMWeN3hLut7X7hicFNjakmxibMLGWpXrEXB33367o7zHN0CwngnQY7zb7g/0";
            WeixinCardInfo weixincard = new WeixinCardInfo()
            {
                card = model
            };
            var advancedInfo = model.total_info.advanced_info;
            var abstractInfo = advancedInfo.abstractinfo;

            model.total_info.advanced_info.abstractinfo.icon_url_list = new List <string>();
            model.total_info.advanced_info.text_image_list            = new List <ImageText>();
            List <string> iconlist = new List <string> {
                abstractInfo.icon1, abstractInfo.icon2, abstractInfo.icon3, abstractInfo.icon4, abstractInfo.icon5
            };

            iconlist = iconlist.Where(q => !string.IsNullOrWhiteSpace(q)).ToList();

            model.total_info.advanced_info.abstractinfo.icon_url_list.AddRange(iconlist);
            List <ImageText> imageTextList = new List <ImageText> {
                new ImageText()
                {
                    image_url = abstractInfo.imageText1.image_url,
                    text      = abstractInfo.imageText1.text
                },
                new ImageText()
                {
                    image_url = abstractInfo.imageText2.image_url,
                    text      = abstractInfo.imageText2.text
                },
                new ImageText()
                {
                    image_url = abstractInfo.imageText3.image_url,
                    text      = abstractInfo.imageText3.text
                },
                new ImageText()
                {
                    image_url = abstractInfo.imageText4.image_url,
                    text      = abstractInfo.imageText4.text
                },
                new ImageText()
                {
                    image_url = abstractInfo.imageText5.image_url,
                    text      = abstractInfo.imageText5.text
                }
            };

            imageTextList = imageTextList.Where(q => (!string.IsNullOrWhiteSpace(q.image_url) && !string.IsNullOrWhiteSpace(q.text))).ToList();

            model.total_info.advanced_info.text_image_list.AddRange(imageTextList);

            string requestmodelstr = JsonConvert.SerializeObject(weixincard, Newtonsoft.Json.Formatting.None,
                                                                 new JsonSerializerSettings
            {
                //DefaultValueHandling = DefaultValueHandling.Ignore,
                NullValueHandling = NullValueHandling.Ignore
            });
            var jsonrequststr = requestmodelstr.Replace("total_info", model.card_type.ToString().ToLower());

            return(jsonrequststr);
        }
Exemple #4
0
        public ActionResult CreateCard(WeixinCardModel model, string command)
        {
            string resultstr = string.Empty;

            try
            {
                if (Request.QueryString["supplierId"] != null)
                {
                    List <SupplierInfo> supplierInfoList = WeiXinCardManager.GetSupplierInfo(Convert.ToInt32(Request.QueryString["supplierId"]));
                    if (supplierInfoList != null && supplierInfoList.FirstOrDefault() != null)
                    {
                        var supplier = supplierInfoList.First();
                        model.total_info.base_info.brand_name = supplier.brand_name;
                        model.total_info.base_info.logo_url   = supplier.logo_url;
                        model.total_info.base_info.supplierId = supplier.pkid;
                    }
                }



                TimeSpan startts = model.total_info.base_info.date_info.begin_time - new DateTime(1970, 1, 1);
                TimeSpan endts   = model.total_info.base_info.date_info.end_time - new DateTime(1970, 1, 1);
                model.total_info.base_info.date_info.begin_timestamp = Convert.ToUInt64(startts.TotalSeconds);


                model.total_info.base_info.date_info.end_timestamp = Convert.ToUInt64(endts.TotalSeconds);



                if (command.Equals("Save/Update"))
                {
                    int    result          = 0;
                    string requestmodelstr = JsonConvert.SerializeObject(model, Newtonsoft.Json.Formatting.None,
                                                                         new JsonSerializerSettings
                    {
                        //DefaultValueHandling = DefaultValueHandling.Ignore,
                        NullValueHandling = NullValueHandling.Ignore
                    });
                    var log = requestmodelstr.Replace("{", "").Replace("}", "");
                    WebLog.LogInfo(log);
                    if (string.IsNullOrWhiteSpace(model.card_id))
                    {
                        result = WeiXinCardManager.SaveWeiXinCard(model);
                    }
                    else
                    {
                        result = WeiXinCardManager.UpdateWeiXinCard(model);
                    }
                    if (result > 0)
                    {
                        resultstr = "操作成功";
                    }
                }
                else if (command.Equals("Submit"))
                {
                    string jsonrequststr = GetJsonStr(model);
                    var    loginfo       = jsonrequststr.Replace("{", "").Replace("}", "");
                    WebLog.LogInfo(loginfo);
                    AccessTokenModel tokenobj = GetAccess_tokenAsCache();
                    string           token    = string.Empty;
                    if (tokenobj != null && !string.IsNullOrWhiteSpace(tokenobj.Access_token))
                    {
                        token = tokenobj.Access_token;
                    }


                    var     result        = GetWeixinCardResponse("https://api.weixin.qq.com/card/create", token, jsonrequststr);
                    JObject weixincardobj = JsonConvert.DeserializeObject(result) as JObject;
                    if (weixincardobj != null && weixincardobj["errcode"] != null)
                    //&&Convert.ToInt32(weixincardobj["errcode"])==0 && weixincardobj["card_id"] != null)
                    {
                        if (Convert.ToInt32(weixincardobj["errcode"]) == 0 && weixincardobj["card_id"] != null)
                        {
                            model.card_id = weixincardobj["card_id"].ToString();
                            WeiXinCardManager.SaveWeiXinCard(model);
                            resultstr = "提交成功";
                        }
                        else if (weixincardobj["errmsg"] != null)
                        {
                            resultstr = "提交失败,失败原因:" + weixincardobj["errmsg"].ToString();
                        }
                    }
                }
                else if (command.Equals("Switch to CardList"))
                {
                    return(RedirectToAction("CardList"));
                }
            }
            catch (Exception ex)
            {
                resultstr = ex.Message;
            }
            return(Json(resultstr, JsonRequestBehavior.AllowGet));
        }
Exemple #5
0
        public ActionResult CreateCard(int pkId = 0, int supplierId = 1)
        {
            WeixinCardModel cardmodelInfo = new WeixinCardModel();


            WeixinCardTotalModel totalModel = new WeixinCardTotalModel();

            if (pkId == 0)
            {
                SupplierInfo        supplier         = new SupplierInfo();
                TimeSpan            ts               = DateTime.Now - new DateTime(1970, 1, 1);
                TimeSpan            ts1              = DateTime.Now.AddDays(30) - new DateTime(1970, 1, 1);
                List <SupplierInfo> supplierInfoList = WeiXinCardManager.GetSupplierInfo(supplierId);
                if (supplierInfoList != null && supplierInfoList.FirstOrDefault() != null)
                {
                    supplier = supplierInfoList.First();
                }
                totalModel = new WeixinCardTotalModel()
                {
                    base_info = new WeixinCardBaseInfo()
                    {
                        logo_url   = supplier.logo_url,
                        brand_name = supplier.brand_name,



                        colorid = 2,

                        date_info = new DateInfo()
                        {
                            begin_time      = DateTime.Now,
                            end_time        = DateTime.Now.AddDays(10),
                            begin_timestamp = (UInt64)ts.Seconds,
                            end_timestamp   = (UInt64)ts.Seconds,
                            // (DateTime.Now.AddDays(30) - new DateTime(1970, 1, 1)
                            type = "DATE_TYPE_FIX_TERM"
                                   // end_timestamp =Convert.ToUInt32(ts.TotalSeconds),
                        },
                        sku = new SKUQuantity()
                        {
                            quantity = 0
                        },
                        //   center_title = "途虎养车网",
                        //  center_url = "https://www.tuhu.cn",
                        service_phone = "4001118868"
                    },
                    advanced_info = new WeixinCardAdvancedInfo()
                    {
                        abstractinfo  = new AbstractInfo(),
                        use_condition = new ConditionalUse()
                    }
                };
                cardmodelInfo.total_info = totalModel;
            }
            else
            {
                WeixinCardModel model = null;
                var             list  = WeiXinCardManager.GetWeixinCardModelList(pkId);
                if (list != null && list.FirstOrDefault() != null)
                {
                    model = list.First();
                }

                cardmodelInfo = model;
            }

            return(View(cardmodelInfo));
        }
Exemple #6
0
        public static int SaveWeiXinCard(WeixinCardModel model)
        {
            using (var dbhelper = new SqlDbHelper(ConnectionHelper.GetDecryptConn("ThirdParty")))
            {
                var cmd = new SqlCommand(@"INSERT INTO [dbo].[WeiXinCard]([supplierId]
           ,[card_id]
           ,[card_type]           
           ,[deal_detail]
           ,[least_cost]
           ,[reduce_cost]
           ,[discount]
           ,[gift]
           ,[default_detail]
           ,[color]
           ,[title]
           ,[notice]
           ,[description]
           ,[quantity]
           ,[type]
           ,[begin_time]
           ,[end_time]
           ,[begin_timestamp]
           ,[end_timestamp]
           ,[fixed_term]
           ,[fixed_begin_term]
           ,[center_title]
           ,[center_sub_title]
           ,[center_url]
           ,[custom_url_name]
           ,[custom_url_sub_title]
           ,[custom_url]
           ,[promotion_url_name]
           ,[promotion_url_sub_title]
           ,[promotion_url]
           ,[service_phone]
           ,[get_limit]
           ,[use_limit]
           ,[can_share]
           ,[can_give_friend]
           ,[use_all_locations]
           ,[location_id_list]
           ,[source]
           ,[use_custom_code]
           ,[get_custom_code_mode]
           ,[bind_openid]       
           ,[LastUpdateDate],
            [accept_category],
reject_category,
object_use_for,
use_condition_least_cost,
can_use_with_other_discount,
abstract,
icon_url_list,
text_image_list)
           VALUES(@supplierId,@card_id,@card_type,@deal_detail,@least_cost,@reduce_cost,@discount,@gift,@default_detail,@color,@title,@notice,@description,@quantity,@type,@begin_time,@end_time,@begin_timestamp,@end_timestamp,@fixed_term,
            @fixed_begin_term,@center_title,@center_sub_title,@center_url,@custom_url_name,@custom_url_sub_title,@custom_url,@promotion_url_name,
            @promotion_url_sub_title,@promotion_url,@service_phone,@get_limit,@use_limit,@can_share,@can_give_friend,@use_all_locations,@location_id_list,@source,@use_custom_code,@get_custom_code_mode,@bind_openid,@LastUpdateDate,@accept_category,@reject_category,@object_use_for,@use_condition_least_cost,@can_use_with_other_discount,@abstract,@icon_url_list,@text_image_list) ");
                cmd.CommandType = CommandType.Text;
                WeixinCardBaseInfo     weixinCardbaseinfo     = model.total_info.base_info;
                WeixinCardAdvancedInfo weixinCardadvancedinfo = model.total_info.advanced_info;
                cmd.Parameters.AddWithValue("@supplierId", weixinCardbaseinfo.supplierId);
                cmd.Parameters.AddWithValue("@card_id", model.card_id);
                cmd.Parameters.AddWithValue("@card_type", model.card_type);
                cmd.Parameters.AddWithValue("@deal_detail", model.total_info.deal_detail);
                cmd.Parameters.AddWithValue("@least_cost", model.total_info.least_cost);
                cmd.Parameters.AddWithValue("@reduce_cost", model.total_info.reduce_cost);
                cmd.Parameters.AddWithValue("@discount", model.total_info.discount);
                cmd.Parameters.AddWithValue("@gift", model.total_info.gift);

                //@default_detail,@color,@title,@notice,@description,@quantity,@type,@begin_timestamp,@end_timestamp,@fixed_term,
                cmd.Parameters.AddWithValue("@default_detail", model.total_info.default_detail);
                cmd.Parameters.AddWithValue("@color", weixinCardbaseinfo.color);
                cmd.Parameters.AddWithValue("@title", weixinCardbaseinfo.title);
                cmd.Parameters.AddWithValue("@notice", weixinCardbaseinfo.notice);
                cmd.Parameters.AddWithValue("@description", weixinCardbaseinfo.description);
                cmd.Parameters.AddWithValue("@quantity", 0);
                cmd.Parameters.AddWithValue("@type", weixinCardbaseinfo.date_info.type);
                cmd.Parameters.AddWithValue("@begin_time", weixinCardbaseinfo.date_info.begin_time);
                cmd.Parameters.AddWithValue("@end_time", weixinCardbaseinfo.date_info.end_time);
                cmd.Parameters.AddWithValue("@begin_timestamp", (int)weixinCardbaseinfo.date_info.begin_timestamp);
                cmd.Parameters.AddWithValue("@end_timestamp", (int)weixinCardbaseinfo.date_info.end_timestamp);
                cmd.Parameters.AddWithValue("@fixed_term", weixinCardbaseinfo.date_info.fixed_term);
                //@fixed_begin_term,@center_title,@center_sub_title,@center_url,@custom_url_name,@custom_url_sub_title,@custom_url,@promotion_url_name,
                //@promotion_url_sub_title,@promotion_url,@service_phone,@get_limit
                cmd.Parameters.AddWithValue("@fixed_begin_term", weixinCardbaseinfo.date_info.fixed_begin_term);
                cmd.Parameters.AddWithValue("@center_title", weixinCardbaseinfo.center_title);
                cmd.Parameters.AddWithValue("@center_sub_title", weixinCardbaseinfo.center_sub_title);
                cmd.Parameters.AddWithValue("@center_url", weixinCardbaseinfo.center_url);
                cmd.Parameters.AddWithValue("@custom_url_name", weixinCardbaseinfo.custom_url_name);
                cmd.Parameters.AddWithValue("@custom_url_sub_title", weixinCardbaseinfo.custom_url_sub_title);
                cmd.Parameters.AddWithValue("@custom_url", weixinCardbaseinfo.custom_url);


                cmd.Parameters.AddWithValue("@promotion_url_name", weixinCardbaseinfo.promotion_url_name);
                cmd.Parameters.AddWithValue("@promotion_url_sub_title", weixinCardbaseinfo.promotion_url_sub_title);
                cmd.Parameters.AddWithValue("@promotion_url", weixinCardbaseinfo.promotion_url);
                cmd.Parameters.AddWithValue("@service_phone", weixinCardbaseinfo.service_phone);

                //@use_limit,@can_share,@can_give_friend,@use_all_locations,@location_id_list,@source,@use_custom_code,@get_custom_code_mode,@bind_openid,@LastUpdateDate
                cmd.Parameters.AddWithValue("@get_limit", weixinCardbaseinfo.get_limit);
                cmd.Parameters.AddWithValue("@use_limit", weixinCardbaseinfo.use_limit);
                cmd.Parameters.AddWithValue("@can_share", weixinCardbaseinfo.can_share);
                cmd.Parameters.AddWithValue("@can_give_friend", weixinCardbaseinfo.can_give_friend);
                cmd.Parameters.AddWithValue("@use_all_locations", weixinCardbaseinfo.use_all_locations);
                cmd.Parameters.AddWithValue("@location_id_list", weixinCardbaseinfo.location_id_list);
                cmd.Parameters.AddWithValue("@source", weixinCardbaseinfo.source);


                cmd.Parameters.AddWithValue("@use_custom_code", weixinCardbaseinfo.use_custom_code);
                cmd.Parameters.AddWithValue("@get_custom_code_mode", weixinCardbaseinfo.get_custom_code_mode);
                cmd.Parameters.AddWithValue("@bind_openid", weixinCardbaseinfo.bind_openid);
                cmd.Parameters.AddWithValue("@LastUpdateDate", DateTime.Now);
                //cmd.Parameters.AddWithValue("@use_all_locations", weixinCardbaseinfo.use_all_locations);
                //cmd.Parameters.AddWithValue("@location_id_list", weixinCardbaseinfo.location_id_list);
                //cmd.Parameters.AddWithValue("@source", weixinCardbaseinfo.source);

                cmd.Parameters.AddWithValue("@accept_category", weixinCardadvancedinfo.use_condition.accept_category);
                cmd.Parameters.AddWithValue("@reject_category", weixinCardadvancedinfo.use_condition.reject_category);
                cmd.Parameters.AddWithValue("@object_use_for", weixinCardadvancedinfo.use_condition.object_use_for);
                cmd.Parameters.AddWithValue("@use_condition_least_cost", weixinCardadvancedinfo.use_condition.least_cost);
                cmd.Parameters.AddWithValue("@can_use_with_other_discount", weixinCardadvancedinfo.use_condition.can_use_with_other_discount);
                cmd.Parameters.AddWithValue("@abstract", weixinCardadvancedinfo.abstractinfo.abstractstr);
                cmd.Parameters.AddWithValue("@icon_url_list", weixinCardadvancedinfo.abstractinfo.icon_url_list?.Count() > 0?string.Join(";", weixinCardadvancedinfo.abstractinfo.icon_url_list):string.Empty);
                cmd.Parameters.AddWithValue("@text_image_list", weixinCardadvancedinfo.text_image_list?.Count() > 0?JsonConvert.SerializeObject(weixinCardadvancedinfo.text_image_list):string.Empty);
                return(Convert.ToInt32(dbhelper.ExecuteNonQuery(cmd)));
            }
        }
 public static int UpdateWeiXinCard(WeixinCardModel model)
 {
     return(DALWeiXinCard.UpdateWeiXinCard(model));
 }
 public static int SaveWeiXinCard(WeixinCardModel model)
 {
     return(DALWeiXinCard.SaveWeiXinCard(model));
 }
        public static List <WeixinCardModel> GetWeixinCardModelList(int pkid = -1)
        {
            List <WeixinCardModel> list = new List <WeixinCardModel>();
            var dt = DALWeiXinCard.GetWeiXinCardList(pkid);

            try
            {
                if (dt != null && dt.Rows != null && dt.Rows.Count > 0)
                {
                    foreach (DataRow row in dt.Rows)
                    {
                        var dateinfo = new DateInfo()
                        {
                            begin_time       = Convert.IsDBNull(row["begin_time"]) ? new DateTime(1970, 1, 1) : Convert.ToDateTime(row["begin_time"]),
                            end_time         = Convert.IsDBNull(row["end_time"]) ? new DateTime(1970, 1, 1) : Convert.ToDateTime(row["end_time"]),
                            begin_timestamp  = Convert.IsDBNull(row["begin_timestamp"]) ? null : (ulong?)Convert.ToUInt64(row["begin_timestamp"]),
                            end_timestamp    = Convert.IsDBNull(row["end_timestamp"]) ? null : (ulong?)Convert.ToUInt64(row["end_timestamp"]),
                            fixed_begin_term = Convert.IsDBNull(row["fixed_begin_term"]) ? null : (Int32?)Convert.ToInt32(row["fixed_begin_term"]),
                            fixed_term       = Convert.IsDBNull(row["fixed_term"]) ? null : (Int32?)Convert.ToInt32(row["fixed_term"]),
                            // type=(TimeType)Enum.Parse(typeof(TimeType),row["type"].ToString())
                            type = Convert.IsDBNull(row["type"]) ? null : row["type"].ToString()
                        };
                        var skuobj = new SKUQuantity()
                        {
                            quantity = Convert.IsDBNull(row["quantity"]) ? null : (Int32?)Convert.ToInt32(row["quantity"])
                        };
                        var baseinfo = new WeixinCardBaseInfo()
                        {
                            title                   = Convert.IsDBNull(row["title"]) ? null : row["title"].ToString(),
                            colorid                 = Convert.IsDBNull(row["color"]) ? 1 : Colors.Where(q => q.ColorValue == row["color"].ToString()).FirstOrDefault() != null?Colors.Where(q => q.ColorValue == row["color"].ToString()).First().ColorIndex : 2,
                            notice                  = Convert.IsDBNull(row["notice"]) ? null                                                                                                                                                                 : row["notice"].ToString(),
                            description             = Convert.IsDBNull(row["description"]) ? null                                                                                                                                                            : row["description"].ToString(),
                            supplierId              = Convert.IsDBNull(row["supplierId"]) ? 1                                                                                                                                                                : (Int32?)Convert.ToInt32(row["supplierId"]),
                            center_title            = Convert.IsDBNull(row["center_title"]) ? null                                                                                                                                                           : row["center_title"].ToString(),
                            center_sub_title        = Convert.IsDBNull(row["center_sub_title"]) ? null                                                                                                                                                       : row["center_sub_title"].ToString(),
                            center_url              = Convert.IsDBNull(row["center_url"]) ? null                                                                                                                                                             : row["center_url"].ToString(),
                            custom_url              = Convert.IsDBNull(row["custom_url"]) ? null                                                                                                                                                             : row["custom_url"].ToString(),
                            custom_url_name         = Convert.IsDBNull(row["custom_url_name"]) ? null                                                                                                                                                        : row["custom_url_name"].ToString(),
                            custom_url_sub_title    = Convert.IsDBNull(row["custom_url_sub_title"]) ? null                                                                                                                                                   : row["custom_url_sub_title"].ToString(),
                            promotion_url           = Convert.IsDBNull(row["promotion_url"]) ? null                                                                                                                                                          : row["promotion_url"].ToString(),
                            promotion_url_name      = Convert.IsDBNull(row["promotion_url_name"]) ? null                                                                                                                                                     : row["promotion_url_name"].ToString(),
                            promotion_url_sub_title = Convert.IsDBNull(row["promotion_url_sub_title"]) ? null                                                                                                                                                : row["promotion_url_sub_title"].ToString(),
                            service_phone           = Convert.IsDBNull(row["service_phone"]) ? null                                                                                                                                                          : row["service_phone"].ToString(),
                            get_limit               = Convert.IsDBNull(row["get_limit"]) ? null                                                                                                                                                              : (Int32?)Convert.ToInt32(row["get_limit"]),
                            use_limit               = Convert.IsDBNull(row["use_limit"]) ? null                                                                                                                                                              : (Int32?)Convert.ToInt32(row["use_limit"]),
                            can_share               = Convert.IsDBNull(row["can_share"]) ? false                                                                                                                                                             : Convert.ToBoolean(row["can_share"]),
                            can_give_friend         = Convert.IsDBNull(row["can_give_friend"]) ? false                                                                                                                                                       : Convert.ToBoolean(row["can_give_friend"]),
                            use_all_locations       = Convert.IsDBNull(row["use_all_locations"]) ? false                                                                                                                                                     : Convert.ToBoolean(row["use_all_locations"]),
                            // location_id_list= row["location_id_list"].ToString(),
                            source               = Convert.IsDBNull(row["source"]) ? null               : row["source"].ToString(),
                            use_custom_code      = Convert.IsDBNull(row["use_custom_code"]) ? false     : Convert.ToBoolean(row["use_custom_code"]),
                            get_custom_code_mode = Convert.IsDBNull(row["get_custom_code_mode"]) ? null : row["get_custom_code_mode"].ToString(),
                            bind_openid          = Convert.IsDBNull(row["bind_openid"]) ? false         : Convert.ToBoolean(row["bind_openid"]),
                            sku       = skuobj,
                            date_info = dateinfo
                        };
                        var usecondition = new ConditionalUse()
                        {
                            accept_category             = Convert.IsDBNull(row["accept_category"]) ? null : row["accept_category"].ToString(),
                            reject_category             = Convert.IsDBNull(row["reject_category"]) ? null : row["accept_category"].ToString(),
                            least_cost                  = Convert.IsDBNull(row["use_condition_least_cost"]) ? null : (Int32?)Convert.ToInt32(row["use_condition_least_cost"]),
                            object_use_for              = Convert.IsDBNull(row["object_use_for"]) ? null : row["object_use_for"].ToString(),
                            can_use_with_other_discount = Convert.IsDBNull(row["can_use_with_other_discount"]) ? false : Convert.ToBoolean(row["can_use_with_other_discount"])
                        };
                        var              icon_url_list = Convert.IsDBNull(row["icon_url_list"]) ? string.Empty : row["icon_url_list"].ToString();
                        List <string>    icons         = icon_url_list.Split(new char[] { ';' }).Where(q => q != null).ToList();
                        var              imagetextstr  = Convert.IsDBNull(row["text_image_list"]) ? string.Empty : row["text_image_list"].ToString();
                        List <ImageText> imageTextList = JsonConvert.DeserializeObject <List <ImageText> >(imagetextstr);


                        var abstractinfo = new AbstractInfo();

                        abstractinfo.abstractstr = Convert.IsDBNull(row["abstract"]) ? null : row["abstract"].ToString();
                        if (icons != null && icons.Any())
                        {
                            icons = icons.Where(q => !string.IsNullOrWhiteSpace(q)).ToList();
                            if (icons.Count() == 5)
                            {
                                abstractinfo.icon1 = icons[0];
                                abstractinfo.icon2 = icons[1];
                                abstractinfo.icon3 = icons[2];
                                abstractinfo.icon4 = icons[3];
                                abstractinfo.icon5 = icons[4];
                            }
                            else if (icons.Count() == 4)
                            {
                                abstractinfo.icon1 = icons[0];
                                abstractinfo.icon2 = icons[1];
                                abstractinfo.icon3 = icons[2];
                                abstractinfo.icon4 = icons[3];
                            }
                            else if (icons.Count() == 3)
                            {
                                abstractinfo.icon1 = icons[0];
                                abstractinfo.icon2 = icons[1];
                                abstractinfo.icon3 = icons[2];
                            }
                            else if (icons.Count() == 2)
                            {
                                abstractinfo.icon1 = icons[0];
                                abstractinfo.icon2 = icons[1];
                            }
                            else if (icons.Count() == 1)
                            {
                                abstractinfo.icon1 = icons[0];
                            }
                        }
                        if (imageTextList != null && imageTextList.Any())
                        {
                            imageTextList = imageTextList.Where(q => q != null).ToList();
                            if (imageTextList.Count() == 5)
                            {
                                abstractinfo.imageText1 = imageTextList[0];
                                abstractinfo.imageText2 = imageTextList[1];
                                abstractinfo.imageText3 = imageTextList[2];
                                abstractinfo.imageText4 = imageTextList[3];
                                abstractinfo.imageText5 = imageTextList[4];
                            }
                            else if (imageTextList.Count() == 4)
                            {
                                abstractinfo.imageText1 = imageTextList[0];
                                abstractinfo.imageText2 = imageTextList[1];
                                abstractinfo.imageText3 = imageTextList[2];
                                abstractinfo.imageText4 = imageTextList[3];
                            }
                            else if (imageTextList.Count() == 3)
                            {
                                abstractinfo.imageText1 = imageTextList[0];
                                abstractinfo.imageText2 = imageTextList[1];
                                abstractinfo.imageText3 = imageTextList[2];
                            }
                            else if (imageTextList.Count() == 2)
                            {
                                abstractinfo.imageText1 = imageTextList[0];
                                abstractinfo.imageText2 = imageTextList[1];
                            }
                            else if (imageTextList.Count() == 1)
                            {
                                abstractinfo.imageText1 = imageTextList[0];
                            }
                        }


                        var advancedinfo = new WeixinCardAdvancedInfo()
                        {
                            abstractinfo  = abstractinfo,
                            use_condition = usecondition
                        };
                        var totalinfo = new WeixinCardTotalModel()
                        {
                            deal_detail    = Convert.IsDBNull(row["deal_detail"]) ? null : row["deal_detail"].ToString(),
                            least_cost     = Convert.IsDBNull(row["least_cost"]) ? null : (Int32?)Convert.ToInt32(row["least_cost"]),
                            reduce_cost    = Convert.IsDBNull(row["reduce_cost"]) ? null : (Int32?)Convert.ToInt32(row["reduce_cost"]),
                            discount       = Convert.IsDBNull(row["discount"]) ? null : (Int32?)Convert.ToInt32(row["discount"]),
                            gift           = Convert.IsDBNull(row["gift"]) ? null : row["gift"].ToString(),
                            default_detail = Convert.IsDBNull(row["default_detail"]) ? null : row["default_detail"].ToString(),
                            base_info      = baseinfo,
                            advanced_info  = advancedinfo
                        };
                        var model = new WeixinCardModel()
                        {
                            total_info  = totalinfo,
                            card_id     = Convert.IsDBNull(row["card_id"]) ? null : row["card_id"].ToString(),
                            PKID        = Convert.IsDBNull(row["PKID"]) ? null : (Int32?)Convert.ToInt32(row["PKID"]),
                            PushedCount = Convert.IsDBNull(row["PushedCount"]) ? null : (Int32?)Convert.ToInt32(row["PushedCount"]),
                            card_type   = (CardTypeEnum)Enum.Parse(typeof(CardTypeEnum), row["card_type"].ToString())
                        };
                        list.Add(model);
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(list);
        }