public async Task <IActionResult> Edit(Guid id, [Bind("Id,Name,StartDate,EndDate,Description,ModuleId,ActivityTypeId")] LMSActivity lMSActivity) { if (id != lMSActivity.Id) { return(NotFound()); } if (ModelState.IsValid) { lMSActivity.ActivityType = await _context.ActivityTypes.Where(act => act.Id == lMSActivity.ActivityTypeId).FirstOrDefaultAsync(); try { _repository.UpdateEntity(lMSActivity); await _repository.SaveAllAsync(); } catch (DbUpdateConcurrencyException) { if (!await _repository.LMSActivityExistsAsync(lMSActivity.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["ActivityTypeId"] = new SelectList(_context.ActivityTypes, "Id", "Name", lMSActivity.ActivityTypeId); ViewData["ModuleId"] = new SelectList(_context.Modules, "Id", "Name", lMSActivity.ModuleId); return(View(lMSActivity)); }
public async Task <ActionResult <LMSActivity> > GetActivityById(string id) { Guid idG = Guid.Parse(id); LMSActivity Activity = await _context.LMSActivity.FindAsync(idG); if (Activity == null) { return(NotFound()); } return(Ok(Activity)); }
public async Task <IActionResult> Create([Bind("Id,Name,StartDate,EndDate,Description,ModuleId,ActivityTypeId")] LMSActivity lMSActivity) { if (ModelState.IsValid) { await _repository.AddEntityAsync(lMSActivity); await _repository.SaveAllAsync(); return(RedirectToAction(nameof(Index))); } ViewData["ActivityTypeId"] = new SelectList(_context.ActivityTypes, "Id", "Name", lMSActivity.ActivityTypeId); ViewData["ModuleId"] = new SelectList(_context.Modules, "Id", "Name", lMSActivity.ModuleId); return(View(lMSActivity)); }
public async Task <ActionResult <LMSActivity> > Put(string id, [FromBody] ActivityFormModel activtyVm) { //if (editModel.criD==null) if (id != activtyVm.Id.ToString()) { return(BadRequest()); } // Guid Crid = new Guid(activtyVm.id); LMSActivity Activity = new LMSActivity { Id = activtyVm.Id.Value, Name = activtyVm.Name, StartDate = activtyVm.StartDate, EndDate = activtyVm.EndDate, Description = activtyVm.Description, ActivityTypeId = activtyVm.ActivityTypeId, ModuleId = Guid.Parse(activtyVm.moduleid) }; _context.Entry(Activity).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ActivityExists(activtyVm.Id.Value)) { return(NotFound()); } else { throw; } } return(NoContent()); }
//public async Task<ActionResult<LMSActivity>> PostActivity([FromBody] dynamic activtyVm) public async Task <ActionResult <LMSActivity> > PostActivity([FromBody] ActivityFormModel activtyVm) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } LMSActivity activity = new LMSActivity { Name = activtyVm.Name, StartDate = activtyVm.StartDate, EndDate = activtyVm.EndDate, Description = activtyVm.Description, ModuleId = Guid.Parse(activtyVm.moduleid), ActivityTypeId = activtyVm.ActivityTypeId }; _context.Add(activity); await _context.SaveChangesAsync(); return(Created("", activity)); }
public async Task <ActionResult <Course> > Clone([FromForm] CloneFormModel CloneFormModel) { string userid = (await _userManager.FindByNameAsync(User.Identity.Name)).Id; var tempteacher = await _userManager.GetUsersInRoleAsync("Teacher"); var allteachers = tempteacher.Select(u => u.Id); /*var config = new MapperConfiguration(cfg => { * * cfg.CreateMap<ICollection<Module>,List<CloneModuleModel>>(); * cfg.CreateMap<ICollection<LMSActivity>, List<CloneActivityModel>>(); * cfg.CreateMap<ICollection<Document>,List<CloneDocumentModel>>(); * * }); * IMapper iMapper = config.CreateMapper();*/ //CloneFormModel => old courseid, new start, new image may be null // get course var coursedata = await _context.Courses .Include(c => c.Modules) .ThenInclude(m => m.LMSActivities) .ThenInclude(a => a.ActivityType) .FirstOrDefaultAsync(c => CloneFormModel.Id == c.Id.ToString()); /// int datediff = ((TimeSpan) (CloneFormModel.NewDate - coursedata.StartDate).Days; CloneFormModel.NewDate = CloneFormModel.NewDate; DateTime dt = DateTime.Parse(CloneFormModel.NewDate.ToShortDateString()); DateTime dt1 = DateTime.Parse(coursedata.StartDate.ToShortDateString()); int noOfDays = (int)dt.Subtract(dt1).TotalDays; // dates to add var tmpcourse = new Course { Name = CloneFormModel.Name, Description = CloneFormModel.Description, StartDate = CloneFormModel.NewDate, CourseImgPath = (CloneFormModel.FileData == null)?coursedata.CourseImgPath :@"..\assets\img\" + CloneFormModel.FileData.FileName }; // update course name and date // add course, Save Old and new courseid await _context.Courses.AddRangeAsync(tmpcourse); await _context.SaveChangesAsync(); CloneFormModel.NewCourseId = tmpcourse.Id; var cloneModules = new List <CloneModuleModel>(); var cloneActivities = new List <CloneActivityModel>(); foreach (var mod in coursedata.Modules) { Module tmp2 = new Module { Name = mod.Name , Description = mod.Description , StartDate = mod.StartDate.AddDays(noOfDays) , EndDate = mod.EndDate.AddDays(noOfDays) , CourseId = CloneFormModel.NewCourseId.Value }; // add modules Save old and new modulid await _context.Modules.AddAsync(tmp2); await _context.SaveChangesAsync(); cloneModules.Add(new CloneModuleModel { Id = mod.Id, Name = mod.Name, Description = mod.Description, StartDate = mod.StartDate.AddDays(noOfDays), EndDate = mod.EndDate.AddDays(noOfDays), CourseId = CloneFormModel.NewCourseId.Value, NewModuleid = tmp2.Id }); foreach (var act in coursedata.Modules.Where(m => m.Id == mod.Id).Select(m => m.LMSActivities).FirstOrDefault()) { LMSActivity tmpact = new LMSActivity { Name = act.Name , Description = act.Description , StartDate = act.StartDate.AddDays(noOfDays) , EndDate = act.EndDate.AddDays(noOfDays) , ActivityTypeId = act.ActivityTypeId , ModuleId = tmp2.Id }; // add activitities save old and new activitiyid await _context.LMSActivity.AddAsync(tmpact); await _context.SaveChangesAsync(); cloneActivities.Add(new CloneActivityModel { Id = act.Id, Name = act.Name , StartDate = act.StartDate.AddDays(noOfDays) , EndDate = act.EndDate.AddDays(noOfDays) , ActivityTypeId = act.ActivityTypeId , moduleid = tmp2.Id , NewActivityId = tmpact.Id }); } } // get documents List <Document> documents = new List <Document>(); documents.AddRange(await _context.Documents.Where(d => d.CourseId.ToString() == CloneFormModel.Id) //.Where(d => (tempteacher.id).Contains(d.LMSUserId)) .ToArrayAsync()); var Modoc = _context.Documents//.Where(d => (tempteacher.id).Contains(d.LMSUserId)) .Join(cloneModules, d => d.ModuleId, (CloneModuleModel m) => m.Id, (d, m) => new Document { Name = d.Name, UploadDate = DateTime.Now, Description = d.Description, Path = d.Path, LMSUserId = userid, CourseId = null, ModuleId = m.NewModuleid, LMSActivityId = null, DocumentTypeId = d.DocumentTypeId } ); documents.AddRange(Modoc); var Actdoc = _context.Documents //.Where(d => (tempteacher.id).Contains(d.LMSUserId)) .Join(cloneActivities, d => d.LMSActivityId, (CloneActivityModel m) => m.Id, (d, m) => new Document { Name = d.Name, UploadDate = DateTime.Now, Description = d.Description, Path = d.Path, LMSUserId = userid, CourseId = null, ModuleId = null, LMSActivityId = m.NewActivityId, DocumentTypeId = d.DocumentTypeId } ); documents.AddRange(Actdoc); // update documents, courseid, moduleid and activitiyid documents.Where(d => d.CourseId != null && d.CourseId.ToString() == CloneFormModel.Id).ToList().ForEach(d => d.CourseId = CloneFormModel.NewCourseId); // add documents await _context.Documents.AddRangeAsync(documents.Select(d => new Document { Name = d.Name, UploadDate = DateTime.Now, Description = d.Description, Path = d.Path, LMSUserId = userid, CourseId = d.CourseId, ModuleId = d.ModuleId, LMSActivityId = d.LMSActivityId, DocumentTypeId = d.DocumentTypeId })); await _context.SaveChangesAsync(); // if a img add img. if (CloneFormModel.FileData != null && CloneFormModel.FileData.Length > 0) { string path = _programrepository.GetCourseImageUploadPath(); await _documentrepository.UploadFile(CloneFormModel.FileData, path); } return(Ok(new Course())); }