Exemple #1
0
        public void AddCourse(Course course)
        {
            _unitOfWork.CourseRepository.Add(course);
            _unitOfWork.Completed();
            var tagIds = new List <int>()
            {
                1, 2, 3
            };

            foreach (var tagId in tagIds)
            {
                var courseTags = new List <CourseTag>();

                var courseTag = new CourseTag
                {
                    CourseId = course.Id,
                    TagId    = tagId
                };

                courseTags.Add(courseTag);
                _unitOfWork.CourseRepository.AddToCourseTag(courseTags);
            }

            //_unitOfWork.Completed();
        }
Exemple #2
0
    private Color GetBorderTagColor(CourseTag courseTag)
    {
        Color color;

        switch (courseTag)
        {
        case CourseTag.DESIGN:
            color = design_color;
            break;

        case CourseTag.TESTING:
            color = testing_color;
            break;

        case CourseTag.ART:
            color = art_color;
            break;

        case CourseTag.SOUND:
            color = sound_color;
            break;

        default:
            color = coding_color;
            break;
        }

        return(color);
    }
Exemple #3
0
        private async Task <List <CourseTag> > _getUpdatedCourseTagsAsync(List <CourseTag> courseTags, int[] tagIds, int courseId)
        {
            List <CourseTag> removableTags = new List <CourseTag>();

            removableTags.AddRange(courseTags);

            foreach (var tagId in tagIds)
            {
                CourseTag tag = courseTags.FirstOrDefault(x => x.TagId == tagId);

                if (tag != null)
                {
                    removableTags.Remove(tag);
                }
                else
                {
                    if (!await _context.Tags.AnyAsync(x => x.Id == tagId))
                    {
                        throw new Exception("Tag does not exist!");
                    }

                    tag = new CourseTag
                    {
                        TagId    = tagId,
                        CourseId = courseId
                    };

                    courseTags.Add(tag);
                }
            }

            courseTags = courseTags.Except(removableTags).ToList();

            return(courseTags);
        }
        public async Task CreateAsync(CreateCourseInputModel input)
        {
            Course course = new Course
            {
                Name        = input.Name,
                Description = input.Description,
                Price       = input.Price,
                SubjectId   = input.SubjectId,
                StartDate   = input.StartDate,
                EndDate     = input.EndDate,
            };

            string fileName  = course.Name + Guid.NewGuid().ToString();
            string remoteUrl = await this.UploadImageAsync(input.Image, fileName);

            File file = new File
            {
                Extension = System.IO.Path.GetExtension(input.Image.FileName),
                RemoteUrl = remoteUrl,
                CourseId  = course.Id,
                UserId    = input.UserId,
            };

            await this.filesRepository.AddAsync(file);

            await this.filesRepository.SaveChangesAsync();

            course.FileId = file.Id;
            await this.coursesRepository.AddAsync(course);

            await this.coursesRepository.SaveChangesAsync();

            foreach (var tagId in input.Tags)
            {
                CourseTag courseTag = new CourseTag
                {
                    CourseId = course.Id,
                    TagId    = tagId,
                };

                await this.courseTagsRepository.AddAsync(courseTag);
            }

            await this.courseTagsRepository.SaveChangesAsync();

            foreach (var lecturerId in input.Lecturers)
            {
                CourseLecturer courseLecturer = new CourseLecturer
                {
                    CourseId   = course.Id,
                    LecturerId = lecturerId,
                };

                await this.courseLecturersRepository.AddAsync(courseLecturer);
            }

            await this.courseLecturersRepository.SaveChangesAsync();
        }
Exemple #5
0
        private static CourseTag TagMapCourse(IDataReader reader)
        {
            CourseTag item          = new CourseTag();
            int       startingIndex = 0;

            item.CourseId = reader.GetSafeInt32(startingIndex++);
            item.TagId    = reader.GetSafeInt32(startingIndex++);
            item.TagName  = reader.GetSafeString(startingIndex++);

            return(item);
        }
Exemple #6
0
    private CourseTag AddCourseTag(string tag)
    {
        CourseTag courseType = CourseTag.NONE;

        switch (tag)
        {
        case INST_SET_NONE:
            courseType = CourseTag.NONE;
            break;

        case INST_SET_MATH:
            courseType = CourseTag.MATH;
            break;

        case INST_SET_PROGRAMMING:
            courseType = CourseTag.PROGRAMMING;
            break;

        case INST_SET_ENGINE:
            courseType = CourseTag.ENGINE;
            break;

        case INST_SET_AI:
            courseType = CourseTag.AI;
            break;

        case INST_SET_NETWORK:
            courseType = CourseTag.NETWORK;
            break;

        case INST_SET_ART:
            courseType = CourseTag.ART;
            break;

        case INST_SET_DESIGN:
            courseType = CourseTag.DESIGN;
            break;

        case INST_SET_TESTING:
            courseType = CourseTag.TESTING;
            break;

        case INST_SET_SOUND:
            courseType = CourseTag.SOUND;
            break;
        }

        return(courseType);
    }
