コード例 #1
0
        public void UpdateModuleResurce(CoachingModule module, CoachingModuleBaseResource newResource)
        {
            var resource = new CoachingModuleResourceReference(newResource.Id, newResource.RevisionHistory.ReferenceId);

            //Create the new version
            PushResourceVersion(newResource, resource.RevisionHistoryReferenceId);

            //Update the module revision
            if (module.Introduction.RevisionHistoryReferenceId == resource.RevisionHistoryReferenceId)
            {
                module.Introduction = new CoachingModuleResourceReference(newResource.Id, newResource.RevisionHistory.ReferenceId);
            }
            else if (module.Exercise.RevisionHistoryReferenceId == resource.RevisionHistoryReferenceId)
            {
                module.Exercise = new CoachingModuleResourceReference(newResource.Id, newResource.RevisionHistory.ReferenceId);
            }
            else if (module.Reflection.RevisionHistoryReferenceId == resource.RevisionHistoryReferenceId)
            {
                module.Reflection = new CoachingModuleResourceReference(newResource.Id, newResource.RevisionHistory.ReferenceId);
            }

            //Save
            _moduleRepository.SaveModule(module);

            if (newResource is CoachingModuleResource)
            {
                _resourceRepository.CreateModuleResource(newResource as CoachingModuleResource);
            }
            else if (newResource is CoachingModuleExerciseResource)
            {
                _exerciseRepository.CreateModuleResource(newResource as CoachingModuleExerciseResource);
            }
        }
コード例 #2
0
        /// <summary>
        /// Add the new version to the revision history by adding reference to resource
        /// </summary>
        /// <param name="newVersion"></param>
        /// <param name="revisionId"></param>
        /// <param name="resourseRepos"></param>
        private void PushResourceVersion(CoachingModuleBaseResource newVersion, Guid revisionId)
        {
            CoachingModuleBaseResource last = null;

            if (newVersion is CoachingModuleResource)
            {
                last = _resourceRepository.GetItems(i => i.RevisionHistory.ReferenceId == revisionId).OrderBy(i => i.Version).LastOrDefault();
            }
            else if (newVersion is CoachingModuleExerciseResource)
            {
                last = _exerciseRepository.GetItems(i => i.RevisionHistory.ReferenceId == revisionId).OrderBy(i => i.Version).LastOrDefault();
            }


            if (last != null)
            {
                newVersion.Version = last.Version + 1;
            }
            else
            {
                newVersion.Version = 1;
            }

            newVersion.RevisionHistory = new ResourseRevisionHistoryReference()
            {
                ReferenceId = revisionId
            };
        }