Example #1
0
 protected virtual void Dispose(bool disposing)
 {
     if (disposing) {
         SEconomy = null;
         Configuration = null;
     }
 }
        public CModifyBalanceWnd(SEconomy parent, IBankAccount BankAccount)
        {
            this.account = BankAccount;
            this.parent  = parent;

            InitializeComponent();

            rbTradeWith.CheckedChanged += (sender, args) => SwitchRegions();
            rbSetTo.CheckedChanged     += (sender, args) => SwitchRegions();

            txtSetCurrency.TextChanged   += (sender, args) => ParseMoneyFromControl(sender as TextBox);
            txtTradeCurrency.TextChanged += (sender, args) => ParseMoneyFromControl(sender as TextBox);

            txtSetCurrency.LostFocus   += (sender, args) => ConvertMoneyToNumber(sender as TextBox);
            txtTradeCurrency.LostFocus += (sender, args) => ConvertMoneyToNumber(sender as TextBox);
            txtSetCurrency.Focus();

            ddlTradeAccount.DataSource    = parent.RunningJournal.BankAccounts.OrderBy(i => i.UserAccountName).ToList();
            ddlTradeAccount.DisplayMember = "UserAccountName";
            ddlTradeAccount.ValueMember   = "BankAccountK";

            this.Text = "Modify Balance - " + account.UserAccountName;

            lblCurrencyName.Text  = Money.CurrencyName;
            lblCurrencyName2.Text = Money.CurrencyName;
        }
        public void Seconomy_TransferToWorld(string playerName, Money amount, string journalMsg, string transactionMsg)
        {
            SEconomy seconomy = this.Seconomy_Instance();

            IBankAccount account = seconomy.GetPlayerBankAccount(playerName);

            account.TransferTo(seconomy.WorldAccount, amount, BankAccountTransferOptions.AnnounceToSender, journalMsg, transactionMsg);
        }
Example #4
0
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         SEconomy      = null;
         Configuration = null;
     }
 }
Example #5
0
        public XmlTransactionJournal(SEconomy Parent, string JournalSavePath)
        {
            this.SEconomyInstance = Parent;
            this.path = JournalSavePath;

            if (Parent != null && Parent.Configuration.JournalBackupMinutes > 0) {
                JournalBackupTimer = new System.Timers.Timer(Parent.Configuration.JournalBackupMinutes * 60000);
                JournalBackupTimer.Elapsed += JournalBackupTimer_Elapsed;
                JournalBackupTimer.Start();
                this.BackupsEnabled = true;
            }
        }
Example #6
0
        public XmlTransactionJournal(SEconomy Parent, string JournalSavePath)
        {
            this.SEconomyInstance = Parent;
            this.path             = JournalSavePath;

            if (Parent != null && Parent.Configuration.JournalBackupMinutes > 0)
            {
                JournalBackupTimer          = new System.Timers.Timer(Parent.Configuration.JournalBackupMinutes * 60000);
                JournalBackupTimer.Elapsed += JournalBackupTimer_Elapsed;
                JournalBackupTimer.Start();
                this.BackupsEnabled = true;
            }
        }
        private SEconomy Seconomy_Instance()
        {
            SEconomy seconomy = SEconomyPlugin.Instance;

            if (seconomy == null)
            {
                var errMsg = "The SEconomy instance was null.";
                this.PluginTrace.WriteLineWarning(errMsg);
                throw new InvalidOperationException(errMsg);
            }

            return(seconomy);
        }
		public MySQLTransactionJournal(SEconomy instance, Configuration.SQLConnectionProperties sqlProperties)
		{
			if (string.IsNullOrEmpty(sqlProperties.DbOverrideConnectionString) == false) {
				this.connectionString = sqlProperties.DbOverrideConnectionString;
			}

			this.instance = instance;
			this.sqlProperties = sqlProperties;
			this.connectionString = string.Format("server={0};user id={1};password={2};connect timeout=60;", 
				sqlProperties.DbHost,
				sqlProperties.DbUsername, sqlProperties.DbPassword);
			this.SEconomyInstance = instance;
			this.mysqlConnection = new MySqlConnection(connectionString);
		}
