private void AddCompanyCashFlow(InnerTransactionUpdateDto dto, MoneyAction moneyAction) { var companyCahsFlow = new CompanyCashFlow() { MoenyAction = moneyAction, Amount = dto.Amount + dto.SenderCompany.CompanyCommission, Matched = false, CompanyId = dto.SenderCompany.CompanyId, CoinId = dto.CoinId, CreatedBy = _appSession.GetUserName() }; _unitOfWork.GenericRepository <CompanyCashFlow>().Insert(companyCahsFlow); }
private void MaiCompanyBalanceArbitrage(CompanyCash companyCash, InnerTransactionInsertDto dto, int mainCompanyId, MoneyAction moneyAction) { companyCash.Total -= (dto.Amount + dto.OurComission); companyCash.ModifiedBy = _appSession.GetUserName(); _unitOfWork.GenericRepository <CompanyCash>().Update(companyCash); var companyCahsFlow = new CompanyCashFlow() { CoinId = dto.CoinId, CompanyId = mainCompanyId, Total = companyCash.Total, Amount = -dto.Amount, Matched = false, MoenyAction = moneyAction }; _unitOfWork.GenericRepository <CompanyCashFlow>().Insert(companyCahsFlow); }
private void EditMaiCompanyBalanceArbitrage(InnerTransactionUpdateDto dto, MoneyAction moneyAction) { var oldCompanyCashFlow = _unitOfWork.GenericRepository <CompanyCashFlow>() .FindBy(x => x.CoinId == dto.CoinId && x.MoneyActionId == moneyAction.Id).FirstOrDefault(); if (oldCompanyCashFlow != null) { _unitOfWork.GenericRepository <CompanyCashFlow>().Delete(oldCompanyCashFlow); } var companyCashFlow = new CompanyCashFlow() { CoinId = dto.CoinId, CompanyId = dto.MainCompanyId, Amount = -dto.Amount, Matched = false, MoenyAction = moneyAction }; _unitOfWork.GenericRepository <CompanyCashFlow>().Insert(companyCashFlow); }
private void CompanyBlanceArbitrage(InnerTransactionInsertDto dto, MoneyAction moneyAction) { var companyCah = _unitOfWork.GenericRepository <CompanyCash>() .FindBy(c => c.CoinId == dto.CoinId && c.CompanyId == dto.ReciverCompany.CompanyId) .FirstOrDefault(); companyCah.Total += dto.Amount; companyCah.Total += dto.ReciverCompany.CompanyCommission; companyCah.ModifiedBy = _appSession.GetUserName(); _unitOfWork.GenericRepository <CompanyCash>().Update(companyCah); var companyCahsFlow = new CompanyCashFlow() { MoenyAction = moneyAction, Total = companyCah.Total, Amount = dto.Amount + dto.ReciverCompany.CompanyCommission, Matched = false, CompanyId = dto.ReciverCompany.CompanyId, CoinId = dto.CoinId, CreatedBy = _appSession.GetUserName() }; _unitOfWork.GenericRepository <CompanyCashFlow>().Insert(companyCahsFlow); }
public bool ExchangeForCompany(int companyId, int sellingCoinId, int purchasingCoinId, decimal firstAmount) { try { int treasuryId = _appSession.GetCurrentTreasuryId(); var secondCoinAmount = CalcForFirstCoin(sellingCoinId, purchasingCoinId, firstAmount); var mainCoin = _unitOfWork.GenericRepository <BranchCash>().FindBy(c => c.IsMainCoin == true).FirstOrDefault(); var firstCoinExchange = _unitOfWork.GenericRepository <CompanyCash>().FindBy(c => c.CoinId == sellingCoinId && c.CompanyId == companyId).FirstOrDefault(); var secoundCoinExchange = _unitOfWork.GenericRepository <CompanyCash>().FindBy(c => c.CoinId == purchasingCoinId && c.CompanyId == companyId).FirstOrDefault(); _unitOfWork.CreateTransaction(); var exchange = new Exchange() { BranchId = BranchHelper.Id, FirstCoinId = sellingCoinId, SecoundCoinId = purchasingCoinId, AmountOfFirstCoin = firstAmount, AmoutOfSecoundCoin = secondCoinAmount, MainCoinId = mainCoin.CoinId, }; _unitOfWork.GenericRepository <Exchange>().Insert(exchange); var companyCaches = _unitOfWork.GenericRepository <CompanyCash>().FindBy(c => c.CompanyId == companyId); var branchCashSellingCoin = companyCaches.Where(c => c.CoinId == sellingCoinId).FirstOrDefault(); branchCashSellingCoin.Total -= firstAmount; _unitOfWork.GenericRepository <CompanyCash>().Update(branchCashSellingCoin); var branchCashpurhesCoin = companyCaches.Where(c => c.CoinId == purchasingCoinId).FirstOrDefault(); branchCashpurhesCoin.Total += secondCoinAmount; _unitOfWork.GenericRepository <CompanyCash>().Update(branchCashpurhesCoin); var moneyAction = new MoneyAction() { ExchangeId = exchange.Id }; _unitOfWork.GenericRepository <MoneyAction>().Insert(moneyAction); var companyCashFlowForFirstCoin = new CompanyCashFlow() { CompanyId = companyId, MoenyAction = moneyAction, CoinId = sellingCoinId, Total = branchCashSellingCoin.Total, Amount = -firstAmount }; _unitOfWork.GenericRepository <CompanyCashFlow>().Insert(companyCashFlowForFirstCoin); var companyCashFlowForSecondCoin = new CompanyCashFlow() { CompanyId = companyId, CoinId = purchasingCoinId, MoenyAction = moneyAction, Total = branchCashpurhesCoin.Total, Amount = secondCoinAmount }; _unitOfWork.GenericRepository <CompanyCashFlow>().Insert(companyCashFlowForSecondCoin); _unitOfWork.Save(); _unitOfWork.Commit(); return(true); } catch (Exception ex) { _unitOfWork.Rollback(); return(false); } }
public static decimal?Commission(this CompanyCashFlow companyCashFlow) { return(companyCashFlow.MoenyAction.Comission(companyCashFlow.CompanyId)); }
public static string CompanyName(this CompanyCashFlow companyCashFlow) { return(companyCashFlow.Company.Name); }
public static string CountryName(this CompanyCashFlow companyCashFlow) { return(companyCashFlow.MoenyAction.CountryName()); }
public static string SenderName(this CompanyCashFlow companyCashFlow, Requester requester, int requesterId) { return(companyCashFlow.MoenyAction.SenderName(requester, requesterId)); }