Esempio n. 1
0
 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());
     }
 }
Esempio n. 2
0
 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());
        }
Esempio n. 4
0
 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();
     }
 }
Esempio n. 5
0
 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")) + "$");
                }
            }
        }
Esempio n. 9
0
 public EFUnitOfWork()
 {
     _personalAccountantContext = new PAccountantEntities();
 }
Esempio n. 10
0
 public EFRepository(PAccountantEntities context)
 {
     db = context;
 }