예제 #1
0
        public void CreateMap(IProfileExpression mapper)
        {
            mapper.CreateMap<Content.Content, ContentViewModel>();
            mapper.CreateMap<ContentViewModel, Content.Content>();

            mapper.CreateMap<Page, PageViewModel>();
            mapper.CreateMap<PageViewModel, Page>();
        }
        void CreateGameMap(IProfileExpression config) {
            config.CreateMap<InstalledState, GameDataModel>();
            config.CreateMap<GameMetaData, GameDataModel>();
            config.CreateMap<Game, GameDataModel>()
                .AfterMap(AfterGameDataModelMap);

            CreateGameSettingsMap(config);
        }
예제 #3
0
        public void CreateMap(IProfileExpression mapper)
        {
            mapper.CreateMap<Post, PostModel>();
            mapper.CreateMap<PostModel, Post>();

            mapper.CreateMap<Comment, CommentModel>();
            mapper.CreateMap<CommentModel, Comment>();
        }
        static void SetupApiModels(IProfileExpression cfg) {
            cfg.CreateMap<GTA4GameSettings, GTA4GameSettingsApiModel>()
                .IncludeBase<GameSettings, GameSettingsApiModel>();
            cfg.CreateMap<GTA4GameSettingsApiModel, GTA4GameSettings>()
                .IncludeBase<GameSettingsApiModel, GameSettings>();

            cfg.CreateMap<GTA5GameSettings, GTA5GameSettingsApiModel>()
                .IncludeBase<GameSettings, GameSettingsApiModel>();
            cfg.CreateMap<GTA5GameSettingsApiModel, GTA5GameSettings>()
                .IncludeBase<GameSettingsApiModel, GameSettings>();
        }
예제 #5
0
 private static void CreateMappings(IProfileExpression configuration, IEnumerable<TypesMap> maps)
 {
     foreach (var map in maps)
     {
         configuration.CreateMap(map.Source, map.Destination);
     }
 }
예제 #6
0
 static void SetupGamespy(IProfileExpression mapConfig) {
     mapConfig.CreateMap<GamespyServerQueryResult, Server>()
         .ForMember(x => x.IsDedicated,
             opt => opt.ResolveUsing(src => GetValueWithFallback(src, "dedicated", "ds").TryInt() == 1))
         .ForMember(x => x.NumPlayers,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("numplayers").TryInt()))
         .ForMember(x => x.MaxPlayers,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("maxplayers").TryInt()))
         .ForMember(x => x.Difficulty,
             opt => opt.ResolveUsing(src => GetValueWithFallback(src, "difficulty", "diff").TryInt()))
         .ForMember(x => x.GameState,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("gameState").TryInt()))
         .ForMember(x => x.VerifySignatures,
             opt => opt.ResolveUsing(src => GetValueWithFallback(src, "verifySignatures", "verSig").TryInt()))
         .ForMember(x => x.SvBattleye,
             opt => opt.ResolveUsing(src => GetValueWithFallback(src, "sv_battleye", "be").TryInt()))
         .ForMember(x => x.ReqBuild,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("reqBuild").TryIntNullable()))
         .ForMember(x => x.PasswordRequired,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("password").TryInt() > 0))
         .ForMember(x => x.Mission, opt => opt.ResolveUsing(src => src.GetSettingOrDefault("mission")))
         .ForMember(x => x.Island,
             opt => opt.ResolveUsing(src => CapitalizeString(src.GetSettingOrDefault("mapname"))))
         .ForMember(x => x.GameType, opt => opt.ResolveUsing(src => {
             var str = CapitalizeString(src.GetSettingOrDefault("gametype"));
             return string.IsNullOrWhiteSpace(str) ? "Unknown" : str;
         }))
         .ForMember(x => x.GameName, opt => opt.ResolveUsing(src => src.GetSettingOrDefault("gamename")))
         .ForMember(x => x.GameVer,
             opt => opt.ResolveUsing(src => GetVersion(src.GetSettingOrDefault("gamever"))))
         .ForMember(x => x.Signatures,
             opt => opt.ResolveUsing(src => GetValueWithFallback(src, "signatures", "sig").TrySplit(';')))
         .AfterMap(GamespyAfterMap);
 }
 public void CreateMap(IProfileExpression profileExpression)
 {
     profileExpression.CreateMap<IndexModel, Email>()
         .ForMember(d => d.FromEmailAddress, opt => opt.MapFrom(s => s.EmailAddress))
         .ForMember(d => d.ToEmailAddress, opt => opt.MapFrom(s => "*****@*****.**"))
         .ForMember(d => d.Subject, opt => opt.MapFrom(s => string.Format("prerit.com user, '{0}', is contacting you", s.Name)));
 }
