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(); }
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); }
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(); }
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); }
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); }
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); }
/// <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 }); } }
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); } } }
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); }
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; }