public async Task <IActionResult> RequestReview(int?semesterID, int?professorID) { if ((semesterID == null) || (professorID == null)) { return(NotFound()); } var fullCourseList = await _context.Courses.Include(t => t.Department).Where(i => i.Active == true).AsNoTracking().ToListAsync(); List <GivenCourse> somelist = new List <GivenCourse>(); foreach (var s in fullCourseList) { GivenCourse course = new GivenCourse() { SelectedCourses = s, //CourseID = s.CourseID, Checked = false, }; somelist.Add(course); } RequestReview review = new RequestReview() { Request = await _context.TeachingRequests .Where(i => i.SemesterID == semesterID && i.ProfessorID == professorID) .Include(c => c.ListOfCourses) .ThenInclude(c => c.Course) .SingleOrDefaultAsync(), Courses = somelist, }; return(View(review)); }
public async Task CreateGivenCourse(CreateGivenCourseDto input) { var givenCourse = new GivenCourse { CourseId = input.CourseId, TenantId = input.TenantId, // EducatorId = input.EducatorId }; await _givenCourseRepository.AddAsync(givenCourse); }
public async Task <Course> CreateAdvertisingCourse(CreateAdvertisingCourseDto input) { var course = new Course { Title = input.Title, Description = input.Description, Quota = input.Quota, Price = input.Price, StartDate = input.StartDate, EndDate = input.EndDate, CategoryId = input.CategoryId, LocationId = input.LocationId, OwnerType = input.OwnerType, OwnerId = input.OwnerId, AdvertisingState = AdvertisingState.Continues }; await _courseRepository.AddAsync(course); var count = (input.TenantId.Length > input.EducatorId.Length) ? input.TenantId.Length : input.EducatorId.Length; for (var i = 0; i < count; i++) { var givenCourse = new GivenCourse { CourseId = course.Id, EducatorId = input.EducatorId[i], TenantId = input.TenantId[i] }; await _givenCourseRepository.AddAsync(givenCourse); } var advertisingModel = new AdvertisingCourse { CourseId = course.Id, TenantId = input.AdvertisingInfo.OwnerTenantId, EducatorId = input.AdvertisingInfo.OwnerEducatorId, Price = input.AdvertisingInfo.Price, StartDateTime = input.AdvertisingInfo.StartDateTime, EndDateTime = input.AdvertisingInfo.EndDateTime }; await _advertisingCourseRepository.AddAsync(advertisingModel); return(course); }
public async Task UpdateCourse(UpdateCourseDto input) { var isExistCourse = await _courseRepository.GetAll().AnyAsync(x => x.Id == input.Id); if (!isExistCourse) { throw new Exception("Bu kurs mevcut degil!"); } var course = await _courseRepository.GetAll().FirstAsync(x => x.Id == input.Id); course.Id = input.Id; course.Description = input.Description; course.Title = input.Title; course.Price = input.Price; course.Quota = input.Quota; course.Address = input.Address; course.OnlineVideo = input.OnlineVideo; course.Certificate = input.Certificate; course.CertificateOfParticipation = input.CertificateOfParticipation; course.Requirements = input.Requirements; course.Teachings = input.Teachings; course.DurationCount = input.DurationCount; course.DurationType = input.DurationType; course.DiscountPrice = input.DiscountPrice; course.StartDate = input.StartDate; course.EndDate = input.EndDate; course.CategoryId = input.CategoryId; if (input.File != null) { var imagePath = await _blobService.InsertFile(input.File); course.ImagePath = imagePath; } await _courseRepository.UpdateAsync(course); if (input.EducatorId == null) { long[] a = new long[0]; input.EducatorId = a; } if (input.TenantId == null) { long[] b = new long[0]; input.TenantId = b; } var givenCourses = await _givenCourseRepository.GetAll().Where(x => x.CourseId == input.Id).ToListAsync(); var count = (input.TenantId.Length > input.EducatorId.Length) ? input.TenantId.Length : input.EducatorId.Length; var loopCount = givenCourses.Count > count ? givenCourses.Count : count; for (var i = 0; i <= loopCount; i++) { // db deki her column tenantId educatorId degerini sirayla gunceller.Inputta karsiligi yoksa null degeri atar. // en son ikiside null ise egitmen ve kurum sayisi azalmistir. Columnu siler. if (givenCourses.Count > i) { if (input.TenantId.Length > i) { givenCourses[i].TenantId = input.TenantId[i]; } else { if (givenCourses[i].TenantId.HasValue) { givenCourses[i].TenantId = null; } } if (input.EducatorId.Length > i) { givenCourses[i].EducatorId = input.EducatorId[i]; } else { if (givenCourses[i].EducatorId.HasValue) { givenCourses[i].EducatorId = null; } } await _givenCourseRepository.UpdateAsync(givenCourses[i]); if (givenCourses[i].TenantId != null || givenCourses[i].EducatorId != null) { continue; } await _givenCourseRepository.DeleteAsync(givenCourses[i]); } // tablodaki data input dan az ise geri kalanlari db ye ekler. Fazladan egitmen yada kurum eklenmistir. else if (input.TenantId.Length > i || input.EducatorId.Length > i) { var givenCourse = new GivenCourse { CourseId = course.Id, }; if (input.TenantId.Length > i) { givenCourse.TenantId = input.TenantId[i]; } if (input.EducatorId.Length > i) { givenCourse.EducatorId = input.EducatorId[i]; } await _givenCourseRepository.AddAsync(givenCourse); } } }
public async Task <Course> CreateCourse(CreateCourseDto input) { if (input.EducatorId == null) { long[] a = new long[0]; input.EducatorId = a; } if (input.TenantId == null) { long[] b = new long[0]; input.TenantId = b; } if (input.EducatorId.Length > 0) { var isHaveRightEducator = await _checkEdition.HaveCreateCourseRight <Educator>(input.EducatorId); if (!isHaveRightEducator) { throw new Exception("No right to create course for educator !"); } } if (input.TenantId.Length > 0) { var isHaveRight = await _checkEdition.HaveCreateCourseRight <Tenant>(input.TenantId); if (!isHaveRight) { throw new Exception("No right to create course tenant !"); } } var imagePath = await _blobService.InsertFile(input.File); var course = new Course { Title = input.Title, Description = input.Description, Quota = input.Quota, Address = input.Address, OnlineVideo = input.OnlineVideo, Certificate = input.Certificate, CertificateOfParticipation = input.CertificateOfParticipation, DurationCount = input.DurationCount, DurationType = input.DurationType, Requirements = input.Requirements, Teachings = input.Teachings, Price = input.Price, IsActive = true, DiscountPrice = input.DiscountPrice, StartDate = input.StartDate, EndDate = input.EndDate, CategoryId = input.CategoryId, LocationId = input.LocationId, OwnerType = input.OwnerType, OwnerId = input.OwnerId, ShortDescription = input.ShortDescription, ImagePath = imagePath }; await _courseRepository.AddAsync(course); var count = (input.TenantId.Length > input.EducatorId.Length) ? input.TenantId.Length : input.EducatorId.Length; for (var i = 0; i < count; i++) { var givenCourse = new GivenCourse { CourseId = course.Id, }; if (input.TenantId.Length > i) { givenCourse.TenantId = input.TenantId[i]; } if (input.EducatorId.Length > i) { givenCourse.EducatorId = input.EducatorId[i]; } await _givenCourseRepository.AddAsync(givenCourse); } return(course); }