Exemple #7
0
        public Course Get(int id)
        {
            Course course = null;

            DataProvider.ExecuteCmd(GetConnection, "dbo.Courses_SelectByIdV2",
                                    inputParamMapper : delegate(SqlParameterCollection paramCollection)
            {
                paramCollection.AddWithValue("@Id", id);
            }, map : delegate(IDataReader reader, short set)
            {
                if (set == 0)
                {
                    course = MapCourse(reader);
                }
                else if (set == 1)
                {
                    CourseTag ct = TagMapCourse(reader);
                    if (course.Tags == null)
                    {
                        course.Tags = new List <CourseTag>();
                    }
                    course.Tags.Add(ct);
                }

                else if (set == 2)
                {
                    CourseInstructors imc = InstructorsMapCourse(reader);
                    if (course.Instructors == null)
                    {
                        course.Instructors = new List <CourseInstructors>();
                    }
                    course.Instructors.Add(imc);
                }

                else if (set == 3)
                {
                    BaseCourse bc = PrereqsMapCourse(reader);
                    if (course.Prereqs == null)
                    {
                        course.Prereqs = new List <BaseCourse>();
                    }
                    course.Prereqs.Add(bc);
                }
            });
            return(course);
        }
Exemple #8
0
        /// <summary>
        /// 新增課程的標籤
        /// </summary>
        /// <param name="CourseIDList"></param>
        public void AddCourseCodeTag(List <string> CourseIDList)
        {
            if (CourseCodeTagID != "")
            {
                List <CourseTagRecord> recList = new List <CourseTagRecord>();
                foreach (string id in CourseIDList)
                {
                    CourseTagRecord rec = new CourseTagRecord();
                    rec.RefCourseID = id;
                    rec.RefTagID    = CourseCodeTagID;
                }

                // 新增課程標籤
                if (recList.Count > 0)
                {
                    CourseTag.Insert(recList);
                }
            }
        }
        public IActionResult AddTagToCourse([FromBody] CourseTag courseTag, [FromQuery] string action)
        {
            var lang = Request.Headers["language"].ToString();
            var errorMessages = new List<string>();
            try
            {
                var course = _courseRepository.FindById(courseTag.CourseId);
                var courseTags = course.CourseTags;

                if (action == "add")
                {
                    var newTag = _tagRepository.FindById(courseTag.TagId);
                    var newCourseTag = new CourseTag()
                    {
                        CourseId = courseTag.CourseId,
                        Course = course,
                        TagId = courseTag.TagId,
                        Tag = newTag
                    };
                    courseTags.Add(newCourseTag);
                }
                else if(action == "remove")
                {
                    var currentCourseTag = courseTags
                                 .SingleOrDefault(x => x.TagId == courseTag.TagId && x.CourseId == courseTag.CourseId);

                    courseTags.Remove(currentCourseTag);
                }
                course.CourseTags = courseTags;

                var updatedCourse = _courseRepository.Update(course);

                var response = ResponseGenerator.GenerateCourseResponse(updatedCourse, true);

                return Ok(new { updatedCourse = response });
            }
            catch
            {
                errorMessages.Add(_translator.GetTranslation("ERROR", lang));
                return BadRequest(new { errors = errorMessages });
            }
        }
Exemple #10
0
 private void AddCourseTag(Course course, List <string> tags)
 {
     if (course.Id > 0)
     {
         _courseTagRepository.DeleteMulti(x => x.CourseId == course.Id);
     }
     else
     {
         course.CourseTags = new List <CourseTag>();
     }
     if (tags != null && tags.Count > 0)
     {
         foreach (var newTag in tags)
         {
             var tag = new CourseTag();
             tag.Tag = newTag;
             course.CourseTags.Add(tag);
         }
     }
 }
