Example #1
0
        public async Task <IActionResult> Edit([Bind("Id, Name, Description, StartDate, EndDate, CourseId, ParentStartDate, ParentEndDate, CourseName")] ModuleAddViewModel @module)
        {
            if (ModelState.IsValid)
            {
                var moduleEntity = await _context.Modules.FirstOrDefaultAsync(a => a.Id == @module.Id);

                moduleEntity.Name        = @module.Name;
                moduleEntity.StartDate   = @module.StartDate;
                moduleEntity.EndDate     = @module.EndDate;
                moduleEntity.Description = @module.Description;

                var activitiesOutSideStartEndDate = await GetActivitiesOutSideCourseStartEndDates(moduleEntity);

                if (activitiesOutSideStartEndDate.Count() > 0)
                {
                    var errorCount = 0;
                    foreach (var activity in activitiesOutSideStartEndDate)
                    {
                        ModelState.AddModelError($"activity_start_end_error_{errorCount++}", $"Activity: {activity.Description} {activity.StartDate.ToString(Common.DateFormat)} - {activity.EndDate.ToString(Common.DateFormat)} is outside module Start/End dates");
                    }
                    return(View(@module));
                }

                _context.Update(moduleEntity);
                await _context.SaveChangesAsync();

                TempData["AlertMsg"] = "Saved changes";
                return(RedirectToAction(nameof(Details), new { id = moduleEntity.Id }));
            }

            return(View(@module));
        }
Example #2
0
        public async Task <IActionResult> Create([Bind("Name, Description, StartDate, EndDate, DocId, CourseId, ParentStartDate, ParentEndDate, CourseName")] ModuleAddViewModel @module)
        {
            if (ModelState.IsValid)
            {
                var model = _mapper.Map <Module>(@module);
                _context.Add(model);

                await _context.SaveChangesAsync();

                TempData["AlertMsg"] = "Module added";
                return(RedirectToAction(nameof(Details), new { id = model.Id }));
            }
            return(View(@module));
        }