예제 #8
0
        public void CreateMap(IProfileExpression mapper)
        {
            mapper.CreateMap<FacadeDto, FacadeBmo>(); //<-- Entity to Model

            //mapper.CreateMap<SchedulerDto, SchedulerBmo>(); //<-- Dto to Model

            // design-time helper
            // throws a compiler exception if any fields in the destination aren't mapped.
            Mapper.AssertConfigurationIsValid();
        }
예제 #9
0
        public static void ConfigureMapping(IProfileExpression config)
        {
            config.CreateMap<Transaction, TransactionViewModel>()
                .ForMember(t => t.FromId, opts => opts.MapFrom(t => t.From.Id))
                .ForMember(t => t.ToId, opts => opts.MapFrom(t => t.To.Id));
            config.CreateMap<TransactionViewModel, Transaction>();
            config.CreateMap<TransactionType, TransactionTypeViewModel>()
                .ForMember(tt => tt.FromId, opts => opts.MapFrom(tt => tt.From.Id))
                .ForMember(tt => tt.ToId, opts => opts.MapFrom(tt => tt.To.Id));
            config.CreateMap<Category, CategoryViewModel>().ForMember(vm => vm.CategoryTypeId, opts => opts.MapFrom(src => src.CategoryType.Id));
            config.CreateMap<CategoryViewModel, Category>().ForMember(c => c.Total, opts => opts.Ignore());
            config.CreateMap<CategoryType, CategoryTypeViewModel>().ReverseMap();

            config.CreateMap<Category, CategoryTreeViewModel>().ForMember(ct => ct.CategoryTypeId, opts => opts.MapFrom(src => src.CategoryType.Id));
        }
예제 #10
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Setting, SettingViewModel>().ForMember(
         m => m.NameAndValue,
         opt => opt.MapFrom(x => x.Name + " = " + x.Value));
 }
예제 #11
0
        static void SetupSource(IProfileExpression mapConfig) {
            mapConfig.CreateMap<SourceServerQueryResult, Server>()
                .ForMember(x => x.NumPlayers,
                    opt => opt.ResolveUsing(src => src.GetSettingOrDefault("playerCount").TryInt()))
                .ForMember(x => x.MaxPlayers,
                    opt => opt.ResolveUsing(src => src.GetSettingOrDefault("playerMax").TryInt()))
                .ForMember(x => x.PasswordRequired,
                    opt => opt.ResolveUsing(src => src.GetSettingOrDefault("visibility").TryInt() > 0))
                .ForMember(x => x.Mission, opt => opt.ResolveUsing(src => src.GetSettingOrDefault("game")))
                .ForMember(x => x.Island,
                    opt => opt.ResolveUsing(src => CapitalizeString(src.GetSettingOrDefault("map"))))
                .ForMember(x => x.GameName, opt => opt.ResolveUsing(src => src.GetSettingOrDefault("folder")))
                .ForMember(x => x.GameVer,
                    opt => opt.ResolveUsing(src => GetVersion(src.GetSettingOrDefault("version"))))
                .AfterMap(SourceAfterMap);

            mapConfig.CreateMap<SourceMasterServerQueryResult, Server>()
                .ForMember(x => x.GameName, opt => opt.ResolveUsing(src => src.GetSettingOrDefault("folder")))
                .AfterMap(SourceAfterMap);
        }
 void CreateProfileMap(IProfileExpression config) {
     config.CreateMap<GameSettingsProfileBase, ProfileDataModel>();
 }
예제 #13
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <SuggestionGame, SuggestionViewModel>()
     .ForMember(x => x.ImageUrl, s => s.MapFrom(x => GlobalConstants.DefaultCloudinary + x.ImageUrl));
 }
 static void SetupApiModels(IProfileExpression cfg) {
     cfg.CreateMap<Witcher3GameSettings, Witcher3GameSettingsApiModel>();
     cfg.CreateMap<Witcher3GameSettingsApiModel, Witcher3GameSettings>();
 }
예제 #15
0
 private static void MapDataModelToServiceModel(IProfileExpression mapperConfiguration)
 {
     mapperConfiguration.CreateMap <ProductDetailsModel, GetProductResponse>();
 }
예제 #16
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Order, ActiveOrderViewModel>()
     .ForMember(x => x.IsPaid, y => y.MapFrom(x => x.PaidOn != null));
 }
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Reservation, ReservationViewModel>()
     .ForMember(x => x.ReservedByGuest, opt =>
                opt.MapFrom(x => x.Guests.OrderBy(g => g.CreatedOn).First()));
 }
