Ejemplo n.º 1
0
        public void Constructor_WTRViewModelINtInt_ViewModel()
        {
            //Arrange

            //Act
            WTRViewModel parentWtrViewModel = new WTRViewModel(mock.Object.Employees[0], new DateTime(2014, 02, 01), new DateTime(2014, 02, 28));
            WTRViewModel wtrViewModel       = new WTRViewModel(parentWtrViewModel, 8, 2014);

            //Assert
            Assert.AreEqual(DayOfWeek.Monday, System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek);
            Assert.AreEqual(DayOfWeek.Monday, System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat.FirstDayOfWeek);
            Assert.AreEqual("andl", wtrViewModel.ID);
            Assert.AreEqual("Anastasia", wtrViewModel.FirstName);
            Assert.AreEqual("Zarose", wtrViewModel.LastName);
            Assert.AreEqual(2, wtrViewModel.FactorDetails.Count);
            Assert.AreEqual(CalendarItemType.PaidVacation, wtrViewModel.FactorDetails[0].Factor);
            Assert.AreEqual(new DateTime(2014, 02, 17), wtrViewModel.FactorDetails[0].From);
            Assert.AreEqual(new DateTime(2014, 02, 23), wtrViewModel.FactorDetails[0].To);
            Assert.AreEqual(0, wtrViewModel.FactorDetails[0].Hours);
            Assert.AreEqual(null, wtrViewModel.FactorDetails[0].Location);
            Assert.AreEqual(8, wtrViewModel.FactorDetails[0].WeekNumber);
            Assert.AreEqual(CalendarItemType.SickAbsence, wtrViewModel.FactorDetails[1].Factor);
            Assert.AreEqual(new DateTime(2014, 02, 21), wtrViewModel.FactorDetails[1].From);
            Assert.AreEqual(new DateTime(2014, 02, 23), wtrViewModel.FactorDetails[1].To);
            Assert.AreEqual(0, wtrViewModel.FactorDetails[1].Hours);
            Assert.AreEqual(null, wtrViewModel.FactorDetails[1].Location);
            Assert.AreEqual(8, wtrViewModel.FactorDetails[1].WeekNumber);
        }
Ejemplo n.º 2
0
        public static IEnumerable <WTRViewModel> CustomSelectEmployeeByWeek(this HtmlHelper helper, IEnumerable <WTRViewModel> wtrList, int weekNum, int Year)
        {
            List <WTRViewModel> result = new List <WTRViewModel>();

            foreach (var wtrPerson in wtrList)
            {
                WTRViewModel onePerson = new WTRViewModel {
                    ID = wtrPerson.ID, FirstName = wtrPerson.FirstName, LastName = wtrPerson.LastName, FactorDetails = new List <FactorData>()
                };

                foreach (var fData in wtrPerson.FactorDetails)
                {
                    if (fData.WeekNumber == weekNum && fData.From.Year == Year)
                    {
                        FactorData data = new FactorData();
                        data.Factor     = fData.Factor;
                        data.From       = fData.From;
                        data.To         = fData.To;
                        data.Hours      = 0;
                        data.WeekNumber = fData.WeekNumber;
                        data.Location   = fData.Location;
                        onePerson.FactorDetails.Add(data);
                    }
                }
                if (onePerson.FactorDetails.Count > 0)
                {
                    result.Add(onePerson);
                }
            }
            return(result);
        }
Ejemplo n.º 3
0
        public void IntersectDatePairDicts_WTRFromToContainsFromDateOfCalendarItem_SixKeyDictionary()
        {
            //Arrange
            DateTime     from  = new DateTime(2013, 12, 01);
            DateTime     to    = new DateTime(2014, 02, 01);
            WTRViewModel model = new WTRViewModel();

            DateTime wtrFrom = new DateTime(2013, 11, 01);
            DateTime wtrTo   = new DateTime(2014, 01, 01);
            Dictionary <int, WTRViewModel.StartEndDatePair> dict    = model.GetWeeksInTimeSpan(from, to);
            Dictionary <int, WTRViewModel.StartEndDatePair> wtrDict = model.GetWeeksInTimeSpan(wtrFrom, wtrTo);

            //Act
            var result = model.IntersectDatePairDicts(dict, wtrDict);

            //Assert
            Assert.AreEqual(7, result.Count);
            Assert.AreEqual(48, result.Keys.FirstOrDefault());
            Assert.AreEqual(1, result.Keys.Last());
            Assert.AreEqual(new DateTime(2013, 12, 01), result[48].startDate);
            Assert.AreEqual(new DateTime(2013, 12, 01), result[48].endDate);
            Assert.AreEqual(new DateTime(2013, 12, 29), result[52].endDate);
            Assert.AreEqual(new DateTime(2013, 12, 30), result[53].startDate);
            Assert.AreEqual(new DateTime(2013, 12, 31), result[53].endDate);
            Assert.AreEqual(new DateTime(2014, 01, 01), result[1].startDate);
            Assert.AreEqual(new DateTime(2014, 01, 01), result[1].endDate);
        }
