/// <summary>
 /// Creates from domain model.
 /// </summary>
 /// <param name="user">The user.</param>
 /// <param name="objectMapper">The object mapper.</param>
 /// <returns></returns>
 public static Repository.User CreateFromDomainModel(Model.Entities.User user, IObjectMapperAdapter objectMapper)
 {
     if (user is Model.Entities.Student)
     {
         return(objectMapper.Map <Model.Entities.Student, Student>((Model.Entities.Student)user));
     }
     else if (user is Model.Entities.Staff)
     {
         return(objectMapper.Map <Model.Entities.Staff, Staff>((Model.Entities.Staff)user));
     }
     else
     {
         return(objectMapper.Map <Model.Entities.User, User>(user));
     }
 }
示例#2
0
 /// <summary>
 /// Creates from view model model.
 /// </summary>
 /// <param name="asset">The user.</param>
 /// <param name="objectMapper">The object mapper.</param>
 /// <returns></returns>
 public static User CreateFromViewModelModel(UserViewModel user, IObjectMapperAdapter objectMapper)
 {
     if (user is StudentViewModel)
     {
         return(objectMapper.Map <StudentViewModel, Student>((StudentViewModel)user));
     }
     else if (user is StaffViewModel)
     {
         return(objectMapper.Map <StaffViewModel, Staff>((StaffViewModel)user));
     }
     else
     {
         return(objectMapper.Map <UserViewModel, User>(user));
     }
 }
 /// <summary>
 /// Creates the user entity.
 /// </summary>
 /// <param name="user">The user.</param>
 /// <returns></returns>
 public static Model.Entities.User CreateFromDataModel(User user, IObjectMapperAdapter objectMapper)
 {
     if (user is Student)
     {
         return(objectMapper.Map <Student, Model.Entities.Student>((Student)user));
     }
     else if (user is Staff)
     {
         return(objectMapper.Map <Staff, Model.Entities.Staff>((Staff)user));
     }
     else
     {
         return(objectMapper.Map <User, Model.Entities.User>(user));
     }
 }
示例#4
0
        public void GetMethodToProperty(IObjectMapperAdapter adapter)
        {
            adapter.CreateMap <ClassWithGetValueMethod, ClassWithValue>();
            var source = new ClassWithGetValueMethod("ABC");
            var result = adapter.Map <ClassWithValue>(source);

            Assert.Equal(source.GetValue(), result.Value);
        }
        public void PropertyToSetMethod(IObjectMapperAdapter adapter)
        {
            adapter.CreateMap<ClassWithValue, ClassWithSetValue>();
            var source = new ClassWithValue { Value = "ABC" };
            var result = adapter.Map<ClassWithSetValue>(source);

            Assert.Equal(source.Value, result.GetValue());
        }
        public void NameBasedUnflattening(IObjectMapperAdapter adapter)
        {
            adapter.CreateMap<ClassWithNestedValue, ClassWithNested<ClassWithValue>>();
            var source = new ClassWithNestedValue { NestedValue = "ABC" };
            var result = adapter.Map<ClassWithNested<ClassWithValue>>(source);

            Assert.Equal(source.NestedValue, result.Nested.Value);
        }
        public void MethodToProperty(IObjectMapperAdapter adapter)
        {
            adapter.CreateMap<ClassWithValueAsMethod, ClassWithValue>();
            var source = new ClassWithValueAsMethod("ABC");
            var result = adapter.Map<ClassWithValue>(source);

            Assert.Equal(source.Value(), result.Value);
        }
        public void Simple(IObjectMapperAdapter mapper)
        {
            mapper.CreateMap<Wrapper<string>, ImmutableWrapper<string>>();

            var source = new Wrapper<string> { Value = "X" };
            var result = mapper.Map<ImmutableWrapper<string>>(source);

            Assert.Equal("X", result.Value);
        }
        public void NameBasedUnflattening(IObjectMapperAdapter adapter)
        {
            adapter.CreateMap <ClassWithNestedName, ClassWithNested <ClassWithName> >();
            var source = new ClassWithNestedName {
                NestedName = "ABC"
            };
            var result = adapter.Map <ClassWithNested <ClassWithName> >(source);

            Assert.Equal(source.NestedName, result.Nested.Name);
        }