예제 #18
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Property, IndexPropertyVisualizerViewModel>()
     .ForMember(x => x.ImageUrl, opt => opt.MapFrom(x =>
                                                    x.Images.FirstOrDefault().RemoteImageUrl ?? "/images/properties/" + x.Images.FirstOrDefault().Id + "." + x.Images.FirstOrDefault().Extension));
 }
예제 #19
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <TopicReport, TopicReportDetailsViewModel>()
     .ForMember(x => x.SendOn, t => t.MapFrom(opt => opt.CreatedOn));
 }
예제 #20
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <DeleteCourseViewModel, UsersViewModel>().ForMember(id => id.Id, user => user.MapFrom(md => md.UserId));
     configuration.CreateMap <DeleteCourseViewModel, CoursesViewModel>().ForMember(id => id.Id, category => category.MapFrom(c => c.CategoryId));
 }
예제 #21
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Post, BlogPostServiceModel>()
     .ForMember(p => p.PublisherFirstName, map => map.MapFrom(u => u.Publisher.FirstName))
     .ForMember(p => p.PublisherLastName, map => map.MapFrom(u => u.Publisher.LastName));
 }
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Ingredient, IngredientAdminViewModel>().ForMember(
         m => m.RecipeIngredientsCount,
         opt => opt.MapFrom(x => x.RepiceIngredients.Count()));
 }
예제 #23
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <PartServiceModel, PartEditViewModel>()
     .ForMember(dest => dest.AcquiredFrom,
                opts => opts.MapFrom(org => org.AcquiredFrom.Name));
 }
예제 #24
0
 private static void MapServiceModelToDataModel(IProfileExpression mapperConfiguration)
 {
     mapperConfiguration.CreateMap <GetProductRequest, ProductDetailsModel>();
     mapperConfiguration.CreateMap <PutUpdateProductPrice, ProductUpdateModel>()
     .ForMember(target => target.Value, opt => opt.MapFrom(source => source.CurrentPrice.Value));
 }
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <ElectricTravelUser, DriverInfoViewModel>()
     .ForMember(x => x.Rating, opt =>
                opt.MapFrom(x => x.UserRatings.Count == 0 ? 0 : x.UserRatings.Average(r => r.Value)));
 }
예제 #26
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <User, UserDetailsViewModel>()
     .ForMember(x => x.ProfilePicturePathToFile, cfg => cfg.MapFrom(y => y.ProfilePicture.PathToFile));
 }
예제 #27
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Image, ImagesViewModel>()
     .ForMember(x => x.LocalPath, opt =>
                opt.MapFrom(x => $"{x.UploadName}.{x.Extension}"));
 }
예제 #28
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <PurchaseItem, PurchaseItemViewModel>().ForMember(
         x => x.ImageURL,
         from => from.MapFrom(img => img.Product.Images.Where(i => i.IsPrimary == true).FirstOrDefault().Url));
 }
예제 #29
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <User, UserConciseServiceModel>()
     .ForMember(dest => dest.TestDrivesCount, opt => opt.MapFrom(src => src.TestDrives.Count()));
 }
예제 #30
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Room, RoomCalendarViewModel>()
     .ForMember(d => d.text, o => o.MapFrom(x => "Room number - " + x.RoomNumber))
     .ForMember(d => d.groupId, o => o.MapFrom(x => x.RoomType.Id));
 }
예제 #31
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <News, NewsViewModel>().ForMember(
         m => m.Publisher,
         opt => opt.MapFrom(x => x.ApplicationUser.UserName));
 }
예제 #32
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <SteuUser, SearchUserViewModel>()
     .ForMember(x => x.UserId, cfg => cfg.MapFrom(y => y.Id))
     .ForMember(x => x.Username, cfg => cfg.MapFrom(y => y.UserName));
 }
예제 #33
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <OptionServiceModel, SelectListItem>()
     .ForMember(dest => dest.Text, opt => opt.MapFrom(src => src.Name))
     .ForMember(dest => dest.Value, opt => opt.MapFrom(src => src.Id));
 }
예제 #34
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <EditFundGetDto, EditFundInputModel>()
     .ForMember(model => model.InitialDate, action => action.MapFrom(dto => DateTimeExtensions.FromSqlFormat(dto.InitialDate)));
 }
 public void CreateMappings(IProfileExpression profileExpression)
 {
     profileExpression.CreateMap <RepositoryModel, RepositoryEntity>();
     profileExpression.CreateMap <RepositoryEntity, RepositoryModel>();
 }
