Esempio n. 1
0
        /// <summary>
        /// Edit a course with the given id
        /// </summary>
        /// <param name="id">
        /// integer representing the Course ID
        /// example: 1
        /// </param>
        /// <param name="model">
        /// An EditCourseViewModel with the SSN of the student
        /// example: {
        /// "CourseID": 1
        /// "Name": "T-111-PROG"
        /// "StartDate": "230416"
        /// "EndDate": "230416"
        /// }
        /// </param>
        /// <returns>
        /// bool
        /// </returns>
        public bool EditCourseByID(int id, EditCourseViewModel model)
        {
            var courseResult = (
                from course in _db.Courses
                where course.ID == id
                select course
                ).SingleOrDefault();

            if (courseResult == null)
            {
                return(false);
            }

            var courseTemplateResult = (
                from courseTemplate in _db.CoursesTemplates
                where courseTemplate.ID == courseResult.TemplateID
                select courseTemplate
                ).SingleOrDefault();

            courseResult.StartDate = model.StartDate;
            courseResult.EndDate   = model.EndDate;
            _db.SaveChanges();

            return(true);
        }
        public ActionResult AddCourse(int?courseId, bool?confirmation)
        {
            Course course;

            if (courseId.HasValue)
            {
                ViewBag.EditMode = true;
                course           = db.Courses.Find(courseId);
            }
            else
            {
                ViewBag.EditMode = false;
                course           = new Course();
            }

            //BUGGED

            var result = new EditCourseViewModel();

            result.Category     = db.Categories.ToList();
            result.Course       = course;
            result.Confirmation = confirmation;

            return(View(result));
        }
        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. 4
0
        //  [Authorize(Roles ="Teacher")]
        public async Task <IActionResult> Edit(int id, EditCourseViewModel viewModel)
        {
            if (id != viewModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                var course = mapper.Map <Course>(viewModel);
                try
                {
                    _context.Update(course);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CourseExists(viewModel.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(viewModel));
        }
        //[ValidateAntiForgeryToken]
        public IActionResult Edit(EditCourseViewModel ecvm)
        {
            IActionResult result = null;

            // Are there errors
            if (!ModelState.IsValid)
            {
                result = View("Edit");
            }
            else
            {
                try
                {
                    Course crs = new Course()
                    {
                        Description       = ecvm.Description,
                        EstimatedDuration = ecvm.EstimatedDuration,
                        Name       = ecvm.Name,
                        Id         = ecvm.Id,
                        CategoryId = ecvm.CategoryId
                    };
                    _courseDAL.UpdateCourse(crs);

                    result = RedirectToAction("Index", "Course", "");
                }
                catch (Exception ex)
                {
                    result = View();
                }
            }

            return(result);
        }
        public ActionResult EditCourse(int id, EditCourseViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var course = CourseServiceCaller.Get(id);

            if (!String.IsNullOrEmpty(model.CourseName))
            {
                course.Name = model.CourseName;
            }
            if (!String.IsNullOrEmpty(model.CourseProfessor))
            {
                course.Professor = model.CourseProfessor;
            }
            if (!String.IsNullOrEmpty(model.CourseHour.ToString()))
            {
                course.Hour = model.CourseHour ?? 0;
            }
            if (!model.CourseDay.Equals("Default"))
            {
                course.Day = GetWeekDayFromString(model.CourseDay);
            }
            try
            {
                CourseServiceCaller.Update(course);
                return(RedirectToAction("Index", "Course"));
            }
            catch (Exception ex)
            {
                return(View(ex.Message));
            }
        }
Esempio n. 7
0
 private async Task UpdateOrder(EditCourseViewModel course)
 {
     if (!String.IsNullOrEmpty(course.UnitsPagesOrder))
     {
         var orderedUnits = JsonConvert.DeserializeObject <List <OrderedUnit> >(course.UnitsPagesOrder);
         var units        = (await _context.Units.Include(c => c.Pages).Where(c => c.CourseId == course.Id).ToListAsync());
         // iterate over units order
         for (int i = 0; i < orderedUnits.Count; i++)
         {
             // set order of unit: find it and assign the new
             var orderedUnit = orderedUnits[i];
             var u           = units.FirstOrDefault(u => u.Id == orderedUnit.id);
             if (u == null)
             {
                 throw new Exception("Someone tried to reorder unit that doesn't exist any more!");
             }
             u.InCourseOrder = i;
             _context.Update(u); // update unit
                                 // set order of pages in unit
             for (int j = 0; j < orderedUnit.Values.Count; j++)
             {
                 var p = u.Pages.FirstOrDefault(p => p.Id == orderedUnit.Values[j]);
                 if (p == null)
                 {
                     throw new Exception("Someone tried to reorder page that doesn't exist.");
                 }
                 p.InUnitOrder = j;  // set order
                 _context.Update(p); // update
             }
         }
     }
 }
Esempio n. 8
0
        public ActionResult AddCourse(int?kursId, bool?confirm)
        {
            Course kurs;

            if (kursId.HasValue)
            {
                ViewBag.EditMode = true;
                kurs             = db.Course.Find(kursId);
            }
            else
            {
                ViewBag.EditMode = false;
                kurs             = new Course();
            }

            var result = new EditCourseViewModel
            {
                Cat    = db.Category.ToList(),
                Course = kurs
            };

            //  result.confirm = confirm;

            return(View(result));
        }
Esempio n. 9
0
        // GET: Course/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Course course = db.Courses.Find(id);

            if (course == null)
            {
                return(HttpNotFound());
            }

            EditCourseViewModel model = new EditCourseViewModel
            {
                CourseID     = course.CourseID,
                Title        = course.Title,
                Credits      = course.Credits,
                DepartmentID = course.DepartmentID
            };

            PopulateDepartmentsDropDownList(model.DepartmentID);
            return(View(model));
        }
Esempio n. 10
0
        public IActionResult EditCourse(int courseId)
        {
            EditCourseViewModel editCourseView = new EditCourseViewModel();

            editCourseView.Course = context.Courses.FirstOrDefault(c => c.CourseId == courseId);
            return(View(editCourseView));
        }
Esempio n. 11
0
        public ActionResult Edit(EditCourseViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Course course = db.Courses.Find(model.CourseID);

                    if (course == null)
                    {
                        return(HttpNotFound());
                    }

                    course.Title        = model.Title;
                    course.Credits      = model.Credits;
                    course.DepartmentID = model.DepartmentID;

                    db.Entry(course).State = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }
            catch (RetryLimitExceededException /* dex */)
            {
                //Log the error (uncomment dex variable name and add a line here to write a log.
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
            }

            PopulateDepartmentsDropDownList(model.DepartmentID);
            return(View(model));
        }
