Ejemplo n.º 1
0
        public void MonthContainerShouldNotContainsEvents()
        {
            var dateTime       = new DateTime(2020, 7, 9);
            var monthContainer = new MonthContainer(dateTime);

            Assert.IsFalse(monthContainer._month.Days.Any(day => day.HasEvents));
        }
Ejemplo n.º 2
0
        public void DaysOfMonthShouldStartBasedOnFirstDayOfWeek(DateTime dateTime, DayOfWeek firstDayOfWeek, int index)
        {
            var monthContainer = new MonthContainer(dateTime, firstDayOfWeek);

            var days = monthContainer.Days;

            var firstDayOfCurrentMonth = days.First(day => day is { } && day.DateTime.Day == 1);
Ejemplo n.º 3
0
        public void MonthContainerShouldHave42Days(DateTime dateTime)
        {
            var monthContainer = new MonthContainer(dateTime);

            Assert.IsNotEmpty(monthContainer.Days);
            Assert.AreEqual(42, monthContainer.Days.Count);
        }
Ejemplo n.º 4
0
        public void MonthContainerShouldContainsTheDaysOfWeekInSpecificLanguages(string language, object dayOfWeekName)
        {
            CultureInfo.CurrentCulture = new CultureInfo(language);
            var dateTime       = DateTime.Today;
            var monthContainer = new MonthContainer(dateTime);

            Assert.AreEqual((DayOfWeekName)dayOfWeekName, monthContainer.DaysOfWeek.First());
        }
Ejemplo n.º 5
0
        public void MonthContainerShouldContainsDaysOfMonth()
        {
            var dateTime = DateTime.Now;

            var monthContainer = new MonthContainer(dateTime);

            Assert.IsNotEmpty(monthContainer.Days);
        }
Ejemplo n.º 6
0
        public void ShouldGetLastDayOfMonthContainerWhenPreviewDaysIsActive()
        {
            var dateTime       = new DateTime(2020, 10, 1);
            var monthContainer = new MonthContainer(dateTime, isPreviewDaysActive: true);

            var lastDay = monthContainer.LastDay;

            Assert.AreEqual(new DateTime(2020, 11, 7, 23, 59, 59), lastDay);
        }
Ejemplo n.º 7
0
        public void MonthContainerShouldHaveAName()
        {
            var dateTime = new DateTime(2020, 7, 9);
            var monthContainer = new MonthContainer(dateTime);

            var result = monthContainer.GetName();
            var dateTimeName = dateTime.ToString("MMMM yyyy");
            Assert.AreEqual(dateTimeName, result);
        }
Ejemplo n.º 8
0
        public void MonthContainerShouldLocalizeDaysOfWeekCorrectly(string language, string dayOfWeekName)
        {
            CultureInfo.CurrentCulture = new CultureInfo(language);
            var dateTime = DateTime.Today;

            var monthContainer = new MonthContainer(dateTime);

            Assert.AreEqual(dayOfWeekName, monthContainer.DaysOfWeek.First());
        }
Ejemplo n.º 9
0
        public void ShouldGetLastDayOfMonthContainer()
        {
            var dateTime       = new DateTime(2020, 10, 1);
            var monthContainer = new MonthContainer(dateTime);

            var lastDay = monthContainer.LastDay;

            Assert.AreEqual(new DateTime(2020, 10, 31, 23, 59, 59), lastDay);
        }
Ejemplo n.º 10
0
        public void MonthContainerShouldNavigateToPreivousMonth()
        {
            var dateTime       = new DateTime(2020, 12, 1);
            var monthContainer = new MonthContainer(dateTime);

            monthContainer.Previous();

            Assert.AreEqual(monthContainer._month.MonthDateTime.ToString("MMMM"), monthContainer.GetMonthName());
        }
Ejemplo n.º 11
0
        public void ShouldGetFirstDayOfMonthContainer()
        {
            var dateTime       = new DateTime(2020, 10, 1);
            var monthContainer = new MonthContainer(dateTime);

            var firstDay = monthContainer.FirstDay;

            Assert.AreEqual(new DateTime(2020, 10, 1, 0, 0, 0), firstDay);
        }
Ejemplo n.º 12
0
        public void ShouldGetFirstDayOfMonthContainerWhenPreviewDaysIsActive()
        {
            var dateTime       = new DateTime(2020, 10, 1);
            var monthContainer = new MonthContainer(dateTime, isPreviewDaysActive: true);

            var firstDay = monthContainer.FirstDay;

            Assert.AreEqual(new DateTime(2020, 9, 27, 0, 0, 0), firstDay);
        }
Ejemplo n.º 13
0
        public void DaysAttributeShouldBePopulateOneTime()
        {
            var dateTime       = new DateTime(2020, 10, 1);
            var monthContainer = new MonthContainer(dateTime);

            var days = monthContainer.Days;

            Assert.AreEqual(days.GetHashCode(), monthContainer.Days.GetHashCode());
        }
Ejemplo n.º 14
0
        public CalendarView()
        {
            InitializeComponent();

            _monthContainer = new MonthContainer(DateTime.Today);
            BindableLayout.SetItemsSource(CalendarDaysContainer, _monthContainer.Days);
            BindableLayout.SetItemsSource(CalendarDaysOfWeekContainer, _monthContainer.DaysOfWeek);
            MonthName.Text = _monthContainer.GetName();
        }
Ejemplo n.º 15
0
        public void MonthContainerShouldHaveAName()
        {
            var dateTime       = new DateTime(2020, 12, 1);
            var monthContainer = new MonthContainer(dateTime);

            var result = monthContainer.GetMonthName();

            Assert.AreEqual(monthContainer._month.MonthDateTime.ToString("MMMM"), result);
        }
Ejemplo n.º 16
0
        public void MonthContainerShouldNavigateToNextMonthWhenPreviewDaysIsActive()
        {
            var dateTime       = new DateTime(2020, 11, 9);
            var monthContainer = new MonthContainer(dateTime, isPreviewDaysActive: true);
            var nextMonth      = monthContainer._nextMonth;

            monthContainer.Next();

            Assert.AreEqual(nextMonth, monthContainer._currentMonth);
        }
Ejemplo n.º 17
0
        public void MonthContainerShouldNavigateToNextMonth()
        {
            var dateTime       = new DateTime(2020, 11, 9);
            var monthContainer = new MonthContainer(dateTime);
            var nextMonth      = new Month(dateTime.AddMonths(1));

            monthContainer.Next();

            Assert.AreEqual(nextMonth, monthContainer._currentMonth);
        }
Ejemplo n.º 18
0
        public void DaysOfWeekShouldStartWithSpecificDay(string language, DayOfWeek firstDayOfWeek, object expectedDaysOfWeek)
        {
            CultureInfo.CurrentCulture = new CultureInfo(language);
            var dateTime       = DateTime.Today;
            var monthContainer = new MonthContainer(dateTime, firstDayOfWeek);

            var daysOfWeek = monthContainer.DaysOfWeek;

            CollectionAssert.AreEqual((List <DayOfWeekName>)expectedDaysOfWeek, daysOfWeek.ToList());
        }
Ejemplo n.º 19
0
        public void MonthContainerShouldNavigateToPreviousMonth()
        {
            var dateTime       = new DateTime(2021, 1, 1);
            var monthContainer = new MonthContainer(dateTime);
            var previousMonth  = new Month(dateTime.AddMonths(-1));

            monthContainer.Previous();

            Assert.AreEqual(previousMonth, monthContainer._currentMonth);
        }
Ejemplo n.º 20
0
        public void MonthContainerShouldNavigateToPreviousMonthWhenPreviewDaysIsActive()
        {
            var dateTime       = new DateTime(2021, 1, 1);
            var monthContainer = new MonthContainer(dateTime, isPreviewDaysActive: true);
            var previousMonth  = monthContainer._previousMonth;

            monthContainer.Previous();

            Assert.AreEqual(previousMonth, monthContainer._currentMonth);
        }
Ejemplo n.º 21
0
        public void MonthContainerShouldNavigateToNextMonth()
        {
            var dateTime = new DateTime(2020, 11, 9);
            var monthContainer = new MonthContainer(dateTime);

            monthContainer.Next();

            var dateTimeName = monthContainer._month.MonthDateTime.ToString("MMMM yyyy");
            Assert.AreEqual(dateTimeName, monthContainer.GetName());
            Assert.AreEqual(31, monthContainer.Days.Count(day => day is {}));
Ejemplo n.º 22
0
        public void MonthContainerCanSelectDay()
        {
            var dateTime       = new DateTime(2020, 7, 9);
            var monthContainer = new MonthContainer(dateTime);
            var selectedDay    = new Day(dateTime, true);

            monthContainer.SelectDay(selectedDay);

            Assert.AreEqual(selectedDay, monthContainer.GetSelectedDay());
        }
Ejemplo n.º 23
0
        internal static void GetDayToDiscardAtStartOfMonth(this MonthContainer monthContainer, List <Day?> daysOfContainer)
        {
            var firstDay = monthContainer._month.Days.First();
            var numberOfDaysToDiscard = (int)firstDay.DateTime.DayOfWeek;

            for (var i = 0; i < numberOfDaysToDiscard; i++)
            {
                daysOfContainer.Add(default(Day));
            }
        }
Ejemplo n.º 24
0
        public void MonthContainerShouldNavigateToNextMonth()
        {
            var dateTime       = new DateTime(2020, 12, 9);
            var monthContainer = new MonthContainer(dateTime);

            monthContainer.Next();

            var dateTimeName = monthContainer._month.MonthDateTime.ToString("MMMM");

            Assert.AreEqual(dateTimeName, monthContainer.GetName());
        }
Ejemplo n.º 25
0
        public void MonthContainerShouldContainsEvents()
        {
            var dateTime       = new DateTime(2020, 7, 9);
            var monthContainer = new MonthContainer(dateTime);
            var events         = new List <ICalendarViewEvent>
            {
                new Event(1, "Name event", dateTime, dateTime, false)
            };

            monthContainer.AddEvents(events);

            Assert.IsTrue(monthContainer._month.Days.Any(day => day.HasEvents));
        }
Ejemplo n.º 26
0
        public void MonthContainerShouldContainEvents()
        {
            var dateTime       = new DateTime(2020, 12, 1);
            var monthContainer = new MonthContainer(dateTime);
            var events         = new List <Event>
            {
                new Event(1, "Name", dateTime, dateTime, false)
            };

            monthContainer.AddEvents(events);

            Assert.IsTrue(monthContainer._month.Days.Any(Day => Day.HasEvents));
        }
Ejemplo n.º 27
0
        public void AllEventsShouldBeRemovedFromMonthContainer()
        {
            var dateTime          = new DateTime(2020, 7, 9);
            var monthContainer    = new MonthContainer(dateTime);
            var calendarViewEvent = new Event(1, "Name event", dateTime, dateTime, false);
            var events            = new List <Event> {
                calendarViewEvent
            };

            monthContainer.AddEvents(events);

            monthContainer.RemoveAllEvents();

            Assert.IsFalse(monthContainer._currentMonth.Days.Any(day => day.HasEvents));
        }
Ejemplo n.º 28
0
        internal static void GetDayToDiscardAtEndOfMonth(this MonthContainer monthContainer, List <Day?> daysOfContainer)
        {
            var lastDay = monthContainer._month.Days.Last();
            var numberOfDaysToDiscard = 6 - (int)lastDay.DateTime.DayOfWeek;

            for (var i = 0; i < numberOfDaysToDiscard; i++)
            {
                daysOfContainer.Add(default(Day));
            }

            if (daysOfContainer.Count < 42)
            {
                for (var i = daysOfContainer.Count; i < 42; i++)
                {
                    daysOfContainer.Add(default(Day));
                }
            }
        }
Ejemplo n.º 29
0
        public async Task <IndexViewModel> Calculate(Client client, Db db)
        {
            var overviewCalculator = new OverviewCalculator(db, client, new SumCalculator(db, client));

            var allCategories = (await overviewCalculator.GetCategories()).ToList();

            Overview = new OverviewContainer
            {
                CategoryHeaders = allCategories
            };

            var overview = await overviewCalculator.Calculate();

            foreach (var monthPair in overview)
            {
                var monthContainer = new MonthContainer
                {
                    Year   = monthPair.Key.Date.Year,
                    Month  = monthPair.Key.Date.Month,
                    Name   = monthPair.Key.ToString(),
                    Income = monthPair.Value.Where(x => x.Key == Constants.IncomeCategory).Sum(x => x.Value),
                    Spent  = monthPair.Value.Where(x => x.Key != Constants.IncomeCategory).Sum(x => x.Value)
                };

                foreach (var category in allCategories)
                {
                    monthContainer[category] = monthPair.Value.ContainsKey(category) ? monthPair.Value[category] : 0;
                }

                if (monthContainer.Income > 0 || monthContainer.Spent < 0)
                {
                    Overview.Months.Insert(0, monthContainer);
                }
            }

            return(this);
        }
Ejemplo n.º 30
0
 public static Day GetSelectedDay(this MonthContainer monthContainer) => monthContainer._currentMonth.GetSelectedDay();