Ejemplo n.º 1
0
        /// <summary>
        /// Creates a new account from the given BankDataStruct
        /// </summary>
        /// <param name="sQLiteCore"></param>
        /// <param name="bankDataStruct"></param>
        /// <returns></returns>
        public static bool CreateNewAccount(this ISQLiteCore sQLiteCore, BankDataStruct bankDataStruct)
        {
            bool ret = false;

            using (IDbConnection conn = new SQLiteConnection(sQLiteCore._GetConnectionString()))
            {
                conn.Open();
                CommandDefinition commandDefinition = new CommandDefinition($"INSERT INTO bm_accCore values ({bankDataStruct.AccNo}, '{bankDataStruct.FName}'," +
                                                                            $" '{bankDataStruct.LName}', '{bankDataStruct.DOB}', '{bankDataStruct.PersonNo}', '{bankDataStruct.Address}', '{bankDataStruct.PlaceOfBirth}', " +
                                                                            $"'{bankDataStruct.Citizenship}', '{bankDataStruct.PhoneNo}', '{bankDataStruct.Email}', '{bankDataStruct.Sex}', {bankDataStruct.Amount.ToString(System.Globalization.CultureInfo.InvariantCulture)}, " +
                                                                            $"'{bankDataStruct.HasFixedAccount.ToString()}', '{bankDataStruct.AccCreationDate}', '{bankDataStruct.CivilStatus}');");
                ret = conn.Execute(commandDefinition) > 0; // Execute returns the number of cell it has infected, so if the value is greater than 0, meaning the SQL command was successful
                conn.Close();
            }
            return(ret);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets BankDataStruct of a specific account
        /// </summary>
        /// <param name="sQLiteCore"></param>
        /// <param name="accNo"></param>
        /// <returns></returns>
        public static BankDataStruct GetBankDataStruct(this ISQLiteCore sQLiteCore, int accNo)
        {
            BankDataStruct bankDataStruct = new BankDataStruct();

            object[] tempObjArray = new object[15]; // total 15 elements in one database row
            using (IDbConnection conn = new SQLiteConnection(sQLiteCore._GetConnectionString()))
            {
                conn.Open();
                CommandDefinition commandDefinition = new CommandDefinition($"SELECT * FROM bm_accCore WHERE AccNum={accNo};");
                using (IDataReader dataReader = conn.ExecuteReader(commandDefinition)) // we ask for all the info of a given account number
                {
                    while (dataReader.Read())
                    {
                        dataReader.GetValues(tempObjArray); // GetValues() fills the tempObjArray with all the fetched values
                    }
                }
                conn.Close();
            }

            // we fill the BankDataStuct wtih feched data as well perform required cast if needed
            bankDataStruct.AccNo           = (int)((Int64)tempObjArray[0]); // first we cast the object to Int64 then we cast it again to int
            bankDataStruct.FName           = tempObjArray[1].ToString();
            bankDataStruct.LName           = tempObjArray[2].ToString();
            bankDataStruct.DOB             = tempObjArray[3].ToString();
            bankDataStruct.PersonNo        = tempObjArray[4].ToString();
            bankDataStruct.Address         = tempObjArray[5].ToString();
            bankDataStruct.PlaceOfBirth    = tempObjArray[6].ToString();
            bankDataStruct.Citizenship     = tempObjArray[7].ToString();
            bankDataStruct.PhoneNo         = tempObjArray[8].ToString();
            bankDataStruct.Email           = tempObjArray[9].ToString();
            bankDataStruct.Sex             = tempObjArray[10].ToString();
            bankDataStruct.Amount          = (decimal)((double)tempObjArray[11]); // first we cast the object to double (since SQLite stores real values as double) then we cast it again to decimal
            bankDataStruct.HasFixedAccount = tempObjArray[12].ToString().Equals("True") ? true : false;
            bankDataStruct.AccCreationDate = tempObjArray[13].ToString();
            bankDataStruct.CivilStatus     = tempObjArray[14].ToString();
            return(bankDataStruct);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Returns true if the creation of a new account is successful in the db
 /// </summary>
 /// <param name="fetchAccountInfo"></param>
 /// <param name="bankDataStruct"></param>
 /// <returns></returns>
 public static bool CreateNewBankAccount(this IFetchAccountInfo fetchAccountInfo, BankDataStruct bankDataStruct)
 {
     return(_sQLiteCore.CreateNewAccount(bankDataStruct));
 }