Esempio n. 12
0
        public async Task EditCourse(EditCourseViewModel model, GoUser user)
        {
            byte[] file = null;
            if (model.Image.Length > 0)
            {
                using (var ms = new MemoryStream())
                {
                    model.Image.CopyTo(ms);
                    file = ms.ToArray();
                }
            }

            var course = this.coursesRepository.All().FirstOrDefault(x => x.Id == model.Id);

            if (course != null && course.CreatorId == user.Id)
            {
                course.Image                = file;
                course.Title                = model.Title;
                course.Description          = model.Description;
                course.StartDate            = model.StartDate;
                course.MaxCountParticipants = model.MaxCountParticipants;
                course.DurationOfDays       = model.DurationOfDays;
                course.CountOfHours         = model.CountOfHours;
                course.Category             = model.Category;
                course.Status               = model.Status;

                await this.coursesRepository.SaveChangesAsync();
            }
        }
Esempio n. 13
0
        public async Task <ActionResult> EditExistingGolfCoursePrivilege(EditCourseViewModel editCourseViewModel)
        {
            if (Session["Username"] == null)
            {
                return(Json(1));
            }
            var userId = _sessionMapperService.MapUserIdFromSessionUsername(Session["Username"].ToString());

            var courseOwnedByUser = await _golfCourseService.RequestCourseOwnedByUser(editCourseViewModel.CourseId, userId);

            if (courseOwnedByUser == null)
            {
                //That user does not own that course but we are not giving up, he may have a pending privilege.
                var privRequestOwnedByUser = await _privilegeRequestHandlerService.RequestUserOwnsPrivilegeRequest(editCourseViewModel.CourseId, userId);

                if (privRequestOwnedByUser == null)
                {
                    //That user really does not own that course or request then..
                    return(Json(2));
                }
                else
                {
                    var privilegeRequestUpdatedResult = await _privilegeRequestHandlerService.RequestEditPrivilegeRequest(editCourseViewModel, privRequestOwnedByUser);

                    return(Json(privilegeRequestUpdatedResult));
                }
            }

            var golfCourseUpdatedResult = await _golfCourseService.RequestEditGolfCourseProperties(editCourseViewModel, courseOwnedByUser);

            return(Json(golfCourseUpdatedResult));
        }
