public virtual void MapToEntity(ICharacterModel model, ref ICharacter entity, int currentDepth = 1) { currentDepth++; // Assign Base properties NameableEntityMapper.MapToEntity(model, ref entity); // Character Properties entity.RealName = model.RealName; entity.DateOfBirth = model.DateOfBirth; // Related Objects entity.PrimaryImageFileId = model.PrimaryImageFileId; entity.PrimaryImageFile = (ImageFile)model.PrimaryImageFile?.MapToEntity(); entity.FirstIssueAppearanceId = model.FirstIssueAppearanceId; entity.FirstIssueAppearance = (Issue)model.FirstIssueAppearance?.MapToEntity(); entity.GenderId = model.GenderId; entity.Gender = (Gender)model.Gender?.MapToEntity(); entity.OriginId = model.OriginId; entity.Origin = (Origin)model.Origin?.MapToEntity(); entity.PublisherId = model.PublisherId; entity.Publisher = (Publisher)model.Publisher?.MapToEntity(); // Associated Objects entity.CharacterAliases = model.CharacterAliases?.Where(i => i.Active).Select(CharacterAliasMapperExtensions.MapToEntity).ToList(); entity.CharacterCreators = model.CharacterCreators?.Where(i => i.Active).Select(CharacterCreatorMapperExtensions.MapToEntity).ToList(); entity.CharacterEnemies = model.CharacterEnemies?.Where(i => i.Active).Select(CharacterEnemyMapperExtensions.MapToEntity).ToList(); entity.CharacterEnemyTeams = model.CharacterEnemyTeams?.Where(i => i.Active).Select(CharacterEnemyTeamMapperExtensions.MapToEntity).ToList(); entity.CharacterFriends = model.CharacterFriends?.Where(i => i.Active).Select(CharacterFriendMapperExtensions.MapToEntity).ToList(); entity.CharacterFriendlyTeams = model.CharacterFriendlyTeams?.Where(i => i.Active).Select(CharacterFriendlyTeamMapperExtensions.MapToEntity).ToList(); entity.CharacterIssuesAppearedIn = model.CharacterIssuesAppearedIn?.Where(i => i.Active).Select(CharacterAppearedInIssueMapperExtensions.MapToEntity).ToList(); entity.CharacterIssuesDiedIn = model.CharacterIssuesDiedIn?.Where(i => i.Active).Select(CharacterDiedInIssueMapperExtensions.MapToEntity).ToList(); entity.CharacterIssues = model.CharacterIssues?.Where(i => i.Active).Select(CharacterIssueMapperExtensions.MapToEntity).ToList(); entity.CharacterMovies = model.CharacterMovies?.Where(i => i.Active).Select(CharacterMovieMapperExtensions.MapToEntity).ToList(); entity.CharacterPowers = model.CharacterPowers?.Where(i => i.Active).Select(CharacterPowerMapperExtensions.MapToEntity).ToList(); entity.CharacterStoryArcs = model.CharacterStoryArcs?.Where(i => i.Active).Select(CharacterStoryArcMapperExtensions.MapToEntity).ToList(); entity.CharacterTeams = model.CharacterTeams?.Where(i => i.Active).Select(CharacterTeamMapperExtensions.MapToEntity).ToList(); entity.CharacterVolumes = model.CharacterVolumes?.Where(i => i.Active).Select(CharacterVolumeMapperExtensions.MapToEntity).ToList(); }
void Awake() { _cameraTransform = Camera.main.transform; _characterModel = GetComponent<ICharacterModel>(); _characterTransform = _characterModel.transform; _mouseLook.Init (_characterTransform, _cameraTransform); }
public virtual bool AreEqual(ICharacterModel model, ICharacter entity) { return NameableEntityMapper.AreEqual(model, entity) // Character Properties && model.RealName == entity.RealName && model.DateOfBirth == entity.DateOfBirth // Related Objects && model.PrimaryImageFileId == entity.PrimaryImageFileId && model.FirstIssueAppearanceId == entity.FirstIssueAppearanceId && model.GenderId == entity.GenderId && model.OriginId == entity.OriginId && model.PublisherId == entity.PublisherId ; }
public ICharacterModel Create(ICharacterModel model) { // Validate model BusinessWorkflowBase.ValidateIDIsNull(model.Id); //BusinessWorkflowBase.ValidateRequiredString(model.Name, nameof(model.Name)); // Search for an Existing Record (Don't allow Duplicates var results = Search(CharacterMapper.MapToSearchModel(model)); if (results.Any()) { return results.First(); } // Return the first that matches // Map model to a new entity var newEntity = CharacterMapper.MapToEntity(model); newEntity.CreatedDate = BusinessWorkflowBase.GenDateTime; newEntity.UpdatedDate = null; newEntity.Active = true; // Add it CharactersRepository.Add(newEntity); // Try to Save Changes CharactersRepository.SaveChanges(); // Return the new value return Get(newEntity.Id); }
public virtual ICharacterSearchModel MapToSearchModel(ICharacterModel model) { var searchModel = NameableEntityMapper.MapToSearchModel<ICharacterModel, CharacterSearchModel>(model); // Search Properties searchModel.PrimaryImageFileId = model.PrimaryImageFileId; searchModel.PrimaryImageFileCustomKey = model.PrimaryImageFile?.CustomKey; searchModel.PrimaryImageFileApiDetailUrl = model.PrimaryImageFile?.ApiDetailUrl; searchModel.PrimaryImageFileSiteDetailUrl = model.PrimaryImageFile?.SiteDetailUrl; searchModel.PrimaryImageFileName = model.PrimaryImageFile?.Name; searchModel.PrimaryImageFileShortDescription = model.PrimaryImageFile?.ShortDescription; searchModel.PrimaryImageFileDescription = model.PrimaryImageFile?.Description; searchModel.FirstIssueAppearanceId = model.FirstIssueAppearanceId; searchModel.FirstIssueAppearanceCustomKey = model.FirstIssueAppearance?.CustomKey; searchModel.FirstIssueAppearanceApiDetailUrl = model.FirstIssueAppearance?.ApiDetailUrl; searchModel.FirstIssueAppearanceSiteDetailUrl = model.FirstIssueAppearance?.SiteDetailUrl; searchModel.FirstIssueAppearanceName = model.FirstIssueAppearance?.Name; searchModel.FirstIssueAppearanceShortDescription = model.FirstIssueAppearance?.ShortDescription; searchModel.FirstIssueAppearanceDescription = model.FirstIssueAppearance?.Description; searchModel.GenderId = model.GenderId; searchModel.GenderCustomKey = model.Gender?.CustomKey; searchModel.GenderApiDetailUrl = model.Gender?.ApiDetailUrl; searchModel.GenderSiteDetailUrl = model.Gender?.SiteDetailUrl; searchModel.GenderName = model.Gender?.Name; searchModel.GenderShortDescription = model.Gender?.ShortDescription; searchModel.GenderDescription = model.Gender?.Description; searchModel.OriginId = model.OriginId; searchModel.OriginCustomKey = model.Origin?.CustomKey; searchModel.OriginApiDetailUrl = model.Origin?.ApiDetailUrl; searchModel.OriginSiteDetailUrl = model.Origin?.SiteDetailUrl; searchModel.OriginName = model.Origin?.Name; searchModel.OriginShortDescription = model.Origin?.ShortDescription; searchModel.OriginDescription = model.Origin?.Description; searchModel.PublisherId = model.PublisherId; searchModel.PublisherCustomKey = model.Publisher?.CustomKey; searchModel.PublisherApiDetailUrl = model.Publisher?.ApiDetailUrl; searchModel.PublisherSiteDetailUrl = model.Publisher?.SiteDetailUrl; searchModel.PublisherName = model.Publisher?.Name; searchModel.PublisherShortDescription = model.Publisher?.ShortDescription; searchModel.PublisherDescription = model.Publisher?.Description; searchModel.RealName = model.RealName; // Return Search Model return searchModel; }
public ICharacterModel Update(ICharacterModel model) { // Validate model BusinessWorkflowBase.ValidateRequiredNullableID(model.Id); //BusinessWorkflowBase.ValidateRequiredString(model.Name, nameof(model.Name)); // Find existing entity // ReSharper disable once PossibleInvalidOperationException var existingEntity = CharactersRepository.Get(model.Id.Value); // Check if we would be applying identical information, if we are, just return the original // ReSharper disable once SuspiciousTypeConversion.Global if (CharacterMapper.AreEqual(model, existingEntity)) { return CharacterMapper.MapToModel(existingEntity); } // Map model to an existing entity CharacterMapper.MapToEntity(model, ref existingEntity); existingEntity.UpdatedDate = BusinessWorkflowBase.GenDateTime; // Update it CharactersRepository.Update(CharacterMapper.MapToEntity(model)); // Try to Save Changes CharactersRepository.SaveChanges(); // Return the new value return Get(existingEntity.Id); }