Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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());
        }
Пример #5
0
        //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));
        }
Пример #6
0
        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()));
        }