Esempio n. 14
0
        public async Task EditCourse_ShouldNotEditCourseIf_UserIsNotCreator()
        {
            var user = new GoUser {
                Id = "2"
            };

            var coursesRepoBuilder = new CoursesRepositoryBuilder();
            var courseRepo         = coursesRepoBuilder
                                     .WithAll()
                                     .Build();

            var sut = new CoursesService(null, courseRepo, null, Mapper);

            var editCourseViewModel = new EditCourseViewModel
            {
                Id                   = "2",
                Image                = SetupFileMock().Object,
                Title                = "Edit",
                Description          = "Brr",
                MaxCountParticipants = 7,
                StartDate            = DateTime.Now.AddDays(2),
                DurationOfDays       = 5,
                Status               = Status.Practically,
                Category             = Category.Other
            };

            await sut.EditCourse(editCourseViewModel, user);

            coursesRepoBuilder.CoursesRepoMock.Verify(d => d.SaveChangesAsync(), Times.Exactly(0));
        }
Esempio n. 15
0
        public void Update(EditCourseViewModel viewModel)
        {
            var obj = GetById(viewModel.Id);

            obj.Name      = viewModel.Name;
            obj.Parent    = viewModel.Parent;
            obj.Parent_id = viewModel.Parent_id;
            obj.Unit      = viewModel.Unit;
        }
Esempio n. 16
0
        public ActionResult EditCourse(int id)
        {
            if (id < 1)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EditCourseViewModel viewModel = this.service.GetEditCourseViewModel(id);

            return(this.View(viewModel));
        }
Esempio n. 17
0
        /// <summary>
        /// Edit a course with the given id
        /// </summary>
        /// <param name="id">
        /// integer representing the Course ID
        /// example: 1
        /// </param>
        /// <param name="model">
        /// An EditCourseViewModel with the SSN of the student
        /// example: {
        /// "CourseID": 1
        /// "Name": "T-111-PROG"
        /// "StartDate": "230416"
        /// "EndDate": "230416"
        /// }
        /// </param>
        /// <returns>
        /// IActionResult
        /// </returns>
        public IActionResult EditCourseByID(int id, [FromBody] EditCourseViewModel model)
        {
            bool edited = _service.EditCourseByID(id, model);

            if (edited)
            {
                return(new NoContentResult());
            }
            return(NotFound());
        }
Esempio n. 18
0
 public IActionResult Put([FromBody] EditCourseViewModel model, int id)
 {
     if (id < 0)
     {
         return(BadRequest("Unvalide ID"));
     }
     model.Id = id;
     _service.Edit(model);
     return(Ok(model));
 }
Esempio n. 19
0
        public async Task <IActionResult> Edit(EditCourseViewModel viewModel, CancellationToken cancellationToken)
        {
            var course = await _courseRepository.GetById(viewModel.Id, cancellationToken);

            course.Update(viewModel.Name, viewModel.Description);

            await _courseRepository.Save(course, cancellationToken);

            return(View(viewModel));
        }
Esempio n. 20
0
        public IActionResult EditCourse(int id)
        {
            Course course = DbContext.Courses.FirstOrDefault(c => c.CourseId == id);

            EditCourseViewModel model = new EditCourseViewModel {
                CourseName = course.CourseName, Id = id
            };

            return(View(model));
        }
Esempio n. 21
0
 public IActionResult Edit(EditCourseViewModel vm)
 {
     if (ModelState.IsValid)
     {
         vm.Course.Instructor = context.Read(vm.UserId);
         context.UpdateCourse(vm.Course.Id, vm.Course);
         return(RedirectToAction("Index"));
     }
     return(View(vm));
 }
