예제 #1
0
        /// <summary>
        /// Add new item to cart or increments qty if item is already in cart.
        /// </summary>
        /// <param name="ASIN"></param>
        public int AddToCart(string asin)
        {
            //Add the item to update qty if already exists.
            //Sql Upsert: Update if record exists, otherwise insert.
            string SqlSelect = "SELECT qty from tblCart " +
                               "WHERE ASIN = @asin AND sessionID = @SessionId ";

            string SqlUpdate = "Update tblCart SET qty = (qty + 1) " +
                               "WHERE ASIN = @asin AND sessionID = @SessionId  ";

            string SqlInsert = "Insert into tblCart (sessionID, ASIN, qty, dateAdded) values " +
                               "(@sessionID, @asin, 1, @dateAdded);";

            string sql = "if exists (" + SqlSelect + ") " + SqlUpdate + " else " + SqlInsert;

            //populate model
            MusicCartModel musicCartModel = new MusicCartModel();

            musicCartModel.ASIN      = asin;
            musicCartModel.SessionId = SessionId;
            musicCartModel.DateAdded = DateTime.Now;

            using (IDbConnection db = new SqlConnection(connectString))
            {
                int RecordsAffected = db.Query <Int32>(sql, musicCartModel).SingleOrDefault();
                return(RecordsAffected);
            }
        }
예제 #2
0
        /// <summary>
        /// Decreases qty. by one item. Item is deleted if resulting quantity is < 1.
        /// </summary>
        /// <param name="ASIN">ASIN</param>
        public int RemoveFromCart(string ASIN)
        {
            string sqlUpdate = "Update tblCart SET qty = (qty - 1) " +
                               "WHERE ASIN = @ASIN AND sessionID = @SessionId; ";

            string sqlDelete = "Delete from tblCart " +
                               "WHERE ASIN = @ASIN AND sessionID = @SessionId AND qty < 1 ;";

            //execute both sql statements
            string sql = sqlUpdate + sqlDelete;

            MusicCartModel musicItem = new MusicCartModel();

            musicItem.ASIN      = ASIN;
            musicItem.SessionId = SessionId;

            using (IDbConnection db = new SqlConnection(connectString))
            {
                int RecordsAffected = db.Query <Int32>(sql, musicItem).SingleOrDefault();
                return(RecordsAffected);
            }
        }