示例#1
0
 public IEnumerable<Curriculum> GetCurriculums(IEnumerable<int> ids)
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.Curriculums.Where(item => ids.Contains(item.Id) && !item.IsDeleted);
     }
 }
示例#2
0
 public Curriculum GetCurriculum(int id)
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.Curriculums.SingleOrDefault(item => item.Id == id && !item.IsDeleted);
     }
     //return GetDbDataContext().Curriculums.Single(item => item.Id == id && !item.IsDeleted);
 }
示例#3
0
 public void InitializeTest()
 {
     storage = new MixedCurriculumStorage(lmsService);
     using (context = lmsService.GetDbDataContext())
     {
         ClearDb();
     }
 }
示例#4
0
 public IEnumerable<Curriculum> GetCurriculums()
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.Curriculums.Where(item => !item.IsDeleted);
     }
     //return GetDbDataContext().Curriculums.Where(item => !item.IsDeleted);
 }
示例#5
0
 public CurriculumStorageTest()
 {
     lmsService = new FakeLmsService();
     using (context = lmsService.GetDbDataContext())
     {
         if (context.DatabaseExists())
         {
             context.DeleteDatabase();
         }
         context.CreateDatabase();
         InitializeDb();
     }
 }
示例#6
0
        public void UpdateThemeAssignment(ThemeAssignment themeAssignment)
        {
            using (var db = new CurriculumManagementDBContext())
            {
                db.ThemeAssignments.Attach(themeAssignment);
                
                themeAssignment.MaxScore = themeAssignment.MaxScore;

                db.SaveChanges();
            }
        }
示例#7
0
        public void DeleteThemeAssignments(IEnumerable<int> ids)
        {
            var themeAssignments = GetThemeAssignments(ids);

            using (var db = new CurriculumManagementDBContext())
            {
                foreach (ThemeAssignment item in themeAssignments)
                {
                    db.ThemeAssignments.Attach(item);
                    item.IsDeleted = true;
                }

                db.SaveChanges();
            }
        }
示例#8
0
 public IEnumerable<ThemeAssignment> GetThemeAssignmentsByThemeId(int themeId)
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.ThemeAssignments.Where(item => item.ThemeRef == themeId && !item.IsDeleted);
     }
 }
示例#9
0
        public int AddThemeAssignment(ThemeAssignment themeAssignment)
        {
            using (var db = new CurriculumManagementDBContext())
            {
                db.ThemeAssignments.Add(themeAssignment);
                db.SaveChanges();
            }

            return themeAssignment.Id;
        }
示例#10
0
 public IEnumerable<Theme> GetThemesByCourseId(int courseId)
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.Themes.Where(item => item.CourseRef == courseId && !item.IsDeleted);
     }
 }
示例#11
0
        public void UpdateTheme(Theme theme)
        {
            var oldTheme = GetTheme(theme.Id);

            using (var db = new CurriculumManagementDBContext())
            {
                /*try
                {*/
                db.Themes.Attach(oldTheme);
                
                oldTheme.Name = theme.Name;
                oldTheme.SortOrder = theme.SortOrder;
                oldTheme.CourseRef = theme.CourseRef;
                oldTheme.Updated = DateTime.Now;

                //if ThemeType has changed then add or remove corresponding ThemeAssignments.
                if (oldTheme.ThemeTypeRef != theme.ThemeTypeRef)
                {
                    oldTheme.ThemeTypeRef = theme.ThemeTypeRef;
                    if (theme.ThemeType.Id == (int)IUDICO.CurriculumManagement.Models.Enums.ThemeType.Test)
                    {
                        AddThemeAssignments(theme);
                    }
                    else
                    {
                        DeleteThemeAssignments(theme);
                    }
                }

                db.SaveChanges();
                /*}
                catch (ChangeConflictException)
                {
                    foreach (ObjectChangeConflict conflict in db.ChangeConflicts)
                    {
                        conflict.Resolve(RefreshMode.KeepChanges);
                    }
                }*/
            }
        }