Esempio n. 22
0
        public ActionResult AddCourse(EditCourseViewModel model, HttpPostedFileBase file)
        {
            if (ModelState.IsValid)
            {
                var fileExt  = "";
                var fileName = "";
                if (file != null && file.ContentLength > 0)
                {
                    fileExt  = Path.GetExtension(file.FileName);
                    fileName = Guid.NewGuid() + fileExt;

                    var path = Path.Combine(Server.MapPath(AppConfig.ImageFolder), fileName);
                    file.SaveAs(path);

                    //model.Course.FileOrPicturePhotoName = fileName;
                }

                if (model.Course.CourseId > 0)
                {
                    var oldFileName = Path.Combine(Server.MapPath(AppConfig.ImageFolder), model.Course.FileOrPicturePhotoName);
                    System.IO.File.Delete(oldFileName);

                    model.Course.FileOrPicturePhotoName = fileName;
                    db.Entry(model.Course).State        = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("AddCourse", new { confirmation = true, msg = "Successfully modified!" }));
                }
                else
                {
                    if (!String.IsNullOrEmpty(fileExt))
                    {
                        model.Course.InsertDate             = DateTime.Now;
                        model.Course.FileOrPicturePhotoName = fileName;

                        db.Entry(model.Course).State = EntityState.Added;
                        db.SaveChanges();

                        return(RedirectToAction("AddCourse", new { confirmation = true, msg = "Successfully added!" }));
                    }
                    else
                    {
                        ModelState.AddModelError("", "No image choosen");
                        var categories = db.Categories.ToList();
                        model.Categories = categories;
                        return(View(model));
                    }
                }
            }
            else
            {
                var categories = db.Categories.ToList();
                model.Categories = categories;
                return(View(model));
            }
        }
Esempio n. 23
0
        public void EditCourse(EditCourseViewModel model, int id)
        {
            var course = _db.Courses.SingleOrDefault(x => x.ID == id);

            if (course != null)
            {
                course.StartDate = model.StartDate;
                course.EndDate   = model.EndDate;
                _db.SaveChanges();
            }
        }
Esempio n. 24
0
        public async Task <IActionResult> Edit(EditCourseViewModel viewModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(viewModel));
            }

            await this.coursesService.EditCourseAsync(viewModel);

            return(this.RedirectToAction("Details", "Courses", new { id = viewModel.Id }));
        }
Esempio n. 25
0
        public async Task <ActionResult> EditCourseModal(int courseId)
        {
            var course = await _courseAppService.Get(new EntityDto <int>(courseId));

            var model = new EditCourseViewModel()
            {
                Course           = course,
                SelectStatusCode = course.Status,
            };

            return(View("_EditCourseModal", model));
        }
Esempio n. 26
0
        public async Task <IActionResult> Edit(EditCourseViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(this.View(model));
            }

            var user = await userManager.GetUserAsync(HttpContext.User);

            await this.coursesService.EditCourse(model, user);

            return(Redirect($"/Courses/Details/{model.Id}"));
        }
Esempio n. 27
0
        public async Task <IActionResult> Edit(Guid id, EditCourseViewModel course)
        {
            if (ModelState.IsValid)
            {
                Course new_course = await _courseService.EditCourse(id, course);

                if (new_course != null)
                {
                    return(RedirectToAction("Details", "Subjects", new { id = new_course.SubjectId }));
                }
            }
            return(View(course));
        }
Esempio n. 28
0
        public ActionResult EditCourse([Bind(Include = "Id,Title,ShortDescription,Description")] EditCourseBindingModel model)
        {
            if (this.ModelState.IsValid)
            {
                this.service.EditCourse(model);

                return(this.RedirectToAction("Detailed", "Courses", new { area = "Courses", id = model.Id }));
            }

            EditCourseViewModel viewModel = this.service.GetEditCourseViewModel(model.Id);

            return(this.View(viewModel));
        }
Esempio n. 29
0
 public ActionResult Edit([Bind(Include = "ID,Name,TeacherID")] EditCourseViewModel view)
 {
     if (ModelState.IsValid)
     {
         Course course = new Course();
         course.ID              = view.ID;
         course.Name            = view.Name;
         course.TeacherID       = User.Identity.GetUserId();
         db.Entry(course).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(view));
 }
