Exemple #1
0
        public bool UpdateItem(string newSku, int userId, string sku, int qty, int salesTerritory, bool isExistNew, Model.Product.ProductSkuEntity entity)
        {
            var sqlDel = @"DELETE FROM  [ShoppingCart] WHERE  UserId=@UserId AND Sku=@sku and (CountryId=@CountryId or CountryId=3)  ";

            var sqlUpdate = @" update [ShoppingCart]
                                SET Sku = @NewSku	,
                                [LastTime] = GETDATE()	,
                                [Quantity] = {0} @Quantity,
                                UnitPrice=@UnitPrice,
                                TaxRate=@TaxRate
                                WHERE  UserId=@UserId AND Sku=@Sku AND ( CountryId=@CountryId or CountryId=3 ) ";

            sqlUpdate = string.Format(sqlUpdate, isExistNew ? " Quantity +" : "");

            if (!isExistNew)
            {
                try
                {
                    var parametersUpdate = DbSFO2OMain.CreateParameterCollection();
                    parametersUpdate.Append("@NewSku", newSku);
                    parametersUpdate.Append("@Quantity", qty);
                    parametersUpdate.Append("@Sku", sku);
                    parametersUpdate.Append("@UserId", userId);
                    parametersUpdate.Append("@CountryId", salesTerritory);
                    parametersUpdate.Append("@UnitPrice", entity.Price);
                    parametersUpdate.Append("@TaxRate", entity.TaxRate);
                    var result = DbSFO2OMain.ExecuteSqlNonQuery(sqlUpdate, parametersUpdate);
                    return(result > 0);
                }
                catch (Exception ex)
                {
                    LogHelper.Error(ex);
                    return(false);
                }
            }

            //已存在新的
            using (var con = DbSFO2OMain.CreateConnection())
            {
                con.Open();
                var trans = con.BeginTransaction();
                try
                {
                    var parametersDel = DbSFO2OMain.CreateParameterCollection();
                    parametersDel.Append("@UserId", userId);
                    parametersDel.Append("@CountryId", salesTerritory);
                    parametersDel.Append("@Sku", sku);

                    var parametersUpdate = DbSFO2OMain.CreateParameterCollection();
                    parametersUpdate.Append("@NewSku", newSku);
                    parametersUpdate.Append("@Quantity", qty);
                    parametersUpdate.Append("@Sku", newSku);
                    parametersUpdate.Append("@UserId", userId);
                    parametersUpdate.Append("@CountryId", salesTerritory);
                    parametersUpdate.Append("@UnitPrice", entity.Price);
                    parametersUpdate.Append("@TaxRate", entity.TaxRate);
                    var delete = DbSFO2OMain.ExecuteSqlNonQuery(sqlDel, parametersDel, trans);

                    var result = DbSFO2OMain.ExecuteSqlNonQuery(sqlUpdate, parametersUpdate, trans);

                    if (delete > 0 && result > 0)
                    {
                        trans.Commit();
                        return(true);
                    }
                    else
                    {
                        trans.Rollback();
                        return(false);
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Error(ex);
                    trans.Rollback();
                    return(false);
                }
            }
        }