Example #9
0
        public MySQLTransactionJournal(SEconomy instance, Configuration.SQLConnectionProperties sqlProperties)
        {
            if (string.IsNullOrEmpty(sqlProperties.DbOverrideConnectionString) == false)
            {
                this.connectionString = sqlProperties.DbOverrideConnectionString;
            }

            this.instance         = instance;
            this.sqlProperties    = sqlProperties;
            this.connectionString = string.Format("server={0};user id={1};password={2};connect timeout=60;",
                                                  sqlProperties.DbHost,
                                                  sqlProperties.DbUsername, sqlProperties.DbPassword);
            this.SEconomyInstance = instance;
            this.mysqlConnection  = new MySqlConnection(connectionString);
        }
 public CAccountManagementWnd(SEconomy SecInstance)
 {
     InitializeComponent();
     this.SecInstance = SecInstance;
 }
Example #11
0
        protected void Process()
        {
            sec = new SEconomy(null);
            SEconomyPlugin.Instance = sec;
            XmlTransactionJournal journal = null;
            int oldPercent = 0, skipped = 0;
            Dictionary <long, long> oldNewTransactions = new Dictionary <long, long>();
            JournalLoadingPercentChangedEventArgs args = new JournalLoadingPercentChangedEventArgs()
            {
                Label = "Accounts"
            };

            sec.Configuration = Config.FromFile(Config.BaseDirectory + Path.DirectorySeparatorChar + "seconomy.config.json");
            journal           = new XmlTransactionJournal(sec, Config.BaseDirectory + Path.DirectorySeparatorChar + "SEconomy.journal.xml.gz");

            JournalLoadingPercentChanged         += journal_JournalLoadingPercentChanged;
            journal.JournalLoadingPercentChanged += journal_JournalLoadingPercentChanged;
            journal.LoadJournal();

            Console.WriteLine();

            if (DatabaseExists() == false)
            {
                Console.WriteLine("Your SEconomy database does not exist.  Create it?");
                Console.Write("[y/n] ");
                if (Console.ReadKey().KeyChar != 'y')
                {
                    return;
                }
                CreateDatabase();
            }

            Console.WriteLine("Your SEconomy database will be flushed.  All accounts, and transactions will be deleted before the import.");
            Console.Write("Continue? [y/n] ");

            if (Console.ReadKey().KeyChar != 'y')
            {
                return;
            }

            Console.WriteLine();

            Connection.Query(string.Format("DELETE FROM `{0}`.`bank_account`;", sec.Configuration.SQLConnectionProperties.DbName));
            Connection.Query(string.Format("ALTER TABLE `{0}`.`bank_account` AUTO_INCREMENT 0;", sec.Configuration.SQLConnectionProperties.DbName));
            Connection.Query(string.Format("DELETE FROM `{0}`.`bank_account_transaction`;", sec.Configuration.SQLConnectionProperties.DbName));
            Connection.Query(string.Format("ALTER TABLE `{0}`.`bank_account_transaction` AUTO_INCREMENT 0;", sec.Configuration.SQLConnectionProperties.DbName));

            Console.WriteLine("This will probably take a while...\r\n");
            Console.WriteLine();
            if (JournalLoadingPercentChanged != null)
            {
                JournalLoadingPercentChanged(null, args);
            }

            for (int i = 0; i < journal.BankAccounts.Count; i++)
            {
                IBankAccount account         = journal.BankAccounts.ElementAtOrDefault(i);
                double       percentComplete = (double)i / (double)journal.BankAccounts.Count * 100;
                long         id    = -1;
                string       query = null;

                if (account == null)
                {
                    continue;
                }

                query = @"INSERT INTO `bank_account` 
							(user_account_name, world_id, flags, flags2, description, old_bank_account_k)
						  VALUES (@0, @1, @2, @3, @4, @5);"                        ;

                try {
                    Connection.QueryIdentity(query, out id, account.UserAccountName, account.WorldID,
                                             (int)account.Flags, 0, account.Description, account.BankAccountK);
                } catch (Exception ex) {
                    TShock.Log.ConsoleError("[SEconomy MySQL] Sql error adding bank account: " + ex.ToString());
                    continue;
                }

                for (int t = 0; t < account.Transactions.Count(); t++)
                {
                    long         tranId      = -1;
                    ITransaction transaction = account.Transactions.ElementAtOrDefault(t);
                    string       txQuery     = @"INSERT INTO `bank_account_transaction` 
										(bank_account_fk, amount, message, flags, flags2, transaction_date_utc, old_bank_account_transaction_k)
										VALUES (@0, @1, @2, @3, @4, @5, @6);"                                        ;

                    try {
                        Connection.QueryIdentity(txQuery, out tranId, id, (long)transaction.Amount, transaction.Message,
                                                 (int)BankAccountTransactionFlags.FundsAvailable, (int)transaction.Flags2, transaction.TransactionDateUtc,
                                                 transaction.BankAccountTransactionK);

                        if (oldNewTransactions.ContainsKey(transaction.BankAccountTransactionK) == false)
                        {
                            oldNewTransactions[transaction.BankAccountTransactionK] = tranId;
                        }
                    } catch (Exception ex) {
                        TShock.Log.ConsoleError("[SEconomy MySQL] Database error in BeginSourceTransaction: " + ex.Message);
                        continue;
                    }
                }

                if (oldPercent != (int)percentComplete)
                {
                    args.Percent = (int)percentComplete;
                    if (JournalLoadingPercentChanged != null)
                    {
                        JournalLoadingPercentChanged(null, args);
                    }
                    oldPercent = (int)percentComplete;
                }
            }

            args.Label   = "Reseed";
            args.Percent = 0;
            if (JournalLoadingPercentChanged != null)
            {
                JournalLoadingPercentChanged(null, args);
            }

            string updateQuery = @"update bank_account_transaction as OLDT
									inner join (
										select bank_account_transaction_id, old_bank_account_transaction_k
										from bank_account_transaction
									) as NEWT on OLDT.old_bank_account_transaction_k = NEWT.old_bank_account_transaction_k
									set OLDT.bank_account_transaction_fk = NEWT.bank_account_transaction_id"                                    ;

            Connection.Query(updateQuery);
            Connection.Query("update `bank_account_transaction` set `old_bank_account_transaction_k` = null;");
            args.Percent = 100;
            if (JournalLoadingPercentChanged != null)
            {
                JournalLoadingPercentChanged(null, args);
            }

            Console.WriteLine("import complete", skipped);
            Console.WriteLine("Press any key to exit");
            Console.Read();
        }
Example #12
0
 protected Currency(SEconomy instance, XElement configElement)
     : base(instance, configElement)
 {
     LoadConfiguration(configElement);
 }
Example #13
0
 protected AccountProvider(SEconomy instance, XElement config)
 {
     this.Configuration = config;
     this.SEconomy = instance;
 }
Example #14
0
 protected Provider(SEconomy instance, XElement configElement)
 {
     this.SEconomy = instance;
     this.Configuration = configElement;
 }
Example #15
0
 public CAccountManagementWnd(SEconomy SecInstance)
 {
     InitializeComponent();
     this.SecInstance = SecInstance;
 }
Example #16
0
 protected Currency(SEconomy instance, XElement configElement)
     : base(instance, configElement)
 {
     LoadConfiguration(configElement);
 }
Example #17
0
 protected AccountProvider(SEconomy instance, XElement config)
 {
     this.Configuration = config;
     this.SEconomy      = instance;
 }
Example #18
0
 protected Provider(SEconomy instance, XElement configElement)
 {
     this.SEconomy      = instance;
     this.Configuration = configElement;
 }