Exemple #11
0
        public List <Course> GetByUserId(string userId)
        {
            List <Course>            list = new List <Course>();
            Dictionary <int, Course> book = new Dictionary <int, Course>();

            DataProvider.ExecuteCmd(GetConnection, "dbo.UserCourses_SelectByUserId"
                                    , inputParamMapper : delegate(SqlParameterCollection paramCollection)
            {
                paramCollection.AddWithValue("@userId", userId);
            }, map : delegate(IDataReader reader, short set)
            {
                if (set == 0)
                {
                    Course course     = new Course();
                    int startingIndex = 0;

                    course.Id         = reader.GetSafeInt32(startingIndex++);
                    course.CourseName = reader.GetSafeString(startingIndex++);
                    //course.Length = reader.GetSafeString(startingIndex++);
                    course.Description = reader.GetSafeString(startingIndex++);
                    course.Start       = reader.GetSafeDateTime(startingIndex++);
                    course.End         = reader.GetSafeDateTime(startingIndex++);
                    //course.Prereqs = reader.GetSafeString(startingIndex++);

                    list.Add(course);
                    book.Add(course.Id, course);
                }
                else if (set == 1)
                {
                    CourseTag tag       = TagMapCourse(reader);
                    Course parentCourse = book[tag.CourseId];

                    if (parentCourse.Tags == null)
                    {
                        parentCourse.Tags = new List <CourseTag>();
                    }
                    parentCourse.Tags.Add(tag);
                }
            });
            return(list);
        }
Exemple #12
0
        private async Task <List <CourseTag> > _createCourseTags(int[] tagIds)
        {
            List <CourseTag> courseTags = new List <CourseTag>();

            foreach (var tagId in tagIds)
            {
                if (!await _context.Tags.AnyAsync(x => x.Id == tagId))
                {
                    throw new Exception("Tag does not exist!");
                }

                CourseTag courseTag = new CourseTag
                {
                    TagId = tagId
                };

                courseTags.Add(courseTag);
            }

            return(courseTags);
        }
        public static async Task PopulateData(IServiceProvider services)
        {
            Course        Course;
            Lecturer      Lecturer;
            var           context = services.GetRequiredService <ApplicationDbContext>();
            List <string> fixedListCourses = new List <string> {
                "COMPSCI101", "COMPSCI105", "COMPSCI111", "COMPSCI220", "COMPSCI230", "COMPSCI225", "COMPSCI335", "COMPSCI320"
            }.OrderBy(q => q).ToList();
            List <string> fixedListLecturers = new List <string> {
                "A", "B", "C", "D", "E", "F", "G", "H"
            }.OrderBy(q => q).ToList();
            List <string> fixedListStudents = new List <string> {
                "kngu576", "riss899", "vtan618", "even069"
            }.ToList();
            List <string> fixedListNames = new List <string> {
                "Khoa", "Rahul", "Paul", "Renzo"
            }.ToList();

            var courses   = context.Courses.Select(c => c.Name);
            var lecturers = context.Lecturers.Select(c => c.Name);

            for (int i = 0; i < fixedListLecturers.Count(); i++)
            {
                if (!lecturers.Contains(fixedListLecturers.ElementAt(i)))
                {
                    Lecturer = new Lecturer
                    {
                        Name = fixedListLecturers.ElementAt(i)
                    };
                    Course = new Course
                    {
                        Name = fixedListCourses.ElementAt(i)
                    };
                    Lecturer.Course = Course;
                    Course.Lecturer = Lecturer;
                    await context.Courses.AddAsync(Course);

                    await context.Lecturers.AddAsync(Lecturer);
                }
            }
            await context.SaveChangesAsync();

            Student          Student;
            CourseTag        CourseTag;
            Random           random = new Random();
            int              ranNum;
            var              allCourses = context.Courses.ToList();
            List <Course>    randomCourses;
            List <CourseTag> CourseTags;
            var              students = context.Students.Select(c => c.StudentID);

            for (int i = 0; i < fixedListStudents.Count(); i++)
            {
                var student = fixedListStudents.ElementAt(i);
                if (!students.Contains(student))
                {
                    Student = new Student
                    {
                        StudentID = student,
                        Name      = fixedListNames.ElementAt(i),
                        Points    = 0
                    };
                    CourseTags    = new List <CourseTag> {
                    };
                    randomCourses = new List <Course> {
                    };
                    while (CourseTags.Count() < 3)
                    {
                        ranNum = random.Next(0, context.Courses.Count());
                        Course = allCourses.ElementAt(ranNum);
                        if (!randomCourses.Contains(Course))
                        {
                            CourseTag = new CourseTag
                            {
                                Course  = Course,
                                Student = Student
                            };
                            CourseTags.Add(CourseTag);
                            await context.CourseTags.AddAsync(CourseTag);

                            randomCourses.Add(Course);
                        }
                    }

                    await context.Students.AddAsync(Student);
                }
            }
            await context.SaveChangesAsync();
        }
        private static CourseTag TagMapCourse(IDataReader reader)
        {
            CourseTag item = new CourseTag();
            int startingIndex = 0;

            item.CourseId = reader.GetSafeInt32(startingIndex++);
            item.TagId = reader.GetSafeInt32(startingIndex++);
            item.TagName = reader.GetSafeString(startingIndex++);

            return item;
        }