예제 #36
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Place, PlaceListModel>()
     .ForMember(x => x.ReviewCount, opt => opt.MapFrom(x => x.Reviews.Count))
     .ForMember(x => x.Category, opt => opt.MapFrom(x => x.Category.ToString()));
 }
예제 #37
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Post, PostsViewModel>()
     .ForMember(x => x.Link, options => options.MapFrom(y => GlobalConstants.DefaultCloudinaryLink + y.PostImages.Select(z => z.Image.Url).First()));
 }
예제 #38
0
            /// <summary>
            /// The create map.
            /// </summary>
            /// <param name="mapper">
            /// The mapper.
            /// </param>
            public void CreateMap(IProfileExpression mapper)
            {
                // Domain >> EF
                mapper.CreateMap<Instance, InstanceData>();
                mapper.CreateMap<Location, InstanceData>();
                mapper.CreateMap<Address, InstanceData>();

                // EF >> Domain
                mapper.CreateMap<InstanceData, Instance>()
                    .ForMember(
                        instance => instance.Location, 
                        options => options.MapFrom(location => Mapper.Map<InstanceData, Location>(location)))
                    .ForMember(
                        instance => instance.Address, 
                        options => options.MapFrom(address => Mapper.Map<InstanceData, Address>(address)));

                mapper.CreateMap<InstanceData, Location>()
                    .ForMember(location => location.Latitude, opt => opt.MapFrom(source => source.Latitude))
                    .ForMember(location => location.Longitude, opt => opt.MapFrom(source => source.Longitude));

                mapper.CreateMap<InstanceData, Address>()
                    .ForMember(address => address.City, opt => opt.MapFrom(source => source.City))
                    .ForMember(address => address.Country, opt => opt.MapFrom(source => source.Country))
                    .ForMember(address => address.PostalCode, opt => opt.MapFrom(source => source.PostalCode))
                    .ForMember(address => address.State, opt => opt.MapFrom(source => source.State))
                    .ForMember(address => address.Street1, opt => opt.MapFrom(source => source.Street1))
                    .ForMember(address => address.Street2, opt => opt.MapFrom(source => source.Street2));
            }
예제 #39
0
 public void RegisterMappings(IProfileExpression profile)
 {
     profile
     .CreateMap <Article, ArticleDetailsServiceModel>()
     .ForMember(a => a.Author, cfg => cfg.MapFrom(a => a.Author.UserName));
 }
 static void SetupApiModels(IProfileExpression cfg) {
     cfg.CreateMap<Homeworld2GameSettings, Homeworld2GameSettingsApiModel>()
         .IncludeBase<GameSettings, GameSettingsApiModel>();
     cfg.CreateMap<Homeworld2GameSettingsApiModel, Homeworld2GameSettings>()
         .IncludeBase<GameSettingsApiModel, GameSettings>();
 }
예제 #41
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <Dislike, DislikeViewModel>()
     .ForMember(x => x.CreatorName, y => y.MapFrom(d => d.Creator.UserName));
 }
 void CreateDlcMap(IProfileExpression config) {
     config.CreateMap<DlcMetaData, DlcDataModel>();
     config.CreateMap<Dlc, DlcDataModel>()
         .AfterMap(AfterDlcDataModelMap);
 }
