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