Example #1
0
        public static MapperConfiguration Configure()
        {
            var configuration = new MapperConfiguration(config =>
            {
                config.CreateMap <Employee, EmployeeViewModel>().ForMember(
                    des => des.FullName, opt => opt.MapFrom(
                        src => $"{src.Title}.{src.FirstName.ToTitleCase()} {src.LastName.ToTitleCase()}"))
                .ForMember(
                    des => des.FirstName, opt => opt.MapFrom(src => src.FirstName.ToTitleCase()))
                .ForMember(
                    des => des.LastName, opt => opt.MapFrom(src => src.LastName.ToTitleCase()))
                .ForMember(
                    des => des.Period, opt => opt.MapFrom(src => src.DateOfJoin.Period(DateTime.Now)))
                .ForMember(
                    des => des.Salary, opt => opt.MapFrom(src => src.Salary.ToString("c")));

                config.CreateMap <EmployeeViewModel, Employee>().ForMember(
                    des => des.Salary, opt => opt.MapFrom(src => HelperExtensions.CurrencyToDecimal(src.Salary)));

                config.CreateMap <Employee, EmployeeEditViewModel>().ForMember(
                    des => des.FullName, opt => opt.MapFrom(
                        src => $"{src.Title}.{src.FirstName.ToTitleCase()} {src.LastName.ToTitleCase()}"))
                .ForMember(
                    des => des.Period, opt => opt.MapFrom(src => src.DateOfJoin.Period(DateTime.Now)))
                .ForMember(
                    des => des.Position, opt => opt.MapFrom(src => src.Position.ParseEnum <Position>()))
                .ForMember(
                    des => des.Division, opt => opt.MapFrom(src => src.Division.ParseEnum <Division>()))
                .ForMember(
                    des => des.TitleOfEmployee, opt => opt.MapFrom(src => src.Title.ParseEnum <Title>()))
                .ForMember(
                    des => des.Office, opt => opt.MapFrom(src => src.Office.ParseEnum <Office>()));

                config.CreateMap <EmployeeEditViewModel, Employee>().ForMember(
                    des => des.Position, opt => opt.MapFrom(src => src.Position.ToString()))
                .ForMember(
                    des => des.Division, opt => opt.MapFrom(src => src.Division.ToString()))
                .ForMember(
                    des => des.Title, opt => opt.MapFrom(src => src.TitleOfEmployee.ToString()))
                .ForMember(
                    des => des.Office, opt => opt.MapFrom(src => src.Office.ToString()))
                .ForMember(
                    des => des.Salary, opt => opt.MapFrom(src => HelperExtensions.CurrencyToDecimal(src.Salary)));
            });

            return(configuration);
        }