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);
        }
Beispiel #4
0
        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;
                }
            }
        }