public async Task <IActionResult> EditCourse(EditCourseViewModel inputModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(inputModel));
            }

            var imageUri = string.Empty;

            if (inputModel.Thumbnail != null)
            {
                imageUri = this.coursesService.UploadImageToCloudinary(inputModel.Thumbnail.OpenReadStream());
            }

            var userId = this.userManager.GetUserId(this.User);

            await this.coursesService.EditCourse(inputModel.Id, inputModel.Name, inputModel.CategoryName, inputModel.Difficulty, imageUri, inputModel.Description, userId);

            var viewModel = new CourseIdViewModel
            {
                CourseId = inputModel.Id,
            };

            return(this.RedirectToAction("EditLessons", "Lessons", viewModel));
        }
Esempio n. 2
0
        public async Task UpdateCourseAsync([FromBody] CourseIdViewModel course)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var newCourse = await courseRepository.Get(course.Id);

                    if (newCourse == null)
                    {
                        throw new Exception("Курс не найден!");
                    }

                    newCourse.Number = course.Number.Value;

                    await courseRepository.Update(newCourse);

                    string msg = String.Format("Курс '{0}' успешно изменен!", course.Number);
                    Response.StatusCode = StatusCodes.Status200OK;
                    await Response.WriteAsync(JsonConvert.SerializeObject(new { success = msg },
                                                                          new JsonSerializerSettings {
                        Formatting = Formatting.Indented
                    }));
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("error", e.Message);
                    await Response.BadRequestHelper(ModelState.Values);
                }
            }
            else
            {
                await Response.BadRequestHelper(ModelState.Values);
            }
        }
Esempio n. 3
0
        public async Task <ActionResult <string> > GetCourseName([FromBody] CourseIdViewModel CourseId)
        {
            var res = Json(new {
                Name = (await _repository.GetCourseName(CourseId.CourseId))
            });

            return(Ok(res));
        }
        public IActionResult Publish(CourseIdViewModel model)
        {
            var course = this._context.Courses.FirstOrDefault(p => p.Id == model.Id);

            if (course != null)
            {
                course.IsPublished = true;
                this._context.Courses.Update(course);
                this._context.SaveChanges();
                return(Ok());
            }
            return(null);
        }
        public async Task <IActionResult> CompleteLesson(string lessonId, string courseId)
        {
            var userId = this.userManager.GetUserId(this.User);

            await this.lessonsService.CreateUserLesson(userId, lessonId);

            var viewModel = new CourseIdViewModel
            {
                CourseId = courseId,
            };

            return(this.RedirectToAction("Study", "Courses", viewModel));
        }
Esempio n. 6
0
        public async Task <ActionResult <Boolean> > DeleteUser([FromBody] CourseIdViewModel id)
        {
            var userid = id.CourseId;
            var user   = await _userManager.FindByIdAsync(userid);

            var result = await _userManager.DeleteAsync(user);

            var userId = await _userManager.GetUserIdAsync(user);

            if (!result.Succeeded)
            {
                throw new InvalidOperationException($"Unexpected error occurred deleteing user with ID '{userId}'.");
            }

            var tempcoursuser = _context.CourseUsers.Where(cu => cu.LMSUserId == userid);

            _context.CourseUsers.RemoveRange(tempcoursuser);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }

            _logger.LogInformation("User with ID '{UserId}' deleted themselves.", userId);


            var res = Json(new
            {
                Ok = true
            });

            return(Ok(res));
        }
Esempio n. 7
0
        public async Task <ActionResult <ICollection <CourseUserViewModel> > > GetusersOff([FromBody] CourseIdViewModel CourseId)
        {
            var res = (await _repository.GetUsers(CourseId.CourseId, false))
                      .Select(cu => new CourseUserViewModel {
                Userid = cu.Id, FirstName = cu.FirstName, LastName = cu.LastName
            }).ToList();

            return(Ok(res));
        }
Esempio n. 8
0
        public async Task <ActionResult <string> > GetUser([FromBody] CourseIdViewModel userid)
        {
            var id = userid.CourseId;

            if (!User.IsInRole("Teacher"))
            {
                if (id != null)
                {
                    throw new AccessViolationException("A student may just access him/her-self");
                }
            }
            var usertmp = await _userManager.FindByNameAsync(User.Identity.Name);

            if (id == null)
            {
                id = usertmp.Id;
            }

            List <LMSUser> workonuser = await _userManager.Users.Where(u => id == null || u.Id == id)

                                        .ToListAsync();

            /* var res = workonuser.Select(
             *      u => new ManageUserViewModel
             *     {
             *           Id = u.Id,
             *           Email = u.Email,
             *           FirstName = u.FirstName,
             *           LastName = u.LastName,
             *           Password = "",
             *           Confirmpassword = "",
             *
             *       }
             *
             *
             *   );*/
            var res = new List <ManageUserViewModel>();

            foreach (var user in workonuser)
            {
                var roles = await _userManager.GetRolesAsync(user);

                if (roles.Count == 1)
                {
                    res.Add(
                        new ManageUserViewModel
                    {
                        Id              = user.Id,
                        Email           = user.Email,
                        FirstName       = user.FirstName,
                        LastName        = user.LastName,
                        Password        = "",
                        Confirmpassword = "",
                        Role            = roles[0]
                    }
                        );
                }
                else
                {
                    res.Add(
                        new ManageUserViewModel
                    {
                        Id              = user.Id,
                        Email           = user.Email,
                        FirstName       = user.FirstName,
                        LastName        = user.LastName,
                        Password        = "",
                        Confirmpassword = "",
                        Role            = string.Join(", ", roles)
                    }
                        );
                }
            }

            /*   var res = Json(new
             * {
             *     Name = workonuser.FirstName + " " + workonuser.LastName
             *
             *
             * });
             *
             */

            /* var res = (await _repository.GetUsers(CourseId.CourseId, false))
             *   .Select(cu => new CourseUserViewModel { Userid = cu.Id, FirstName = cu.FirstName, LastName = cu.LastName }).ToList();*/
            return(Ok(res));
        }