public override List <ProductPurchase> GetUserPurchases(int userID)
        {
            List <ProductPurchase> list = new List <ProductPurchase>();

            using (SqlConnection connection = this.GetSqlConnection())
            {
                SqlCommand command = new SqlCommand("select * from SuCommerce_vw_Purchases where userID = " + userID + " order by PurchaseDateTime desc", connection)
                {
                    CommandType = CommandType.Text
                };
                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    ProductPurchase purchase = null;
                    while (reader.Read())
                    {
                        purchase = new ProductPurchase();
                        CommerceDataProvider.PopulateProductPurchaseList(reader, purchase);
                        list.Add(purchase);
                    }
                    reader.Close();
                    connection.Close();
                }
            }
            return(list);
        }
예제 #2
0
 public static void PopulateProductPurchaseList(IDataReader dr, ProductPurchase _productPurchase)
 {
     _productPurchase.PurchaseID             = (int)dr["purchaseid"];
     _productPurchase.ProductID              = (int)dr["productid"];
     _productPurchase.UserID                 = (int)dr["userid"];
     _productPurchase.PurchaseKey            = dr["purchasekey"] as string;
     _productPurchase.PurchaseDateTime       = DataHelper.DateOrNull(dr["purchasedatetime"].ToString());
     _productPurchase.CartLinkID             = (int)dr["cartlinkid"];
     _productPurchase.ProductTypeID          = (int)dr["producttypeid"];
     _productPurchase.ProductTypeCode        = dr["producttypecode"] as string;
     _productPurchase.Price                  = (decimal)dr["price"];
     _productPurchase.Title                  = dr["title"] as string;
     _productPurchase.CategoryID             = (int)dr["categoryid"];
     _productPurchase.LicenseTypeID          = (int)dr["licensetypeid"];
     _productPurchase.PackageTypeID          = (int)dr["packagetypeid"];
     _productPurchase.LicenseTypeDescription = dr["licensetypedescription"] as string;
     _productPurchase.PackageTypeDescription = dr["packagetypedescription"] as string;
     _productPurchase.CategoryName           = dr["categoryname"] as string;
     _productPurchase.TransactionXID         = dr["transactionxid"] as string;
     _productPurchase.UserName               = dr["username"] as string;
     _productPurchase.Email                  = dr["email"] as string;
     _productPurchase.DisplayName            = dr["displayname"] as string;
     _productPurchase.ActionID               = (int)dr["actionid"];
     _productPurchase.ActionCode             = dr["actioncode"] as string;
     _productPurchase.PurchaseTypeID         = (int)dr["purchasetypeid"];
 }
        public override List <ProductPurchase> GetProductPurchaseList()
        {
            List <ProductPurchase> list = new List <ProductPurchase>();

            using (SqlConnection connection = this.GetSqlConnection())
            {
                int        activityReportNum = CommerceSettings.Instance.ActivityReportNum;
                SqlCommand command           = new SqlCommand("select top " + activityReportNum + " * from SuCommerce_vw_Purchases order by PurchaseDateTime desc", connection)
                {
                    CommandType = CommandType.Text
                };
                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    ProductPurchase purchase = null;
                    while (reader.Read())
                    {
                        purchase = new ProductPurchase();
                        CommerceDataProvider.PopulateProductPurchaseList(reader, purchase);
                        list.Add(purchase);
                    }
                    reader.Close();
                    connection.Close();
                }
            }
            return(list);
        }
예제 #4
0
        public static int RecordPurchase(ProductPurchase productPurchase)
        {
            int num = -1;

            num = CommerceDataProvider.LoadProvider().RecordPurchase(productPurchase);
            ClearProductPurchaseListCache();
            return(num);
        }
예제 #5
0
        public static string PurchasedProductTitle(ProductPurchase productPurchase)
        {
            string title = productPurchase.Title;

            if (productPurchase.IsLicensePurchase())
            {
                title = productPurchase.PackageTypeDescription + " " + productPurchase.LicenseTypeDescription + SueetieLocalizer.GetMarketplaceString("productpurchase_title_suffix");
            }
            return(title);
        }
