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); }
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); }