示例#12
0
        public int AddTimeline(Timeline timeline)
        {
            timeline.IsDeleted = false;

            using (var db = new CurriculumManagementDBContext())
            {
                db.Timelines.Add(timeline);
                db.SaveChanges();
            }

            return timeline.Id;
        }
示例#13
0
        public Theme ThemeDown(int themeId)
        {
            var theme = GetTheme(themeId);
            IList<Theme> themes = GetThemesByStageId(theme.StageRef).ToList();

            using (var db = new CurriculumManagementDBContext())
            {
                int index = themes.IndexOf(theme);
                if (index != -1 && index != themes.Count - 1)
                {
                    db.Themes.Attach(themes[index - 1]);

                    int temp = themes[index + 1].SortOrder;
                    themes[index + 1].SortOrder = theme.SortOrder;
                    theme.SortOrder = temp;
                }

                db.SaveChanges();
            }

            return theme;
        }
示例#14
0
 public IEnumerable<CurriculumAssignment> GetCurriculumAssignmentsByGroupId(int groupId)
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.CurriculumAssignments.Where(item => item.UserGroupRef == groupId && !item.IsDeleted);
     }
 }
示例#15
0
        public int AddCurriculumAssignment(CurriculumAssignment curriculumAssignment)
        {
            using (var db = new CurriculumManagementDBContext())
            {
                curriculumAssignment.IsDeleted = false;

                db.CurriculumAssignments.Add(curriculumAssignment);
                db.SaveChanges();
            }

            //add corresponding ThemeAssignments
            var themesInCurrentCurriculum = GetThemesByCurriculumId(curriculumAssignment.CurriculumRef)
                .Where(item => item.ThemeTypeRef == (int)IUDICO.CurriculumManagement.Models.Enums.ThemeType.Test);
            foreach (var theme in themesInCurrentCurriculum)
            {
                ThemeAssignment newThemeAssingment = new ThemeAssignment()
                {
                    CurriculumAssignmentRef = curriculumAssignment.Id,
                    ThemeRef = theme.Id,
                    MaxScore = Constants.DefaultThemeMaxScore
                };

                AddThemeAssignment(newThemeAssingment);
            }

            return curriculumAssignment.Id;
        }
示例#16
0
 public IEnumerable<CurriculumAssignment> GetCurriculumAssignmnetsByCurriculumId(int curriculumId)
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.CurriculumAssignments.Where(item => item.CurriculumRef == curriculumId && !item.IsDeleted);
     }
 }
示例#17
0
 public IEnumerable<CurriculumAssignment> GetCurriculumAssignments()
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.CurriculumAssignments.Where(item => !item.IsDeleted);
     }
 }
示例#18
0
 public IEnumerable<ThemeType> GetThemeTypes()
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.ThemeTypes;
     }
 }
示例#19
0
 private IEnumerable<Timeline> GetTimelines()
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.Timelines.Where(item => !item.IsDeleted);
     }
 }
示例#20
0
        public void DeleteTimeline(int timelineId)
        {
            var timeline = GetTimeline(timelineId);

            using (var db = new CurriculumManagementDBContext())
            {
                db.Timelines.Attach(timeline);

                timeline.IsDeleted = true;

                db.SaveChanges();
            }
        }
示例#21
0
        public void UpdateCurriculumAssignment(CurriculumAssignment curriculumAssignment)
        {
            //var oldCurriculumAssignment = GetCurriculumAssignment(curriculumAssignment.Id);

            using (var db = new CurriculumManagementDBContext())
            {
                db.CurriculumAssignments.Attach(curriculumAssignment);
                curriculumAssignment.UserGroupRef = curriculumAssignment.UserGroupRef;

                db.SaveChanges();
            }
        }
