public override IEnumerable <UserDisplayData> Execute() { IEnumerable <UserDisplayData> accounts = null; string query = BASE_QUERY; SqlFilterCriterion criterion = (SqlFilterCriterion)Filter; bool usesParameter = criterion.UsesParameter; DbParameter[] parameters = null; if (criterion != null) { query += $"WHERE {criterion.Evaluate()} "; parameters = criterion.GetParameters(); } if (Ordering != null) { query += string.Format("ORDER BY {0} ", Ordering.Evaluate()); } MySQLProvider provider = new MySQLProvider(DBConfiguration.ConnectionString); SQLCaller caller = new SQLCaller(provider); DbCommand command = criterion.UsesParameter ? provider.CreateCommand(query, parameters) : provider.CreateCommand(query); accounts = caller.Get(MapUserDisplay, command); return(accounts); }
public override void Edit(AccountModel model) { SQLCaller caller = new SQLCaller(sqlFactory); DbConnection connection = sqlFactory.CreateConnection(); DbParameter[] inputParameters = sqlFactory.CreateInputParameters(new Dictionary <string, object>() { { USERNAME_COLUMN, model.Username }, { ACCESSTYPE_COLUMN, model.AccessType }, { ACTIVE_COLUMN, model.IsActive }, { ID_COLUMN, model.Identity } }); DbCommand command = sqlFactory.CreateCommand(UPDATE_STATEMENT, inputParameters); try { caller.ExecuteNonQuery(command); } catch (MySqlException e) { //Handles violation of unique constraint for username if (e.ErrorCode == 1062) { throw new InvalidValueDuplicationException("Username", model.Username); } else { throw; } } }
public override void Delete(UserModel model) { SQLCaller caller = new SQLCaller(sqlFactory); DbConnection connection = sqlFactory.CreateConnection(); DbParameter[] inputParameters = sqlFactory.CreateInputParameters(new Dictionary <string, object>() { { ID_COLUMN, model.Identity } }); DbCommand command = sqlFactory.CreateCommand(DELETE_STATEMENT, inputParameters); caller.ExecuteNonQuery(command); }
public override void Edit(ProductModel model) { SQLCaller caller = new SQLCaller(sqlFactory); DbConnection connection = sqlFactory.CreateConnection(); DbParameter[] inputParameters = sqlFactory.CreateInputParameters(new Dictionary <string, object>() { { IMAGEFILENAME_COLUMN, model.ImageFilename }, { NAME_COLUMN, model.Name }, { BRAND_COLUMN, model.Brand }, { DESCRIPTION_COLUMN, model.Description }, { UNITPRICE_COLUMN, model.UnitPrice }, { QUANTITY_COLUMN, model.Quantity }, { ID_COLUMN, model.Identity } }); DbCommand command = sqlFactory.CreateCommand(UPDATE_STATEMENT, inputParameters); caller.ExecuteNonQuery(command); }
public override void Edit(UserModel model) { SQLCaller caller = new SQLCaller(sqlFactory); DbConnection connection = sqlFactory.CreateConnection(); DbParameter[] inputParameters = sqlFactory.CreateInputParameters(new Dictionary <string, object>() { { FIRSTNAME_COLUMN, model.Firstname }, { MIDDLENAME_COLUMN, model.Middlename }, { LASTNAME_COLUMN, model.Lastname }, { GENDER_COLUMN, model.Gender }, { BIRTHDATE_COLUMN, model.BirthDate }, { CONTACTNUMBER_COLUMN, model.ContactNumber }, { EMAIL_COLUMN, model.Email }, { ADDRESS_COLUMN, model.Address }, { ID_COLUMN, model.Identity } }); DbCommand command = sqlFactory.CreateCommand(UPDATE_STATEMENT, inputParameters); caller.ExecuteNonQuery(command); }
public override void Save(AccountModel model) { SQLCaller caller = new SQLCaller(sqlFactory); DbConnection connection = sqlFactory.CreateConnection(); DbParameter[] inputParameters = sqlFactory.CreateInputParameters(new Dictionary <string, object>() { { USERNAME_COLUMN, model.Username }, { HASHEDPASSWORD_COLUMN, model.Password.HashedPassword }, { SALT_COLUMN, model.Password.Salt }, { ACCESSTYPE_COLUMN, model.AccessType }, { ACTIVE_COLUMN, model.IsActive } }); DbParameter idParameter = sqlFactory.CreateOutputParameter(ID_COLUMN); DbCommand command = sqlFactory.CreateCommand(INSERT_STATEMENT, inputParameters, new DbParameter[] { idParameter }); try { caller.ExecuteNonQuery(command); model.Identity = Convert.ToInt32(idParameter.Value); } catch (MySqlException e) { //Handles violation of unique constraint for username if (e.ErrorCode == 1062) { throw new InvalidValueDuplicationException("Username", model.Username); } else { throw; } } }