Пример #1
0
        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));
        }
Пример #2
0
        public async Task CreateGivenCourse(CreateGivenCourseDto input)
        {
            var givenCourse = new GivenCourse
            {
                CourseId = input.CourseId,
                TenantId = input.TenantId,
                // EducatorId = input.EducatorId
            };

            await _givenCourseRepository.AddAsync(givenCourse);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
                }
            }
        }
Пример #5
0
        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);
        }