public void HandleGetProjectEntry_ShouldReturnProjectEntryTableObject_WhenAllParametersButEntriesAreNull()
        {
            var sut     = new ProjectEntryHandler(_context, _projectEntryRepository);
            var entries = _context.ProjectEntries.ToList();

            var result = sut.HandleGetProjectEntry(entries,
                                                   null,
                                                   null,
                                                   null,
                                                   null,
                                                   null,
                                                   DateTime.MinValue,
                                                   DateTime.MaxValue,
                                                   Guid.Empty);

            Assert.That(result, Is.Not.Null);
        }
        public void HandleGetProjectEntry_ShouldDefaultPageNumberToOne_WhenGivenInvalidPageNumber()
        {
            var sut               = new ProjectEntryHandler(_context, _projectEntryRepository);
            var entries           = _context.ProjectEntries.ToList();
            var sortOrder         = "project";
            var currentFilter     = "water";
            var randomEntryNumber = _randomizer.RandomNumber(_minEntryIndex, _maxEntryIndex);
            var searchString      = entries[randomEntryNumber].Description;
            var page              = 100;
            var pageSize          = 25;

            var result = sut.HandleGetProjectEntry(entries,
                                                   sortOrder,
                                                   currentFilter,
                                                   searchString,
                                                   page,
                                                   pageSize,
                                                   DateTime.MinValue,
                                                   DateTime.MaxValue,
                                                   Guid.Empty);

            CollectionAssert.IsNotEmpty(result.Entries);
        }
Example #3
0
        public ActionResult Index(string sortOrder,
                                  string currentFilter,
                                  string searchString,
                                  int?page,
                                  int?pageSize,
                                  DateTime?startDate,
                                  DateTime?endDate,
                                  string employeeID,
                                  bool?getPendingCategoryEntries)
        {
            List <ProjectEntry> entries;
            var employee = (Employee)Session["User"];

            if (employeeID == null)
            {
                employeeID = employee.EmployeeID.ToString();
            }

            var parsedEmployeeID = Guid.Parse(employeeID);

            var contextEmployee = _Context.Employees.
                                  Where(emp => emp.EmployeeID == parsedEmployeeID).
                                  FirstOrDefault();

            var properStartDate = startDate ?? DateTime.Now.Date;
            var weekStart       = properStartDate.AddDays(-(int)properStartDate.DayOfWeek);
            var properEndDate   = endDate ?? DateTime.Now;

            properEndDate = new DateTime(properEndDate.Year,
                                         properEndDate.Month,
                                         properEndDate.Day,
                                         23, 59, 59);
            var endWeekStart = properEndDate.AddDays(-(int)properEndDate.DayOfWeek);
            var endOfWeek    = endWeekStart.AddDays(6);

            if (getPendingCategoryEntries == true)
            {
                entries = contextEmployee.ProjectEntries.Where(entry =>
                                                               entry.SREDCategoryID == null).ToList();
            }
            else if ((searchString != null &&
                      searchString != "") ||
                     (currentFilter != null &&
                      currentFilter != ""))
            {
                entries = contextEmployee.ProjectEntries.ToList();
            }
            else
            {
                entries = contextEmployee.ProjectEntries.Where(entry =>
                                                               entry.DateCreated >= weekStart &&
                                                               entry.DateCreated <= endOfWeek).
                          ToList();
            }

            var projectEntryTable = _projectEntryHandler.HandleGetProjectEntry(entries,
                                                                               sortOrder,
                                                                               currentFilter,
                                                                               searchString,
                                                                               page,
                                                                               pageSize,
                                                                               weekStart,
                                                                               endOfWeek,
                                                                               parsedEmployeeID);

            projectEntryTable.PendingCategories = getPendingCategoryEntries ?? false;

            projectEntryTable.ProjectNames  = _projectEntryHandler.GetProjectNameList(_Context);
            projectEntryTable.CategoryNames = _projectEntryHandler.GetCategoryNameList(_Context);
            projectEntryTable.UserName      = employee.EmployeeID == contextEmployee.EmployeeID ? "My" :
                                              contextEmployee.FirstName + " " +
                                              contextEmployee.LastName.Substring(0, 1) + "'s";
            return(View(projectEntryTable));
        }