예제 #43
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <AddressInputModel, Address>()
     .ForMember(dest => dest.AddresType, opt => opt.MapFrom(src => Enum.Parse <AddressType>(src.AddressType)));
 }
        void CreateGameSettingsMap(IProfileExpression config) {
            config.CreateMap<GameSettings, GameSettingsDataModel>()
                .Include<RealVirtualitySettings, RealVirtualityGameSettingsDataModel>()
                .Include<Homeworld2Settings, HomeWorld2SettingsDataModel>()
                .Include<GTAVSettings, GTAVSettingsDataModel>();

            config.CreateMap<RealVirtualitySettings, RealVirtualityGameSettingsDataModel>()
                .Include<ArmaSettings, ArmaSettingsDataModel>();

            config.CreateMap<Arma2FreeSettings, Arma2OriginalChildSettingsDataModel>();

            config.CreateMap<ArmaSettings, ArmaSettingsDataModel>()
                .Include<Arma2OaSettings, Arma2OaSettingsDataModel>();
            config.CreateMap<ArmaSettings, Arma2OriginalChildSettingsDataModel>();
            config.CreateMap<Arma2OaSettings, Arma2OaSettingsDataModel>()
                .Include<Arma3Settings, Arma3SettingsDataModel>()
                .Include<Arma2CoSettings, Arma2CoSettingsDataModel>();
            config.CreateMap<Arma2CoSettings, Arma2CoSettingsDataModel>()
                .ForMember(x => x.Arma2Free, opt => opt.Ignore())
                .ForMember(x => x.Arma2Original, opt => opt.Ignore())
                .AfterMap(AfterCoMap);

            config.CreateMap<Arma3Settings, Arma3SettingsDataModel>();
            config.CreateMap<Homeworld2Settings, HomeWorld2SettingsDataModel>();
            config.CreateMap<GTAVSettings, GTAVSettingsDataModel>();

            config.CreateMap<GameSettingsDataModel, GameSettings>()
                .Include<RealVirtualityGameSettingsDataModel, RealVirtualitySettings>()
                .Include<HomeWorld2SettingsDataModel, Homeworld2Settings>()
                .Include<GTAVSettingsDataModel, GTAVSettings>();

            config.CreateMap<RealVirtualityGameSettingsDataModel, RealVirtualitySettings>()
                .Include<ArmaSettingsDataModel, ArmaSettings>();
            config.CreateMap<ArmaSettingsDataModel, ArmaSettings>()
                .Include<Arma2OaSettingsDataModel, Arma2OaSettings>();
            config.CreateMap<Arma2OaSettingsDataModel, Arma2OaSettings>()
                .Include<Arma3SettingsDataModel, Arma3Settings>()
                .Include<Arma2CoSettingsDataModel, Arma2CoSettings>();
            config.CreateMap<Arma3SettingsDataModel, Arma3Settings>();
            config.CreateMap<Arma2CoSettingsDataModel, Arma2CoSettings>()
                .ForMember(x => x.Arma2Free, opt => opt.Ignore())
                .ForMember(x => x.Arma2Original, opt => opt.Ignore())
                .AfterMap(AfterCoRevMap);

            config.CreateMap<Arma2OriginalChildSettingsDataModel, ArmaSettings>();
            config.CreateMap<Arma2OriginalChildSettingsDataModel, Arma2FreeSettings>();

            config.CreateMap<HomeWorld2SettingsDataModel, Homeworld2Settings>();
            config.CreateMap<GTAVSettingsDataModel, GTAVSettings>();
        }
예제 #45
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <AllLectionsViewModel, UsersViewModel>().ForMember(id => id.Id, user => user.MapFrom(md => md.UserId));
     configuration.CreateMap <AllLectionsViewModel, CourseViewModel>().ForMember(id => id.Id, course => course.MapFrom(c => c.CourseId));
 }
예제 #46
0
 public void CreateMappings(IProfileExpression configuration)
 {
     configuration.CreateMap <OptionServiceModel, OptionConciseViewModel>()
     .ForMember(dest => dest.OptionTypeName, opt => opt.MapFrom(src => src.OptionType.Name));
 }
예제 #47
0
 static void SetupSourceOld(IProfileExpression mapConfig) {
     mapConfig.CreateMap<SourceServerQueryResult, Server>()
         .ForMember(x => x.NumPlayers,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("playerCount").TryInt()))
         .ForMember(x => x.MaxPlayers,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("playerMax").TryInt()))
         .ForMember(x => x.Difficulty,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("difficulty").TryInt()))
         //TODO: not in steam
         .ForMember(x => x.GameState,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("gameState").TryInt()))
         //TODO: not in steam
         .ForMember(x => x.VerifySignatures,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("verifySignatures").TryInt()))
         //TODO: not in steam
         .ForMember(x => x.SvBattleye,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("sv_battleye").TryInt()))
         //TODO: not in steam
         .ForMember(x => x.ReqBuild,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("requiredBuild").TryIntNullable()))
         .ForMember(x => x.PasswordRequired,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("visibility").TryInt() > 0))
         .ForMember(x => x.Mission, opt => opt.ResolveUsing(src => src.GetSettingOrDefault("map")))
         .ForMember(x => x.Island,
             opt => opt.ResolveUsing(src => CapitalizeString(src.GetSettingOrDefault("island"))))
         .ForMember(x => x.GameType, opt => opt.ResolveUsing(src => {
             var str = CapitalizeString(src.GetSettingOrDefault("gametype"));
             return string.IsNullOrWhiteSpace(str) ? "Unknown" : str;
         }))
         //TODO: not in steam
         .ForMember(x => x.GameName, opt => opt.ResolveUsing(src => src.GetSettingOrDefault("folder")))
         .ForMember(x => x.GameVer,
             opt => opt.ResolveUsing(src => GetVersion(src.GetSettingOrDefault("version"))))
         .ForMember(x => x.Signatures,
             opt => opt.ResolveUsing(src => src.GetSettingOrDefault("keywords").TrySplit(',')))
         .AfterMap(SourceAfterMap);
 }