Ejemplo n.º 4
0
        public PartialViewResult GetWTRData(string From = "", string To = "", string searchString = "")
        {
            DateTime fromParsed = DateTime.Now;
            DateTime toParse    = DateTime.Now;
            int      FromYear   = DateTime.Now.Year;
            int      ToYear     = DateTime.Now.Year;

            DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
            Calendar           cal = dfi.Calendar;

            if (From != "" && To != "")
            {
                fromParsed = DateTime.ParseExact(From, "dd.MM.yyyy", null);
                toParse    = DateTime.ParseExact(To, "dd.MM.yyyy", null);
                FromYear   = fromParsed.Year;
                ToYear     = toParse.Year;
            }
            else
            {
                return(PartialView("GetWTRDataEmpty"));
            }

            searchString = searchString != "" ? searchString.Trim() : "";
            List <Employee>     selectedData = new List <Employee>();
            List <WTRViewModel> wtrDataList  = new List <WTRViewModel>();

            selectedData = SearchEmployeeData(fromParsed, toParse, repository.Employees.ToList(), searchString);

            foreach (var emp in selectedData)
            {
                WTRViewModel onePerson = new WTRViewModel {
                    ID = emp.EID, FirstName = emp.FirstName, LastName = emp.LastName, FactorDetails = new List <FactorData>()
                };
                foreach (var calendarItems in emp.CalendarItems)
                {
                    FactorData data = new FactorData();
                    data.Factor     = calendarItems.Type;
                    data.Location   = calendarItems.Location;
                    data.From       = calendarItems.From;
                    data.To         = calendarItems.To;
                    data.Hours      = 0;
                    data.WeekNumber = cal.GetWeekOfYear(calendarItems.From, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
                    onePerson.FactorDetails.Add(data);
                }
                wtrDataList.Add(onePerson);
            }

            ViewBag.FromWeek = cal.GetWeekOfYear(fromParsed, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
            ViewBag.ToWeek   = cal.GetWeekOfYear(toParse, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
            ViewBag.FromYear = FromYear;
            ViewBag.ToYear   = ToYear;

            ViewBag.fromDate = From;
            ViewBag.toDate   = To;

            return(PartialView(wtrDataList));
        }
Ejemplo n.º 5
0
        public void SortFactorDataByStartDate_FactorDetailsEmpty_NoException()
        {
            //Arrange
            WTRViewModel model = new WTRViewModel(mock.Object.Employees[0], new DateTime(1990, 02, 21), new DateTime(1990, 02, 22));

            //Act
            model.SortFactorDataByStartDate();

            //Assert
            CollectionAssert.IsEmpty(model.FactorDetails);
        }
Ejemplo n.º 6
0
        public PartialViewResult GetWTRDataPerEMP(string From = "", string To = "", string userName = "")
        {
            DateTime fromParsed = DateTime.Now;
            DateTime toParse    = DateTime.Now;
            int      FromYear   = DateTime.Now.Year;
            int      ToYear     = DateTime.Now.Year;

            DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
            Calendar           cal = dfi.Calendar;

            if (From != "" && To != "")
            {
                fromParsed = DateTime.ParseExact(From, "dd.MM.yyyy", null);
                toParse    = DateTime.ParseExact(To, "dd.MM.yyyy", null);
                FromYear   = fromParsed.Year;
                ToYear     = toParse.Year;
            }
            else
            {
                return(PartialView("GetWTRDataEmpty"));
            }

            List <WTRViewModel> wtrDataList = new List <WTRViewModel>();
            Employee            employee    = repository.Employees.Where(e => e.EID == userName).FirstOrDefault();

            if (employee == null)
            {
                return(PartialView("NoData"));
            }

            WTRViewModel onePerson = new WTRViewModel {
                ID = employee.EID, FirstName = employee.FirstName, LastName = employee.LastName, FactorDetails = new List <FactorData>()
            };

            foreach (var calendarItems in employee.CalendarItems)
            {
                FactorData data = new FactorData();
                data.Factor     = calendarItems.Type;
                data.Location   = calendarItems.Location;
                data.From       = calendarItems.From;
                data.To         = calendarItems.To;
                data.Hours      = 0;
                data.WeekNumber = cal.GetWeekOfYear(calendarItems.From, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
                onePerson.FactorDetails.Add(data);
            }
            wtrDataList.Add(onePerson);

            ViewBag.FromWeek = cal.GetWeekOfYear(fromParsed, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
            ViewBag.ToWeek   = cal.GetWeekOfYear(toParse, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
            ViewBag.FromYear = FromYear;
            ViewBag.ToYear   = ToYear;

            return(PartialView("GetWTRData", wtrDataList));
        }
Ejemplo n.º 7
0
        public void EmptyConstructor_NoParameters_EmptyViewModel()
        {
            //Arrange

            //Act
            WTRViewModel wtrViewModel = new WTRViewModel();

            //Assert
            Assert.AreEqual(DayOfWeek.Monday, System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek);
            Assert.AreEqual(DayOfWeek.Monday, System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat.FirstDayOfWeek);
        }
Ejemplo n.º 8
0
        public void SortFactorDataByStartDate_FactorDetailsNull_NoException()
        {
            //Arrange
            WTRViewModel model = new WTRViewModel();

            //Act
            model.SortFactorDataByStartDate();

            //Assert
            Assert.IsNull(model.FactorDetails);
        }
Ejemplo n.º 9
0
        public void GetWeeksInTimeSpan_IllegalDatesToIsLesserThanFrom_0Weeks()
        {
            //Arrange
            DateTime     from  = new DateTime(2014, 01, 02);
            DateTime     to    = new DateTime(2014, 01, 01);
            WTRViewModel model = new WTRViewModel();

            //Act
            Dictionary <int, WTRViewModel.StartEndDatePair> result = model.GetWeeksInTimeSpan(from, to);

            //Assert
            Assert.AreEqual(0, result.Count);
        }
Ejemplo n.º 10
0
        public IEnumerable <WTRViewModel> SelectEmployeeByWeek(IEnumerable <WTRViewModel> wtrList, int weekNum, int year)
        {
            List <WTRViewModel> result = new List <WTRViewModel>();

            foreach (WTRViewModel wtrPerson in wtrList.Where(w => w.FactorDetails.Count > 0))
            {
                WTRViewModel onePerson = new WTRViewModel(wtrPerson, weekNum, year);
                if (onePerson.FactorDetails.Count > 0)
                {
                    result.Add(onePerson);
                }
            }
            return(result);
        }
Ejemplo n.º 11
0
        public void GetWeeksInTimeSpan_TwoDaysAtEndOfWeek_SingleWeek()
        {
            //Arrange
            DateTime     from  = new DateTime(2014, 04, 26);
            DateTime     to    = new DateTime(2014, 04, 27);
            WTRViewModel model = new WTRViewModel();

            //Act
            Dictionary <int, WTRViewModel.StartEndDatePair> result = model.GetWeeksInTimeSpan(from, to);

            //Assert
            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(17, result.Keys.FirstOrDefault());
            Assert.AreEqual(new DateTime(2014, 04, 26), result[17].startDate);
            Assert.AreEqual(new DateTime(2014, 04, 27), result[17].endDate);
        }
Ejemplo n.º 12
0
        public void IntersectDatePairDicts_WTRFromToNotContainCalendarItem_OneKeyDictionary()
        {
            //Arrange
            DateTime     from  = new DateTime(2014, 01, 01);
            DateTime     to    = new DateTime(2014, 01, 01);
            WTRViewModel model = new WTRViewModel();

            DateTime wtrFrom = new DateTime(2015, 12, 12);
            DateTime wtrTo   = new DateTime(2015, 01, 10);
            Dictionary <int, WTRViewModel.StartEndDatePair> dict    = model.GetWeeksInTimeSpan(from, to);
            Dictionary <int, WTRViewModel.StartEndDatePair> wtrDict = model.GetWeeksInTimeSpan(wtrFrom, wtrTo);

            //Act
            var result = model.IntersectDatePairDicts(dict, wtrDict);

            //Assert
            Assert.AreEqual(0, result.Count);
        }
Ejemplo n.º 13
0
        public void GetWeeksInTimeSpan_DaysAcrossTwoYears_TwoWeeksSecondOneHasNumber1()
        {
            //Arrange
            DateTime     from  = new DateTime(2014, 12, 29);
            DateTime     to    = new DateTime(2015, 01, 02);
            WTRViewModel model = new WTRViewModel();

            //Act
            Dictionary <int, WTRViewModel.StartEndDatePair> result = model.GetWeeksInTimeSpan(from, to);

            //Assert
            Assert.AreEqual(2, result.Count);
            Assert.AreEqual(53, result.Keys.FirstOrDefault());
            Assert.AreEqual(1, result.Keys.Skip(1).FirstOrDefault());
            Assert.AreEqual(new DateTime(2014, 12, 29), result[53].startDate);
            Assert.AreEqual(new DateTime(2014, 12, 31), result[53].endDate);
            Assert.AreEqual(new DateTime(2015, 01, 01), result[1].startDate);
            Assert.AreEqual(new DateTime(2015, 01, 02), result[1].endDate);
        }
Ejemplo n.º 14
0
        public void SortFactorDataByStartDate_FactorDetailsNotEmpty_SortedFactorDetails()
        {
            //Arrange
            WTRViewModel model = new WTRViewModel(mock.Object.Employees[0], new DateTime(2014, 02, 20), new DateTime(2014, 02, 22));

            model.FactorDetails.Reverse();
            List <FactorData> factorDetails = new List <FactorData>();

            foreach (FactorData factorData in model.FactorDetails)
            {
                factorDetails.Add(factorData);
            }
            //Act
            model.SortFactorDataByStartDate();

            //Assert
            CollectionAssert.AreEquivalent(model.FactorDetails, factorDetails);
            CollectionAssert.AreNotEqual(model.FactorDetails, factorDetails);
        }
Ejemplo n.º 15
0
        public void IntersectDatePairDicts_CalendarItemDuesForOneDay_OneKeyDictionary()
        {
            //Arrange
            DateTime     from  = new DateTime(2014, 01, 01);
            DateTime     to    = new DateTime(2014, 01, 01);
            WTRViewModel model = new WTRViewModel();

            DateTime wtrFrom = new DateTime(2013, 12, 12);
            DateTime wtrTo   = new DateTime(2014, 01, 10);
            Dictionary <int, WTRViewModel.StartEndDatePair> dict    = model.GetWeeksInTimeSpan(from, to);
            Dictionary <int, WTRViewModel.StartEndDatePair> wtrDict = model.GetWeeksInTimeSpan(wtrFrom, wtrTo);

            //Act
            var result = model.IntersectDatePairDicts(dict, wtrDict);

            //Assert
            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(1, result.Keys.FirstOrDefault());
            Assert.AreEqual(1, result.Keys.Last());
            Assert.AreEqual(new DateTime(2014, 01, 01), result[1].startDate);
            Assert.AreEqual(new DateTime(2014, 01, 01), result[1].endDate);
        }
Ejemplo n.º 16
0
        public void GetWeeksInTimeSpan_ManyDaysAcrossThreeWeeks_ThreeWeeks()
        {
            //Arrange
            DateTime     from  = new DateTime(2014, 04, 26);
            DateTime     to    = new DateTime(2014, 05, 07);
            WTRViewModel model = new WTRViewModel();

            //Act
            Dictionary <int, WTRViewModel.StartEndDatePair> result = model.GetWeeksInTimeSpan(from, to);

            //Assert
            Assert.AreEqual(3, result.Count);
            Assert.AreEqual(17, result.Keys.FirstOrDefault());
            Assert.AreEqual(18, result.Keys.Skip(1).FirstOrDefault());
            Assert.AreEqual(19, result.Keys.Skip(2).FirstOrDefault());
            Assert.AreEqual(new DateTime(2014, 04, 26), result[17].startDate);
            Assert.AreEqual(new DateTime(2014, 04, 27), result[17].endDate);
            Assert.AreEqual(new DateTime(2014, 04, 28), result[18].startDate);
            Assert.AreEqual(new DateTime(2014, 05, 04), result[18].endDate);
            Assert.AreEqual(new DateTime(2014, 05, 05), result[19].startDate);
            Assert.AreEqual(new DateTime(2014, 05, 07), result[19].endDate);
        }
Ejemplo n.º 17
0
        public void IntersectDatePairDicts_WTRFromInLastYearToCurrentYear_TwoKeysDictionary()
        {
            //Arrange
            DateTime     from  = new DateTime(2014, 02, 03);
            DateTime     to    = new DateTime(2014, 02, 12);
            WTRViewModel model = new WTRViewModel();

            DateTime wtrFrom = new DateTime(2013, 12, 12);
            DateTime wtrTo   = new DateTime(2014, 02, 28);
            Dictionary <int, WTRViewModel.StartEndDatePair> dict    = model.GetWeeksInTimeSpan(from, to);
            Dictionary <int, WTRViewModel.StartEndDatePair> wtrDict = model.GetWeeksInTimeSpan(wtrFrom, wtrTo);

            //Act
            var result = model.IntersectDatePairDicts(dict, wtrDict);

            //Assert
            Assert.AreEqual(2, result.Count);
            Assert.AreEqual(6, result.Keys.FirstOrDefault());
            Assert.AreEqual(7, result.Keys.Last());
            Assert.AreEqual(new DateTime(2014, 02, 03), result[6].startDate);
            Assert.AreEqual(new DateTime(2014, 02, 09), result[6].endDate);
            Assert.AreEqual(new DateTime(2014, 02, 10), result[7].startDate);
            Assert.AreEqual(new DateTime(2014, 02, 12), result[7].endDate);
        }