Exemplo n.º 1
0
        void mapModelToDTO()
        {
            var entity = new AmListingDataDto();

            Mapper.Initialize(p => p.CreateMap <AmListingDataDto, T_Am_ListingData>()
                              .BeforeMap((sourceType, destinationType)
                                         =>
            {
                sourceType.add_delete = destinationType.add_delete;
                sourceType.asin1      = destinationType.asin1;
            }));
            T_Am_ListingData entityDTO = Mapper.Map <AmListingDataDto, T_Am_ListingData>(entity);

            SqlCommand command = new SqlCommand();
            //command.Parameters.Add
            ITransactionCustom tran = new SqlTransactionCustom();

            tran.BeginTransaction();
            CommandStaticHelper.ExecuteNonQuery(tran, new List <ICommandCustom>()
            {
            });
            tran.Commit();

            EntityToCommandStaticHelper.queryList <AmListingDataDto>(new SqlCommandCustom());
        }
Exemplo n.º 2
0
        public void SaveListingsDataReport(string filename)
        {
            Log = LogManager.GetLogger("AmazonApIHelperLog");
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            List <T_Am_ListingData> lds = new List <T_Am_ListingData>();
            int accountId = int.Parse(filename.Substring(filename.LastIndexOf("\\") + 1, 2));

            using (StreamReader sr = new StreamReader(filename, Encoding.UTF8))
            {
                String line = "";
                int    i    = 0;

                DataTable dt = new DataTable();

                while ((line = sr.ReadLine()) != null)
                {
                    i++;
                    Regex    regex = new Regex("\t");//以cjlovefl分割
                    string[] bit   = regex.Split(line);

                    try
                    {
                        if (i == 1)
                        {
                            for (int j = 0; j < bit.Length; j++)
                            {
                                DataColumn dc = new DataColumn();
                                dc.ColumnName = bit[j].ToString();
                                dt.Columns.Add(dc);
                            }
                            continue;//跳过第一行
                        }

                        DataRow dr = dt.NewRow();
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            dr[j] = bit[j].ToString();
                        }
                        dt.Rows.Add(dr);
                    }
                    catch (Exception ex)
                    {
                        Log.ErrorFormat("加载{0}条记录:{1}记录发生错误", i, ex);
                    }
                }
                Stopwatch stopwatch1 = new Stopwatch();
                stopwatch1.Start();
                DataTable      tableColumns = DbHelper.GetTableColumnsByName(sqlConnectionString, "T_Am_ListingData");
                PropertyInfo[] properties   = DbHelper.GetPropertyInfos <T_Am_ListingData>();
                //循环dt
                if (dt.Rows.Count > 0)
                {
                    T_Am_ListingData ld;
                    for (int n = 0; n < dt.Rows.Count; n++)
                    {
                        DataRow bit = dt.Rows[n];
                        ld           = new T_Am_ListingData();
                        ld.item_name = dt.Columns.Contains("item-name") ? bit["item-name"].ToString() : "";
                        //ld.item_name = dt.Columns.Contains("item-name") ? bit["item-name"].ToString() : "";
                        ld.item_description           = dt.Columns.Contains("item-description") ? bit["item-description"].ToString() : "";
                        ld.listing_id                 = dt.Columns.Contains("listing-id") ? bit["listing-id"].ToString() : "";
                        ld.seller_sku                 = dt.Columns.Contains("seller-sku") ? bit["seller-sku"].ToString() : "";
                        ld.price                      = dt.Columns.Contains("price") ? bit["price"].ToString() : "";
                        ld.quantity                   = dt.Columns.Contains("quantity") ? bit["quantity"].ToString() : "";
                        ld.open_date                  = dt.Columns.Contains("open-date") ? bit["open-date"].ToString() : "";
                        ld.image_url                  = dt.Columns.Contains("image-url") ? bit["image-url"].ToString() : "";
                        ld.item_is_marketplace        = dt.Columns.Contains("item-is-marketplace") ? bit["item-is-marketplace"].ToString() : "";
                        ld.product_id_type            = dt.Columns.Contains("product-id-type") ? bit["product-id-type"].ToString() : "";
                        ld.zshop_shipping_fee         = dt.Columns.Contains("zshop-shipping-fee") ? bit["zshop-shipping-fee"].ToString() : "";
                        ld.item_note                  = dt.Columns.Contains("item-note") ? bit["item-note"].ToString() : "";
                        ld.item_condition             = dt.Columns.Contains("item-condition") ? bit["item-condition"].ToString() : "";
                        ld.zshop_category1            = dt.Columns.Contains("zshop-category1") ? bit["zshop-category1"].ToString() : "";
                        ld.zshop_browse_path          = dt.Columns.Contains("zshop-browse-path") ? bit["zshop-browse-path"].ToString() : "";
                        ld.zshop_storefront_feature   = dt.Columns.Contains("zshop-storefront-feature") ? bit["zshop-storefront-feature"].ToString() : "";
                        ld.asin1                      = dt.Columns.Contains("asin1") ? bit["asin1"].ToString() : "";
                        ld.asin2                      = dt.Columns.Contains("asin2") ? bit["asin2"].ToString() : "";
                        ld.asin3                      = dt.Columns.Contains("asin3") ? bit["asin3"].ToString() : "";
                        ld.will_ship_internationally  = dt.Columns.Contains("will-ship-internationally") ? bit["will-ship-internationally"].ToString() : "";
                        ld.expedited_shipping         = dt.Columns.Contains("expedited-shipping") ? bit["expedited-shipping"].ToString() : "";
                        ld.zshop_boldface             = dt.Columns.Contains("zshop-boldface") ? bit["zshop-boldface"].ToString() : "";
                        ld.product_id                 = dt.Columns.Contains("product-id") ? bit["product-id"].ToString() : "";
                        ld.bid_for_featured_placement = dt.Columns.Contains("bid-for-featured-placement") ? bit["bid-for-featured-placement"].ToString() : "";
                        ld.add_delete                 = dt.Columns.Contains("add-delete") ? bit["add-delete"].ToString() : "";
                        ld.pending_quantity           = dt.Columns.Contains("pending-quantity") ? bit["pending-quantity"].ToString() : "";
                        ld.fulfillment_channel        = dt.Columns.Contains("fulfillment-channel") ? bit["fulfillment-channel"].ToString() : "";


                        if (ld.seller_sku.ToUpper().Contains("MISSING") || string.IsNullOrEmpty(ld.seller_sku))
                        {
                            continue;
                        }
                        ld.pid            = accountId;// Convert.ToInt32(15);
                        ld.UpdateDateTime = System.DateTime.Now;
                        ld.IsDel          = false;
                        List <string> errorList;
                        if (DbHelper.valudateEntity(ld, tableColumns, properties, out errorList))
                        {
                            lds.Add(ld);
                        }
                        else
                        {
                            Log.InfoFormat("更新产品失败,pid = {0},listing_id={1},product_id={2}");
                        }
                    }
                    stopwatch1.Stop();
                    Log.Info("验证花费时间:" + (Int32)stopwatch1.ElapsedMilliseconds / 1000 + "秒!");
                    Log.Info("开始保存数据-------------------------");
                    SaveListingsData(lds);
                    Log.Info("保存数据完成-------------------------");
                }
            }
            stopwatch.Stop();
            Log.Info("同步一次产品花费时间:" + (Int32)stopwatch.ElapsedMilliseconds / 1000 + "秒!");
        }