示例#10
0
        public void PropertyToSetMethod(IObjectMapperAdapter adapter)
        {
            adapter.CreateMap <ClassWithValue, ClassWithSetValue>();
            var source = new ClassWithValue {
                Value = "ABC"
            };
            var result = adapter.Map <ClassWithSetValue>(source);

            Assert.Equal(source.Value, result.GetValue());
        }
示例#11
0
        public void NameBasedFlattening(IObjectMapperAdapter adapter)
        {
            adapter.CreateMap <ClassWithNested <ClassWithValue>, ClassWithNestedValue>();
            var source = new ClassWithNested <ClassWithValue> {
                Nested = { Value = "ABC" }
            };
            var result = adapter.Map <ClassWithNestedValue>(source);

            Assert.Equal(source.Nested.Value, result.NestedValue);
        }
        public void DictionaryEntryToProperty(IObjectMapperAdapter mapper)
        {
            mapper.CreateMap<Dictionary<string, object>, Wrapper<string>>();

            var source = new Dictionary<string, object> { { "Value", "ABC" } };
            var result = mapper.Map<Wrapper<string>>(source);

            Assert.NotNull(result);
            Assert.Equal("ABC", result.Value);
        }
        public void PropertyToDictionaryEntry(IObjectMapperAdapter mapper)
        {
            mapper.CreateMap<Wrapper<string>, Dictionary<string, object>>();

            var source = new Wrapper<string> { Value = "ABC" };
            var result = mapper.Map<Dictionary<string, object>>(source);

            Assert.NotNull(result);
            Assert.Contains(new KeyValuePair<string, object>("Value", "ABC"), result);
        }
示例#14
0
 /// <summary>
 /// Creates from domain model.
 /// </summary>
 /// <param name="asset">The asset.</param>
 /// <param name="objectMapper">The object mapper.</param>
 /// <returns></returns>
 public static Repository.Asset CreateFromDomainModel(Model.Entities.Asset asset, IObjectMapperAdapter objectMapper)
 {
     if (asset is Model.Entities.Video)
     {
         return(objectMapper.Map <Model.Entities.Video, Video>((Model.Entities.Video)asset));
     }
     else if (asset is Model.Entities.Document)
     {
         return(objectMapper.Map <Model.Entities.Document, Document>((Model.Entities.Document)asset));
     }
     else if (asset is Model.Entities.Image)
     {
         return(objectMapper.Map <Model.Entities.Image, Image>((Model.Entities.Image)asset));
     }
     else
     {
         return(objectMapper.Map <Model.Entities.Asset, Asset>(asset));
     }
 }
示例#15
0
 /// <summary>
 /// Creates from domain model.
 /// </summary>
 /// <param name="asset">The user.</param>
 /// <param name="objectMapper">The object mapper.</param>
 /// <returns></returns>
 public static UserViewModel CreateFromDomainModel(User user, IObjectMapperAdapter objectMapper)
 {
     if (user is Student)
     {
         StudentViewModel student = objectMapper.Map <Student, StudentViewModel>((Student)user);
         student.Courses = CreateStudentCourses((Student)user, objectMapper);
         return(student);
     }
     else if (user is Staff)
     {
         StaffViewModel staff = objectMapper.Map <Staff, StaffViewModel>((Staff)user);
         staff.Courses = CreateStaffCourses((Staff)user, objectMapper);
         return(staff);
     }
     else
     {
         return(objectMapper.Map <User, UserViewModel>(user));
     }
 }
示例#16
0
 /// <summary>
 /// Creates from view model model.
 /// </summary>
 /// <param name="asset">The asset.</param>
 /// <param name="objectMapper">The object mapper.</param>
 /// <returns></returns>
 public static Asset CreateFromViewModelModel(AssetViewModel asset, IObjectMapperAdapter objectMapper)
 {
     if (asset is VideoViewModel)
     {
         return(objectMapper.Map <VideoViewModel, Video>((VideoViewModel)asset));
     }
     else if (asset is DocumentViewModel)
     {
         return(objectMapper.Map <DocumentViewModel, Document>((DocumentViewModel)asset));
     }
     else if (asset is ImageViewModel)
     {
         return(objectMapper.Map <ImageViewModel, Image>((ImageViewModel)asset));
     }
     else
     {
         return(objectMapper.Map <AssetViewModel, Asset>(asset));
     }
 }
示例#17
0
 /// <summary>
 /// Creates from domain model.
 /// </summary>
 /// <param name="asset">The asset.</param>
 /// <param name="objectMapper">The object mapper.</param>
 /// <returns></returns>
 public static AssetViewModel CreateFromDomainModel(Asset asset, IObjectMapperAdapter objectMapper)
 {
     if (asset is Video)
     {
         return(objectMapper.Map <Video, VideoViewModel>((Video)asset));
     }
     else if (asset is Document)
     {
         return(objectMapper.Map <Document, DocumentViewModel>((Document)asset));
     }
     else if (asset is Image)
     {
         return(objectMapper.Map <Image, ImageViewModel>((Image)asset));
     }
     else
     {
         return(objectMapper.Map <Asset, AssetViewModel>(asset));
     }
 }
示例#18
0
 /// <summary>
 /// Creates the asset entity.
 /// </summary>
 /// <param name="asset">The asset.</param>
 /// <returns></returns>
 public static Model.Entities.Asset CreateFromDataModel(Asset asset, IObjectMapperAdapter objectMapper)
 {
     if (asset is Video)
     {
         return(objectMapper.Map <Video, Model.Entities.Video>((Video)asset));
     }
     else if (asset is Document)
     {
         return(objectMapper.Map <Document, Model.Entities.Document>((Document)asset));
     }
     else if (asset is Image)
     {
         return(objectMapper.Map <Image, Model.Entities.Image>((Image)asset));
     }
     else
     {
         return(objectMapper.Map <Asset, Model.Entities.Asset>(asset));
     }
 }
        public void Simple(IObjectMapperAdapter mapper)
        {
            mapper.CreateMap <Wrapper <string>, ImmutableWrapper <string> >();

            var source = new Wrapper <string> {
                Value = "X"
            };
            var result = mapper.Map <ImmutableWrapper <string> >(source);

            Assert.Equal("X", result.Value);
        }
        private static void AssertEnumMappingWorksFor <TSource, TTarget>(IObjectMapperAdapter mapper, TSource sourceValue, TTarget expectedValue)
        {
            mapper.CreateMap <Wrapper <TSource>, Wrapper <TTarget> >();

            var source = new Wrapper <TSource> {
                Value = sourceValue
            };
            var result = mapper.Map <Wrapper <TTarget> >(source);

            Assert.Equal(expectedValue, result.Value);
        }
        public void DictionaryEntryToProperty(IObjectMapperAdapter mapper)
        {
            mapper.CreateMap <Dictionary <string, object>, Wrapper <string> >();

            var source = new Dictionary <string, object> {
                { "Value", "ABC" }
            };
            var result = mapper.Map <Wrapper <string> >(source);

            Assert.NotNull(result);
            Assert.Equal("ABC", result.Value);
        }
        public void PropertyToDictionaryEntry(IObjectMapperAdapter mapper)
        {
            mapper.CreateMap <Wrapper <string>, Dictionary <string, object> >();

            var source = new Wrapper <string> {
                Value = "ABC"
            };
            var result = mapper.Map <Dictionary <string, object> >(source);

            Assert.NotNull(result);
            Assert.Contains(new KeyValuePair <string, object>("Value", "ABC"), result);
        }
        public void ExpandoObjectToClass(IObjectMapperAdapter mapper)
        {
            mapper.CreateMap<dynamic, Wrapper<string>>();

            dynamic source = new ExpandoObject();
            source.Value = "ABC";

            var result = mapper.Map<Wrapper<string>>((object)source);

            Assert.NotNull(result);
            Assert.Equal("ABC", result.Value);
        }
示例#24
0
        /// <summary>
        /// Creates the course view models.
        /// </summary>
        /// <param name="courses">The courses.</param>
        /// <param name="objectMapper">The object mapper.</param>
        /// <returns></returns>
        public static List <ModuleViewModel> CreateModuleViewModels(List <Module> modules, IObjectMapperAdapter objectMapper)
        {
            List <ModuleViewModel> moduleModels = new List <ModuleViewModel>();

            foreach (Module moduleItem in modules)
            {
                ModuleViewModel moduleViewModel = objectMapper.Map <Model.Entities.Module, ModuleViewModel>(moduleItem);

                moduleModels.Add(moduleViewModel);
            }

            return(moduleModels);
        }
示例#25
0
        /// <summary>
        /// Creates the course view models.
        /// </summary>
        /// <param name="course">The course.</param>
        /// <param name="objectMapper">The object mapper.</param>
        /// <returns></returns>
        public static ModuleViewModel CreateModuleViewModels(Module module, IObjectMapperAdapter objectMapper)
        {
            ModuleViewModel moduleViewModel = objectMapper.Map <Model.Entities.Module, ModuleViewModel>(module);

            moduleViewModel.Quizzes = new List <QuizzesViewModel>();
            moduleViewModel.Units   = new List <UnitViewModel>();

            foreach (ModuleQuiz moduleQuizItem in module.ModuleQuizs)
            {
                if (moduleQuizItem.Quiz != null)
                {
                    moduleViewModel.Quizzes.Add(objectMapper.Map <Model.Entities.Quiz, QuizzesViewModel>(moduleQuizItem.Quiz));
                }
            }

            foreach (Unit unitItem in module.Units)
            {
                moduleViewModel.Units.Add(objectMapper.Map <Model.Entities.Unit, UnitViewModel>(unitItem));
            }

            return(moduleViewModel);
        }
        /// <summary>
        /// Creates the student assignment submission view model.
        /// </summary>
        /// <param name="assignment">The assignment.</param>
        /// <param name="studentId">The student id.</param>
        /// <param name="objectMapper">The object mapper.</param>
        /// <returns></returns>
        public static AssignmentSubmissionViewModel CreateStudentAssignmentSubmissionViewModel(Assignment assignment, int studentId, IObjectMapperAdapter objectMapper)
        {
            AssignmentSubmissionViewModel model = null;

            if (assignment != null)
            {
                foreach (Submission submissionItem in assignment.Submissions)
                {
                    if (submissionItem.StudentId == studentId)
                    {
                        model = objectMapper.Map <Model.Entities.Submission, AssignmentSubmissionViewModel>(submissionItem);
                        break;
                    }
                }

                // If no submission exists, create a new one
                if (model == null)
                {
                    model = new AssignmentSubmissionViewModel();
                }

                //Set Assignment properties on Model
                model.StudentId    = studentId;
                model.AssignmentId = assignment.Id;
                model.Instructions = assignment.Instructions;
                model.DaysDue      = assignment.DaysDue;
                model.DaysLeft     = assignment.DaysLeft;
                model.Priority     = (int)assignment.Priority;
                if (model.Status == 0)
                {
                    model.Status = (int)SubmissionStatusType.New;
                }
                model.PointsPossible    = assignment.PointsPossible;
                model.Title             = assignment.Title;
                model.AssignmentUploads = objectMapper.Map <Model.Entities.BaseFile, BaseFileViewModel>(assignment.FileUploads.ToList());
            }

            return(model);
        }
        public void ExpandoObjectToClass(IObjectMapperAdapter mapper)
        {
            mapper.CreateMap <dynamic, Wrapper <string> >();

            dynamic source = new ExpandoObject();

            source.Value = "ABC";

            var result = mapper.Map <Wrapper <string> >((object)source);

            Assert.NotNull(result);
            Assert.Equal("ABC", result.Value);
        }
        private static void AssertNullableMappingWorksFor <TSource, TTarget>(IObjectMapperAdapter mapper, TSource sourceValue, TTarget expectedValue, TTarget targetValue = default(TTarget))
        {
            mapper.CreateMap <Wrapper <TSource>, Wrapper <TTarget> >();

            var source = new Wrapper <TSource> {
                Value = sourceValue
            };

            WrapperStatic <TTarget> .NextValueAfterConstructor = targetValue;

            var result = mapper.Map <Wrapper <TTarget> >(source);

            Assert.Equal(expectedValue, result.Value);
        }
示例#29
0
        private static void AssertListMappingWorksFor <TSourceCollection, TTargetCollection>(IObjectMapperAdapter mapper, TSourceCollection sourceValue, TTargetCollection expectedValue)
            where TSourceCollection : IEnumerable <int>
            where TTargetCollection : IEnumerable <int>
        {
            mapper.CreateMap <Wrapper <TSourceCollection>, Wrapper <TTargetCollection> >();

            var source = new Wrapper <TSourceCollection> {
                Value = sourceValue
            };
            var result = mapper.Map <Wrapper <TTargetCollection> >(source);

            Assert.NotNull(result.Value);
            Assert.Equal(expectedValue.ToArray(), result.Value.ToArray());
        }
        private static void AssertListMappingWorksFor <TSourceCollection, TExposedTargetCollection, TActualTargetCollection>(IObjectMapperAdapter mapper, TSourceCollection sourceValue)
            where TSourceCollection : IEnumerable <int>
            where TExposedTargetCollection : IEnumerable <int>
            where TActualTargetCollection : TExposedTargetCollection, new()
        {
            mapper.CreateMap <Wrapper <TSourceCollection>, WrapperWithReadOnly <TExposedTargetCollection, TActualTargetCollection> >();

            var source = new Wrapper <TSourceCollection> {
                Value = sourceValue
            };
            var result = mapper.Map <WrapperWithReadOnly <TExposedTargetCollection, TActualTargetCollection> >(source);

            Assert.NotNull(result.Value);
            Assert.Equal(sourceValue.ToArray(), result.Value.ToArray());
        }
        /// <summary>
        /// Creates the course view models.
        /// </summary>
        /// <param name="courses">The courses.</param>
        /// <param name="objectMapper">The object mapper.</param>
        /// <returns></returns>
        public static List <CourseViewModel> CreateCourseViewModels(List <Course> courses, IObjectMapperAdapter objectMapper)
        {
            List <CourseViewModel> courseModels = new List <CourseViewModel>();

            foreach (Course courseItem in courses)
            {
                objectMapper.CreateMap <Model.Entities.CourseModule, CourseModuleViewModel>();
                CourseViewModel courseViewModel = objectMapper.Map <Model.Entities.Course, CourseViewModel>(courseItem);
                courseViewModel.Modules = new List <ModuleViewModel>();
                foreach (CourseModule courseModuleItem in courseItem.CourseModules)
                {
                    if (courseModuleItem.Module != null)
                    {
                        courseViewModel.Modules.Add(objectMapper.Map <Model.Entities.Module, ModuleViewModel>(courseModuleItem.Module));
                    }
                }

                if (courseItem.Department != null)
                {
                    courseViewModel.DepartmentName = courseItem.Department.Name;
                }

                if (courseItem.StaffCourses != null && courseItem.StaffCourses.Count > 0)
                {
                    foreach (var staffModel in courseItem.StaffCourses)
                    {
                        courseViewModel.StaffUsers = courseViewModel.StaffUsers + staffModel.Staff.FirstName;
                    }
                }

                courseViewModel.StudentCount = courseItem.CourseRegistrations.Count;
                courseModels.Add(courseViewModel);
            }

            return(courseModels);
        }