예제 #6
0
        public static bool IsLicensePurchase(this ProductPurchase _productPurchase)
        {
            bool flag = false;

            if ((_productPurchase.ProductTypeID != 5) && (_productPurchase.ProductTypeID != 2))
            {
                return(flag);
            }
            return(true);
        }
예제 #7
0
        public static void DownloadProductFile(int _productID, string _purchaseKey, int _cartLinkID)
        {
            int             num2;
            HttpContext     current         = HttpContext.Current;
            Stream          stream          = null;
            SueetieProduct  sueetieProduct  = Products.GetSueetieProduct(_productID);
            ProductPurchase productPurchase = new ProductPurchase {
                ProductID   = _productID,
                UserID      = SueetieContext.Current.User.UserID,
                PurchaseKey = _purchaseKey,
                CartLinkID  = _cartLinkID,
                ActionID    = 1
            };

            Purchases.RecordPurchase(productPurchase);
            string marketplaceFolderName = SueetieConfiguration.Get().Core.MarketplaceFolderName;
            string str            = sueetieProduct.DateCreated.Year.ToString();
            string str2           = Guid.NewGuid() + ".zip";
            string sourceFileName = siteRootPath + @"util\marketplace\downloads\" + str + @"\" + sueetieProduct.DownloadURL;
            string destFileName   = siteRootPath + @"util\marketplace\downloads\tmp\" + str2;

            File.Copy(sourceFileName, destFileName);
            int num = 0x8000;

            byte[] buffer = new byte[num];
            stream = File.OpenRead(destFileName);
            current.Response.AddHeader("Content-Disposition", "attachment; filename=" + sueetieProduct.DownloadURL);
            current.Response.Clear();
            current.Response.ContentType = "application/zip";
            current.Response.Buffer      = false;
            stream.Position = 0L;
            while ((num2 = stream.Read(buffer, 0, buffer.Length)) > 0)
            {
                if (current.Response.IsClientConnected)
                {
                    current.Response.OutputStream.Write(buffer, 0, num2);
                    current.Response.Flush();
                }
                else
                {
                    return;
                }
            }
            if (stream != null)
            {
                stream.Close();
            }
            current.Response.End();
        }
        public override ProductPurchase GetProductPurchase(int purchaseID)
        {
            ProductPurchase purchase = new ProductPurchase();

            using (SqlConnection connection = this.GetSqlConnection())
            {
                SqlCommand command = new SqlCommand("select * from SuCommerce_vw_Purchases where purchaseID = " + purchaseID, connection)
                {
                    CommandType = CommandType.Text
                };
                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    while (reader.Read())
                    {
                        CommerceDataProvider.PopulateProductPurchaseList(reader, purchase);
                    }
                    reader.Close();
                    connection.Close();
                }
            }
            return(purchase);
        }
        public override int RecordPurchase(ProductPurchase productPurchase)
        {
            int num = 0;

            using (SqlConnection connection = this.GetSqlConnection())
            {
                using (SqlCommand command = new SqlCommand("SuCommerce_Purchase_Record", connection))
                {
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.Add("@ProductID", SqlDbType.Int, 4).Value            = productPurchase.ProductID;
                    command.Parameters.Add("@UserID", SqlDbType.Int, 4).Value               = productPurchase.UserID;
                    command.Parameters.Add("@PurchaseKey", SqlDbType.NVarChar, 50).Value    = productPurchase.PurchaseKey;
                    command.Parameters.Add("@CartLinkID", SqlDbType.Int, 4).Value           = productPurchase.CartLinkID;
                    command.Parameters.Add("@TransactionXID", SqlDbType.NVarChar, 50).Value = DataHelper.StringOrNull(productPurchase.TransactionXID);
                    command.Parameters.Add("@ActionID", SqlDbType.Int, 4).Value             = productPurchase.ActionID;
                    command.Parameters.Add("@PurchaseID", SqlDbType.Int).Direction          = ParameterDirection.Output;
                    connection.Open();
                    command.ExecuteNonQuery();
                    num = (int)command.Parameters["@PurchaseID"].Value;
                    connection.Close();
                }
            }
            return(num);
        }
예제 #10
0
 public abstract int RecordPurchase(ProductPurchase productPurchase);