Exemple #1
0
        public IActionResult ListProjectWeeks(int?ProjectID, string FromWeekID = "", string ToWeekID = "")
        {
            if (ProjectID == null)
            {
                return(NotFound());
            }
            // TODO add regex check on from and to week id

            var weeks        = _context.Week.Where(e => e.ProjectID == ProjectID);
            var weekComparer = new CompareWeekModel();
            var WeekIDRegex  = new Regex(@"^\d\d-\d\d\d\d$");

            if (FromWeekID != null && FromWeekID != "" && WeekIDRegex.IsMatch(FromWeekID)) // FromWeekID is valid
            {
                if (ToWeekID != null && ToWeekID != "" && WeekIDRegex.IsMatch(ToWeekID))   // FromWeekID and ToWeekID is valid
                {
                }
                else // FromWeekID is valid and ToWeekID is invalid
                {
                    var fromDate = WeekModel.GetMondayFromWeekID(FromWeekID);
                    ToWeekID = WeekModel.GetIso8601WeekOfYear(fromDate.AddDays(21)) + "-" + DateTime.Now.Year;
                }
            }
            else // FromWeekID is invalid
            {
                if (ToWeekID != null && ToWeekID != "" && WeekIDRegex.IsMatch(ToWeekID)) // FromWeekID is invalid and ToWeekID is valid
                {
                    var toDate = WeekModel.GetMondayFromWeekID(ToWeekID);
                    FromWeekID = WeekModel.GetIso8601WeekOfYear(toDate.AddDays(-21)) + "-" + DateTime.Now.Year;
                }
                else // FromWeekID is invalid and ToWeekID is invalid
                {
                    FromWeekID = WeekModel.GetIso8601WeekOfYear(DateTime.Now) + "-" + DateTime.Now.Year;
                    ToWeekID   = WeekModel.GetIso8601WeekOfYear(DateTime.Now.AddDays(21)) + "-" + DateTime.Now.Year;
                }
            }
            weeks = weeks.Where(e => weekComparer.CompareWeekIDs(e.WeekID, ToWeekID) <= 0 && weekComparer.CompareWeekIDs(e.WeekID, FromWeekID) >= 0);

            var weekList = weeks.ToList();

            weekList.Sort(new CompareWeekModel());
            var weeksView = new List <DetailsWeekViewModel>();

            foreach (var week in weekList)
            {
                weeksView.Add(_WeeksRepository.PrepareWeekViewModel(_context, week));
            }
            var ListProjectWeekViewModel = new ListProjectWeekViewModel
            {
                ProjectID      = ProjectID.Value,
                FromWeekID     = FromWeekID,
                ToWeekID       = ToWeekID,
                WeekViewModels = weeksView
            };

            return(View(ListProjectWeekViewModel));
        }
Exemple #2
0
        public async Task <IActionResult> Details(int?ProjectID, string WeekID)
        {
            if (ProjectID == null || WeekID == null)
            {
                return(NotFound());
            }
            var week = await _context.Week
                       .FirstOrDefaultAsync(m => m.ProjectID == ProjectID && m.WeekID == WeekID);

            if (week == null)
            {
                return(NotFound());
            }
            var weekViewModel = _WeeksRepository.PrepareWeekViewModel(_context, week);

            return(View(weekViewModel));
        }