示例#22
0
        public void DeleteTheme(int id)
        {
            var theme = GetTheme(id);

            using (var db = new CurriculumManagementDBContext())
            {
                db.Themes.Attach(theme);

                //if it is "Test" then delete corresponding ThemeAssignments.
                if (theme.ThemeType.Id == (int)IUDICO.CurriculumManagement.Models.Enums.ThemeType.Test)
                {
                    DeleteThemeAssignments(theme);
                }

                theme.IsDeleted = true;

                db.SaveChanges();
            }
        }
示例#23
0
        public void UpdateTimeline(Timeline timeline)
        {
            using (var db = new CurriculumManagementDBContext())
            {
                db.Timelines.Attach(timeline);

                timeline.StartDate = timeline.StartDate;
                timeline.EndDate = timeline.EndDate;

                db.SaveChanges();
            }
        }
示例#24
0
        public void DeleteCurriculumAssignment(int curriculumAssignmentId)
        {
            var curriculumAssignment = GetCurriculumAssignment(curriculumAssignmentId);

            //delete corresponding CurriculumAssignmentTimelines
            var curriculumAssignmentTimelineIds = GetCurriculumAssignmentTimelines(curriculumAssignmentId).Select(item => item.Id);
            DeleteTimelines(curriculumAssignmentTimelineIds);

            //delete corresponding StageTimelines
            var stageTimelineIds = GetStageTimelinesByCurriculumAssignmentId(curriculumAssignmentId).Select(item => item.Id);
            DeleteTimelines(stageTimelineIds);

            //delete corresponding ThemeAssignments
            var themeAssignmentIds = GetThemeAssignmentsByCurriculumAssignmentId(curriculumAssignmentId).Select(item => item.Id);
            DeleteThemeAssignments(themeAssignmentIds);

            using (var db = new CurriculumManagementDBContext())
            {
                db.CurriculumAssignments.Attach(curriculumAssignment);

                curriculumAssignment.IsDeleted = true;
                db.SaveChanges();
            }
        }
示例#25
0
        public void DeleteTimelines(IEnumerable<int> timelineIds)
        {
            var timelines = GetTimelines(timelineIds);

            using (var db = new CurriculumManagementDBContext())
            {
                foreach (Timeline timeline in timelines)
                {
                    db.Timelines.Attach(timeline);
                    timeline.IsDeleted = true;
                }

                db.SaveChanges();
            }
        }
示例#26
0
 public IEnumerable<Theme> GetThemesByStageId(int stageId)
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.Themes.Where(item => item.StageRef == stageId && !item.IsDeleted).OrderBy(item => item.SortOrder);
     }
 }
示例#27
0
 public IEnumerable<Curriculum> GetCurriculumsByGroupId(int groupId)
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return GetCurriculumAssignmentsByGroupId(groupId).Select(item => item.Curriculum);
     }
 }
示例#28
0
        public int AddTheme(Theme theme)
        {
            using (var db = new CurriculumManagementDBContext())
            {
                theme.Created = DateTime.Now;
                theme.Updated = DateTime.Now;
                theme.IsDeleted = false;

                db.Themes.Add(theme);
                db.SaveChanges();

                theme.SortOrder = theme.Id;
                UpdateTheme(theme);
            }

            //if it is "Test" then add corresponding ThemeAssignments.
            if (theme.ThemeType.Id == (int)IUDICO.CurriculumManagement.Models.Enums.ThemeType.Test)
            {
                AddThemeAssignments(theme);
            }

            return theme.Id;
        }
示例#29
0
 public ThemeAssignment GetThemeAssignment(int themeAssignmentId)
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.ThemeAssignments.SingleOrDefault(item => item.Id == themeAssignmentId && !item.IsDeleted);
     }
 }
示例#30
0
 public IEnumerable<Theme> GetThemes(IEnumerable<int> ids)
 {
     using (var db = new CurriculumManagementDBContext())
     {
         return db.Themes.Where(item => ids.Contains(item.Id) && !item.IsDeleted).OrderBy(item => item.SortOrder);
     }
 }