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); }
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); }
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); }
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)); }
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); }
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)); }
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); }
public void SortFactorDataByStartDate_FactorDetailsNull_NoException() { //Arrange WTRViewModel model = new WTRViewModel(); //Act model.SortFactorDataByStartDate(); //Assert Assert.IsNull(model.FactorDetails); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }