public void Test_For_Converting_AsDataModel_List() { // Arrange var projectsList = new Models.ViewModels.Project[] { new Models.ViewModels.Project() { ProjectId = 1, ProjectName = "TestProject-1", ManagerId = Guid.NewGuid(), Priority = 10 }, new Models.ViewModels.Project() { ProjectId = 2, ProjectName = "TestProject-2", ManagerId = Guid.NewGuid(), Priority = 5 }, new Models.ViewModels.Project() { ProjectId = 3, ProjectName = "TestProject-3", ManagerId = Guid.NewGuid(), Priority = 15 }, new Models.ViewModels.Project() { ProjectId = 4, ProjectName = "TestProject-4", ManagerId = Guid.NewGuid(), Priority = 20 }, new Models.ViewModels.Project() { ProjectId = 5, ProjectName = "TestProject-5", ManagerId = Guid.NewGuid(), Priority = 30 }, }.AsEnumerable(); var testDataModelList = new Models.DataModels.Project[] { new Models.DataModels.Project() { ProjectId = 1, ProjectName = "As-Is-Project-1", ManagerId = Guid.NewGuid(), Priority = 1 }, new Models.DataModels.Project() { ProjectId = 2, ProjectName = "As-Is-Project-2", ManagerId = Guid.NewGuid(), Priority = 2 }, new Models.DataModels.Project() { ProjectId = 3, ProjectName = "As-Is-Project-3", ManagerId = Guid.NewGuid(), Priority = 3 }, new Models.DataModels.Project() { ProjectId = 4, ProjectName = "As-Is-Project-4", ManagerId = Guid.NewGuid(), Priority = 4 }, new Models.DataModels.Project() { ProjectId = 5, ProjectName = "As-Is-Project-5", ManagerId = Guid.NewGuid(), Priority = 5 }, }.AsEnumerable(); // Act var actualDataModelResult = projectsList.AsDataModel(testDataModelList); // Assert Assert.Equal(projectsList.Select(t => t.ProjectName), actualDataModelResult.Select(t => t.ProjectName)); Assert.Equal(projectsList.Select(t => t.Priority), actualDataModelResult.Select(t => t.Priority)); }
public static Models.ViewModels.Project AsViewModel(this Models.DataModels.Project projectData) { var config = new MapperConfiguration(cfg => { cfg.CreateMap <Models.DataModels.Project, Models.ViewModels.Project>() .ForMember(vm => vm.ManagerName, dm => dm.MapFrom(m => m.Manager != null ? m.Manager.FirstName + (!string.IsNullOrEmpty(m.Manager.LastName) ? $" {m.Manager.LastName}" : string.Empty) : string.Empty)) .ForMember(vm => vm.IsActive, dm => dm.MapFrom(m => !(m.ProjectEnd.HasValue && m.ProjectEnd.Value.CompareTo(System.DateTime.Now) <= 0))) .ReverseMap(); }); return(config.CreateMapper().Map <Models.DataModels.Project, Models.ViewModels.Project>(projectData)); }
public void Test_For_Get_UserProjects() { // Arrange var mgrId = Guid.NewGuid(); var testUserId = "TestUser1"; var projectsList = new Models.DataModels.Project[] { new Models.DataModels.Project() { ProjectId = 1, ProjectName = "TestProject-1", ManagerId = mgrId, Priority = 10 }, new Models.DataModels.Project() { ProjectId = 2, ProjectName = "TestProject-2", ManagerId = mgrId, Priority = 5 }, new Models.DataModels.Project() { ProjectId = 3, ProjectName = "TestProject-3", ManagerId = mgrId, Priority = 15 }, new Models.DataModels.Project() { ProjectId = 4, ProjectName = "TestProject-4", ManagerId = mgrId, Priority = 20 }, new Models.DataModels.Project() { ProjectId = 5, ProjectName = "TestProject-5", ManagerId = mgrId, Priority = 30 }, }; mockProjectRepository.Setup(repo => repo.Search(It.IsAny <System.Linq.Expressions.Expression <Func <Models.DataModels.Project, bool> > >())).Returns(projectsList); // Act var actualResult = projectLogicTest.GetUserProjects(testUserId); // Assert Assert.NotNull(actualResult); Assert.IsAssignableFrom <IEnumerable <Models.ViewModels.Project> >(actualResult); Assert.Equal(projectsList.Count(), actualResult.Count()); }
public static Models.DataModels.Project AsDataModel(this Models.ViewModels.Project projectData, Models.DataModels.Project projectDataModel = null) { var config = new MapperConfiguration(cfg => { cfg.CreateMap <Models.ViewModels.Project, Models.DataModels.Project>(); }); if (projectDataModel == null) { projectDataModel = config.CreateMapper().Map <Models.ViewModels.Project, Models.DataModels.Project>(projectData); } else { projectDataModel = config.CreateMapper().Map(projectData, projectDataModel); } return(projectDataModel); }