public override dynamic GetPlanes(int userIdParam) { using (_unitOfWork = DIManager.UnitOfWork) { PAccountantEntities context = _unitOfWork.PersonalAccountantContext as PAccountantEntities; return(context.other_PlannedBuy.Where(x => x.UserId == userIdParam).ToList()); } }
public override float GetStoredMoney(int userIdParam) { using (_unitOfWork = DIManager.UnitOfWork) { PAccountantEntities context = _unitOfWork.PersonalAccountantContext as PAccountantEntities; var sumStoredModel = context.other_sumStored.FirstOrDefault(x => x.UserId == userIdParam)?.Sum; return(sumStoredModel != null && sumStoredModel.HasValue ? Convert.ToSingle(sumStoredModel.Value) : 0); } }
private static void GetDebitPeriodEndedOperations(PAccountantEntities context, List <string> notificationsList) { var currencyModel = context.debt_DebtOperations.Where(x => x.EndDate < DateTime.Now && x.IsInProgress && x.DebtTypeId == 1).Select(x => new { AgentName = x.debt_DebtAgent.Name, CurrencyName = x.Currency.Name, ToPay = x.StartSum + x.RewardSum - (x.debt_Transactions.Any() ? x.debt_Transactions.Sum(y => y.Sum) : 0) }).ToList(); notificationsList.AddRange(currencyModel.Select(x => "You have overdue debt to " + x.AgentName + ". You should pay " + String.Format("{0:0.00}", _rateScriptor.ChangeBuyRateForCurrency(x.ToPay, x.CurrencyName, "usd")) + "$").ToList()); }
public override void AddSum(SumUserModel modelParam) { using (_unitOfWork = DIManager.UnitOfWork) { PAccountantEntities context = _unitOfWork.PersonalAccountantContext as PAccountantEntities; var planUSDSum = scriptor.ChangeBuyRateForCurrency(modelParam.Sum, modelParam.CurrencyName, "USD"); var storedMoney = context.other_sumStored.FirstOrDefault(x => x.UserId == modelParam.UserId); storedMoney.Sum += planUSDSum; _unitOfWork.Save(); } }
public override void AddPlan(AddPlanToStoreWithUser modelParam) { using (_unitOfWork = DIManager.UnitOfWork) { var planUSDSum = scriptor.ChangeBuyRateForCurrency(modelParam.Sum, modelParam.CurrencyName, "USD"); PAccountantEntities context = _unitOfWork.PersonalAccountantContext as PAccountantEntities; context.other_PlannedBuy.Add(new other_PlannedBuy() { Name = modelParam.Name, Sum = planUSDSum, UserId = modelParam.UserId }); _unitOfWork.Save(); } }
public List <string> GetNotifications() { using (_unitOfWork = DIManager.UnitOfWork) { PAccountantEntities context = _unitOfWork.PersonalAccountantContext as PAccountantEntities; var notificationsList = new List <string>(); if (context != null) { GetCreditPeriodEndedOperations(context, notificationsList); GetCreditNotPayForToLong(context, notificationsList); GetDebitPeriodEndedOperations(context, notificationsList); GetDebitNotPayForToLong(context, notificationsList); } return(notificationsList); } }
public List <DebtTransactionDetailedModel> GetTransactionsList(int operationId) { using (_unitOfWork = DIManager.UnitOfWork) { PAccountantEntities context = _unitOfWork.PersonalAccountantContext as PAccountantEntities; if (context != null) { var a = context.debt_Transactions.Where(x => x.DebtOperationId == operationId).ToList(); var b = a.Select(x => new DebtTransactionDetailedModel { Date = x.Date, Sum = x.Sum, Left = _rateScriptor.ChangeBuyRateForCurrency(x.debt_DebtOperations.StartSum + x.debt_DebtOperations.RewardSum - (a.Any(y => y.Date < x.Date || (y.Date <= x.Date && x.Id >= y.Id)) ? a.Where(y => y.Date < x.Date || (y.Date <= x.Date && x.Id >= y.Id)).Sum(y => y.Sum) : 0), x.debt_DebtOperations.Currency.Name, "usd") }).ToList(); return(b); } return(null); } }
private static void GetDebitNotPayForToLong(PAccountantEntities context, List <string> notificationsList) { var operationWithTwoLastTransactions = context.debt_DebtOperations.Where(x => x.EndDate < DateTime.Now && x.IsInProgress && x.DebtTypeId == 1).ToDictionary(x => x.Id, x => x.debt_Transactions?.OrderBy(y => y.Date).Select(y => new { Date = y.Date, AgentName = x.debt_DebtAgent.Name, LeftSum = x.StartSum + x.RewardSum - x.debt_Transactions.Sum(z => z.Sum), TransactionSum = y.Sum, CurrencyName = y.debt_DebtOperations.Currency.Name }).Take(1)); foreach (var operation in operationWithTwoLastTransactions) { if (operation.Value.Any() && (DateTime.Now - operation.Value.Max(x => x.Date)).TotalDays >= 28) { var transactionValue = operation.Value.FirstOrDefault(x => x.Date == operation.Value.Max(y => y.Date)); notificationsList.Add("You have not pay your debt to " + transactionValue.AgentName + " for long period. Last payment was mad " + transactionValue.Date.ToShortDateString() + ":" + String.Format("{0:0.00}", _rateScriptor.ChangeBuyRateForCurrency(transactionValue.TransactionSum, transactionValue.CurrencyName, "usd")) + "$" + ". Agent still should pay " + String.Format("{0:0.00}", _rateScriptor.ChangeBuyRateForCurrency(transactionValue.LeftSum, transactionValue.CurrencyName, "usd")) + "$"); } } }
public EFUnitOfWork() { _personalAccountantContext = new PAccountantEntities(); }
public EFRepository(PAccountantEntities context) { db = context; }