Esempio n. 30
0
        public IActionResult EditCourse([FromBody] EditCourseViewModel toEdit, int id)
        {
            CourseDetailsDTO dto = _service.GetCourseByID(id);

            if (dto != null)
            {
                _service.EditCourse(toEdit, id);
                return(Ok());
            }
            else
            {
                return(NotFound());
            }
        }
Esempio n. 31
0
        public ActionResult EditCourse(int? id)
        {
            if (id == null )
            {
                ViewBag.Error = "Inget id har angivits";
                return View("~/Views/Error/Index.cshtml");
            }

            var course = db.Courses.FirstOrDefault(c => c.Id == id);
            if (course == null)
            {
                ViewBag.Error = "Ingen kurs har hittats";
                return View("~/Views/Error/Index.cshtml");
            }

            EditCourseViewModel model = new EditCourseViewModel();      //Vi lägger info om kursen i en ViewModel-modell.
            model.Description = course.Description;
            model.Name = course.Name;
            model.StartDate = course.StartDate;
            model.EndDate = course.EndDate;
            ViewBag.id = course.Id;

            Menu(Home: true);
            SetBreadcrumbs(
                one: new MenyItem { Link = "~/Teacher/", Text = "Se alla kurser" },
                two: new MenyItem { Link = "~/Teacher/Course/" + course.Id, Text = course.Name });

            ViewBag.AtEarliest = DateTime.Today.AddDays(1);

            return View(model);
        }
Esempio n. 32
0
        public ActionResult EditCourse(EditCourseViewModel model, int? id)
        {
            ViewBag.AtEarliest = DateTime.Today.AddDays(1);

            Menu(Home: true);
            SetBreadcrumbs(
                one: new MenyItem { Link = "~/Teacher/", Text = "Se alla kurser" },
                three: new MenyItem { Link = "~/Teacher/Course/" + id, Text = "Tillbaka till kurs" });

            bool hasError = false;
            if (id == null)
            {
                ModelState.AddModelError("", "Finns inget id");
                hasError = true;
            }

            var course = db.Courses.FirstOrDefault(c => c.Id == id);
            if (course == null)
            {
                ModelState.AddModelError("", "Finns kurs id");
                hasError = true;
            }
            if (!ModelState.IsValid)        //MVC kollar om modellen har några fel själv, t ex det som är required; att strängen har en viss längd m m.
            {
                hasError = true;
            }

            if (model.StartDate != null)
            {
                model.StartDate = new DateTime(model.StartDate.Year, model.StartDate.Month, model.StartDate.Day, 0, 0, 0);
            }
            if (model.EndDate != null)
            {
                model.EndDate = new DateTime(model.EndDate.Year, model.EndDate.Month, model.EndDate.Day, 23, 59, 0);
            }

            if (model.StartDate < DateTime.Today.AddDays(1))       //Vi kollar att den inte är mindre än morgondagen. D v s vi lägger till 1 till i dag, för att få morgondagen. Kollar att startdatumet ligger i framtiden.
            {
                ModelState.AddModelError("StartDate", "Kursen kan inte starta före morgondagens datum.");
                hasError = true;
            }
            if (model.EndDate < model.StartDate)
            {
                ModelState.AddModelError("EndDate", "Kursen kan inte sluta före kursens startdatum. ");
                hasError = true; //D v s nu har det inträffat ett Error.
            }
                if (hasError)
            {
                ViewBag.id = id != null ? (int)id : 0;            //Parameter castas om till en int. //Om id inte är null, så skickar vi id som parametern ViewBag = id. Annars om id är null, så sätter vi ViewBag till 0 per default.
                return View(model);                               //Skickar tillbaka till samma vy, nu med alla felmeddelanden.
            }

            course.Description = model.Description;                 // Coursens Description sätts lika med modellens Description, för att modellen representerar det vi ändrat i kursen.
            course.Name = model.Name;
            course.StartDate = model.StartDate;
            course.EndDate = model.EndDate;

            db.Entry(course).State = EntityState.Modified; //Vi säger till databasen att vi uppdaterar/modifierar något. Ska göras så, enligt Entity Framework.
            db.SaveChanges();

            return Redirect("~/Teacher/Course/" + course.Id); //Skickar vidare till kursens vy, för att se våra uppdateringar.
        }