private void onUpdatePocet() { UpdateStatusEventHandler handler = UpdatePocet; if (handler != null) { handler(this, new EventArgs()); } }
private void OnUpdatedStats() { UpdateStatusEventHandler handler = UpdatedStats; if (handler != null) { handler(this, new EventArgs()); } }
public void ProcessArray(List <Transaction> data, CompletedData referenceData, UpdateStatusEventHandler call) { try { foreach (var currentTransaction in data) { var currentAccount = currentTransaction.CuentaOrigen; var password = ""; var current = referenceData.ProcessedAccounts.FirstOrDefault(s => s.AccountNumber == currentAccount); if (current == null) { password = _reconoserRepository.GetPasswordEncryptedAccount("usuariop", "passwordp", currentAccount); referenceData.ProcessedAccounts.Add(new MyAccount { AccountNumber = currentAccount, Password = password }); } else { password = current.Password; } var currentMovement = DecriptData(password, currentTransaction.TipoTransaccion); double saldoActual = -1; //Obtenemos el saldo actual de la cuenta foreach (var balance in referenceData.BalanceList) { if (currentAccount != balance.CuentaOrigen) { continue; } saldoActual = balance.SaldoCuenta; double commission = CalculateComision(Convert.ToInt64(currentTransaction.ValorTransaccion)); if (currentMovement == "Debito") { balance.SaldoCuenta -= currentTransaction.ValorTransaccion; } else { balance.SaldoCuenta += currentTransaction.ValorTransaccion - commission; } } //Si no encuentra lo inserta if (saldoActual == -1) { var newBalance = new Balance(); double comision = CalculateComision(Convert.ToInt64(currentTransaction.ValorTransaccion)); newBalance.CuentaOrigen = currentAccount; if (currentMovement == "Debito") { newBalance.SaldoCuenta -= currentTransaction.ValorTransaccion; } else { newBalance.SaldoCuenta += currentTransaction.ValorTransaccion - comision; } referenceData.BalanceList.Add(newBalance); } decimal percentage = 100 / referenceData.Total * referenceData.Counter; referenceData.Counter++; call(Math.Round(percentage, 2), ""); } } catch (ThreadAbortException e) { call(0, e.Message); } catch (Exception e) { call(0, e.Message); } }
public void ProcessCompleted(int divider, CompletedData referenceData, List <Transaction> resp, UpdateStatusEventHandler call) { divider = divider == 0 ? 1 : divider; referenceData.Total = resp.Count; referenceData.BalanceList = new List <Balance>(); List <List <Transaction> > group = new List <List <Transaction> >(); if (divider == 1) { group = new List <List <Transaction> > { resp }; } else { divider = divider - 1; var countByDivide = resp.Count / divider; int startIndex = 0; while (startIndex < resp.Count) { var item = countByDivide; if (startIndex + item > resp.Count) { item = (startIndex + item) - resp.Count; } group.Add(resp.Skip(startIndex).Take(item).ToList()); //processArray(group, startIndex, group.First().ThreadCount); startIndex += countByDivide; } //group = Split(resp, divider); } _thread = new List <Thread>(); var countert = 1; foreach (var array in group) { //Task task = Task.Factory.StartNew(() => ProcessArray(array)); //tasks.Add(task); Thread myNewThread = new Thread(() => ProcessArray(array, referenceData, call)); myNewThread.Priority = ThreadPriority.Highest; myNewThread.Name = "Thread" + countert; _thread.Add(myNewThread); } foreach (var current in _thread) { current.Start(); } }
public void RemoveUpdateStatusEventHandler(UpdateStatusEventHandler handler) { m_updateStatusHandler -= handler; }
/// <summary> /// Adds and UpdateStatusEventHandler /// </summary> /// <param name="handler">UpdateStatusEventHandler</param> public void AddUpdateStatusEventHandler(UpdateStatusEventHandler handler) { m_updateStatusHandler += handler; }