Esempio n. 1
0
        public Analytic SumByOnus(Analytic analytics)
        {
            var sums  = _mongoContext.TotalByOnus(analytics);
            var items = _mongoContext.GetItems();

            var dictionary = new Dictionary <string, decimal>();

            foreach (var sum in sums.SumByOnus)
            {
                var match = items.FirstOrDefault(a => a.Id == sum.Key);
                dictionary.Add(match.Name, sum.Value);
            }

            analytics.SumByOnus = dictionary;

            return(analytics);
        }
Esempio n. 2
0
        public IEnumerable <Onus> GetOnusesPerEarning(DateTime thisEarningDate, DateTime nextEarningDate)
        {
            var onuses = new List <Onus>();
            var now    = DateTime.Now;
            var items  = _mongoContext.GetItems();

            foreach (var item in items)
            {
                if (item.Day == 0)
                {
                    onuses.Add(new Onus
                    {
                        Date   = thisEarningDate,
                        Amount = item.Amount,
                        ItemId = item.Id
                    });
                }
                else if (item.Day > 0)
                {
                    var workingDate = new DateTime(now.Year, now.Month, item.Day);

                    var last = _mongoContext.FindLastOnus(item.Id);

                    if (last != null)
                    {
                        switch (item.Frequency)
                        {
                        case 1:
                            workingDate = last.Date.AddMonths(1);
                            break;

                        case 2:
                            workingDate = last.Date.AddDays(14);
                            break;

                        case 3:
                            workingDate = last.Date.AddMonths(2);
                            break;

                        case 4:
                            workingDate = last.Date.AddMonths(6);
                            break;

                        case 5:
                            workingDate = last.Date.AddYears(1);
                            break;
                        }
                    }
                    else
                    {
                        switch (item.Frequency)
                        {
                        case 1:
                            workingDate = new DateTime(now.Year, now.Month, item.Day);
                            if (DateTime.Compare(workingDate, now) < 0)
                            {
                                workingDate = workingDate.AddMonths(1);
                            }
                            break;

                        case 2:
                            workingDate = new DateTime(2014, 9, 5);
                            break;

                        case 3:
                            workingDate = new DateTime(2014, 9, 10);
                            break;

                        case 4:
                            workingDate = new DateTime(2015, 6, 5);
                            break;

                        case 5:
                            workingDate = new DateTime(2014, 8, 28);
                            break;
                        }
                    }

                    if (workingDate >= thisEarningDate && workingDate < nextEarningDate)
                    {
                        onuses.Add(new Onus
                        {
                            Date   = workingDate,
                            Amount = item.Amount,
                            ItemId = item.Id
                        });
                    }
                }
            }

            return(onuses);
        }
Esempio n. 3
0
 public IEnumerable <Item> GetItems()
 {
     return(_mongoContext.GetItems());
 }