示例#32
0
        /// <summary>
        /// Creates the staff courses.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="objectMapper">The object mapper.</param>
        /// <returns></returns>
        private static List <CourseViewModel> CreateStaffCourses(Staff user, IObjectMapperAdapter objectMapper)
        {
            List <CourseViewModel> courses = new List <CourseViewModel>();

            if (user != null && user.StaffCourses != null)
            {
                foreach (var staffCourses in user.StaffCourses)
                {
                    if (staffCourses.Course != null)
                    {
                        courses.Add(objectMapper.Map <Course, CourseViewModel>(staffCourses.Course));
                    }
                }
            }
            return(courses);
        }
示例#33
0
        /// <summary>
        /// Gets or sets the create student courses.
        /// </summary>
        /// <value>The create student courses.</value>
        private static List <CourseViewModel> CreateStudentCourses(Student user, IObjectMapperAdapter objectMapper)
        {
            List <CourseViewModel> courses = new List <CourseViewModel>();

            if (user != null && user.CourseRegistrations != null)
            {
                foreach (var courseRegistration in user.CourseRegistrations)
                {
                    if (courseRegistration.Course != null)
                    {
                        courses.Add(objectMapper.Map <Course, CourseViewModel>(courseRegistration.Course));
                    }
                }
            }
            return(courses);
        }
        /// <summary>
        /// Creates the course view models.
        /// </summary>
        /// <param name="course">The course.</param>
        /// <param name="objectMapper">The object mapper.</param>
        /// <returns></returns>
        public static CourseViewModel CreateCourseViewModels(Course course, IObjectMapperAdapter objectMapper)
        {
            CourseViewModel courseViewModel = objectMapper.Map <Model.Entities.Course, CourseViewModel>(course);

            courseViewModel.Modules = new List <ModuleViewModel> ();

            foreach (CourseModule courseModuleItem in course.CourseModules)
            {
                if (courseModuleItem.Module != null)
                {
                    courseViewModel.Modules.Add(ModuleViewModelFactory.CreateModuleViewModels(courseModuleItem.Module, objectMapper));
                    //courseViewModel.Modules.Add(objectMapper.Map<Model.Entities.Module, ModuleViewModel>(courseModuleItem.Module));
                }
            }

            return(courseViewModel);
        }
        /// <summary>
        /// Creates the quiz view model.
        /// </summary>
        /// <param name="quiz">The quiz.</param>
        /// <param name="objectMapper">The object mapper.</param>
        /// <returns></returns>
        public static QuizzesViewModel CreateFromDomainModel(Quiz quiz, IObjectMapperAdapter objectMapper)
        {
            QuizzesViewModel viewmodel = objectMapper.Map <Model.Entities.Quiz, QuizzesViewModel>(quiz);

            if (viewmodel != null)
            {
                Module quizModule = null;
                try
                {
                    quizModule = quiz.ModuleQuizs.FirstOrDefault().Module;
                }
                catch (Exception)
                {
                }
                if (quizModule != null)
                {
                    viewmodel.ModuleId    = quizModule.Id;
                    viewmodel.ModuleTitle = quizModule.Title;
                    viewmodel.CourseId    = quizModule.Course_Id;
                }
            }
            return(viewmodel);
        }
        private static void AssertListMappingWorksFor <TSourceCollection, TTargetCollection>(IObjectMapperAdapter mapper)
            where TSourceCollection : IEnumerable <int>
            where TTargetCollection : IEnumerable <int>
        {
            var sourceValue = new[] { 5 }.AsEnumerable();

            if (typeof(TSourceCollection) == typeof(ISet <int>))
            {
                sourceValue = new HashSet <int> {
                    5
                }
            }
            ;

            mapper.CreateMap <Wrapper <TSourceCollection>, Wrapper <TTargetCollection> >();

            var source = new Wrapper <TSourceCollection> {
                Value = (TSourceCollection)sourceValue
            };
            var result = mapper.Map <Wrapper <TTargetCollection> >(source);

            Assert.NotNull(result.Value);
            Assert.Equal(sourceValue.ToArray(), result.Value.ToArray());
        }