Exemple #1
0
        public async static Task <List <CProduct> > SearchProductList(Int32 catagory_id, String keyword)
        {
            List <CProduct> ret = new List <CProduct>();

            try
            {
                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection = Program.conn;
                String sql = "SELECT * FROM `product`";
                if (catagory_id != 0)
                {
                    sql += " WHERE `catagory_id` = @catagory_id";
                    cmd.Parameters.AddWithValue("@catagory_id", catagory_id);
                }
                else
                {
                    sql += " WHERE (`catagory_id` = '0' OR `catagory_id` is NULL)";
                }
                if (!String.IsNullOrWhiteSpace(keyword))
                {
                    sql += " AND `name` LIKE CONCAT('%', '" + keyword + "', '%')";
                }
                cmd.CommandText = sql;
                DbDataReader reader = await cmd.ExecuteReaderAsync();

                cmd.Dispose();
                while (await reader.ReadAsync())
                {
                    ret.Add
                    (
                        new CProduct(reader.GetInt32(reader.GetOrdinal("id")),
                                     catagory_id,
                                     reader.GetString(reader.GetOrdinal("name")),
                                     reader.GetString(reader.GetOrdinal("description")),
                                     (await reader.IsDBNullAsync(reader.GetOrdinal("minprice"))) ? 0.0 : reader.GetDouble(reader.GetOrdinal("minprice")),
                                     (await reader.IsDBNullAsync(reader.GetOrdinal("sales"))) ? 0 : reader.GetInt32(reader.GetOrdinal("sales")),
                                     (await reader.IsDBNullAsync(reader.GetOrdinal("raters"))) ? 0 : reader.GetInt32(reader.GetOrdinal("raters")),
                                     (await reader.IsDBNullAsync(reader.GetOrdinal("rating"))) ? 0.0 : reader.GetDouble(reader.GetOrdinal("rating")),
                                     (await reader.IsDBNullAsync(reader.GetOrdinal("quantity"))) ? 0 : reader.GetInt32(reader.GetOrdinal("quantity")),
                                     (await reader.IsDBNullAsync(reader.GetOrdinal("image"))) ? global::OPS.Properties.Resources.noimage : CUtils.GetImageFromReader(reader, reader.GetOrdinal("image")))
                    );
                }
                if (!reader.IsClosed)
                {
                    reader.Close();
                }
                CUtils.LastLogMsg = null;
            }
            catch (Exception ex)
            {
#if DEBUG
                Console.WriteLine(ex.Message + " " + ex.StackTrace);
#endif
                CUtils.LastLogMsg = "Unahandled Exception!";
            }
            return(ret);
        }
Exemple #2
0
        public async static Task <CProduct> Retrieve(Int32 catagory_id, String name)
        {
            CProduct ret = null;

            try
            {
                String       sql = "SELECT * FROM `product` WHERE `catagory_id` = @catagory_id and `name` = @name LIMIT 1";
                MySqlCommand cmd = new MySqlCommand(sql, Program.conn);
                cmd.Parameters.AddWithValue("@catagory_id", catagory_id);
                cmd.Parameters.AddWithValue("@name", name);
                DbDataReader reader = await cmd.ExecuteReaderAsync();

                cmd.Dispose();
                if (!(await reader.ReadAsync()))
                {
                    if (!reader.IsClosed)
                    {
                        reader.Close();
                    }
                    CUtils.LastLogMsg = "Product with catagory_id '" + catagory_id + "' and name '" + name + "' not found!";
                    return(ret);
                }
                ret = new CProduct(reader.GetInt32(reader.GetOrdinal("id")),
                                   catagory_id,
                                   name,
                                   reader.GetString(reader.GetOrdinal("description")),
                                   (await reader.IsDBNullAsync(reader.GetOrdinal("minprice"))) ? 0 : reader.GetDouble(reader.GetOrdinal("minprice")),
                                   (await reader.IsDBNullAsync(reader.GetOrdinal("sales"))) ? 0 : reader.GetInt32(reader.GetOrdinal("sales")),
                                   (await reader.IsDBNullAsync(reader.GetOrdinal("raters"))) ? 0 : reader.GetInt32(reader.GetOrdinal("raters")),
                                   (await reader.IsDBNullAsync(reader.GetOrdinal("rating"))) ? 0 : reader.GetDouble(reader.GetOrdinal("rating")),
                                   (await reader.IsDBNullAsync(reader.GetOrdinal("quantity"))) ? 0 : reader.GetInt32(reader.GetOrdinal("quantity")),
                                   (await reader.IsDBNullAsync(reader.GetOrdinal("image"))) ? global::OPS.Properties.Resources.noimage : CUtils.GetImageFromReader(reader, reader.GetOrdinal("image")));
                if (!reader.IsClosed)
                {
                    reader.Close();
                }
                CUtils.LastLogMsg = null;
            }
            catch (Exception ex)
            {
#if DEBUG
                Console.WriteLine(ex.Message + " " + ex.StackTrace);
#endif
                CUtils.LastLogMsg = "Unahandled Exception!";
            }
            return(ret);
        }