public virtual IEpisode MapToEntity(IEpisodeModel model, int currentDepth = 1) { currentDepth++; var entity = NameableEntityMapper.MapToEntity <Episode, IEpisodeModel>(model); // Episode Properties entity.HasStaffReview = model.HasStaffReview; entity.AirDate = model.AirDate; entity.EpisodeCode = model.EpisodeCode; entity.SeasonNumber = model.SeasonNumber; entity.EpisodeNumber = model.EpisodeNumber; // Related Objects entity.PrimaryImageFileId = model.PrimaryImageFileId; entity.PrimaryImageFile = (ImageFile)model.PrimaryImageFile?.MapToEntity(); entity.SeriesId = model.SeriesId; entity.Series = (Series)model.Series?.MapToEntity(); // Associated Objects entity.EpisodeAliases = model.EpisodeAliases?.Where(i => i.Active).Select(EpisodeAliasMapperExtensions.MapToEntity).Cast <EpisodeAlias>().ToList(); entity.EpisodeCharacters = model.EpisodeCharacters?.Where(i => i.Active).Select(EpisodeCharacterMapperExtensions.MapToEntity).Cast <EpisodeCharacter>().ToList(); entity.EpisodeCharactersDied = model.EpisodeCharactersDied?.Where(i => i.Active).Select(EpisodeCharacterDiedMapperExtensions.MapToEntity).Cast <EpisodeCharacterDied>().ToList(); entity.EpisodeCharacterFirstAppearances = model.EpisodeCharacterFirstAppearances?.Where(i => i.Active).Select(EpisodeCharacterFirstAppearanceMapperExtensions.MapToEntity).Cast <EpisodeCharacterFirstAppearance>().ToList(); entity.EpisodeConcepts = model.EpisodeConcepts?.Where(i => i.Active).Select(EpisodeConceptMapperExtensions.MapToEntity).Cast <EpisodeConcept>().ToList(); entity.EpisodeConceptFirstAppearances = model.EpisodeConceptFirstAppearances?.Where(i => i.Active).Select(EpisodeConceptFirstAppearanceMapperExtensions.MapToEntity).Cast <EpisodeConceptFirstAppearance>().ToList(); entity.EpisodeLocations = model.EpisodeLocations?.Where(i => i.Active).Select(EpisodeLocationMapperExtensions.MapToEntity).Cast <EpisodeLocation>().ToList(); entity.EpisodeLocationFirstAppearances = model.EpisodeLocationFirstAppearances?.Where(i => i.Active).Select(EpisodeLocationFirstAppearanceMapperExtensions.MapToEntity).Cast <EpisodeLocationFirstAppearance>().ToList(); entity.EpisodeObjects = model.EpisodeObjects?.Where(i => i.Active).Select(EpisodeObjectMapperExtensions.MapToEntity).Cast <EpisodeObject>().ToList(); entity.EpisodeObjectFirstAppearances = model.EpisodeObjectFirstAppearances?.Where(i => i.Active).Select(EpisodeObjectFirstAppearanceMapperExtensions.MapToEntity).Cast <EpisodeObjectFirstAppearance>().ToList(); entity.EpisodePeople = model.EpisodePeople?.Where(i => i.Active).Select(EpisodePersonMapperExtensions.MapToEntity).Cast <EpisodePerson>().ToList(); entity.EpisodeStoryArcs = model.EpisodeStoryArcs?.Where(i => i.Active).Select(EpisodeStoryArcMapperExtensions.MapToEntity).Cast <EpisodeStoryArc>().ToList(); entity.EpisodeStoryArcFirstAppearances = model.EpisodeStoryArcFirstAppearances?.Where(i => i.Active).Select(EpisodeStoryArcFirstAppearanceMapperExtensions.MapToEntity).Cast <EpisodeStoryArcFirstAppearance>().ToList(); entity.EpisodeTeams = model.EpisodeTeams?.Where(i => i.Active).Select(EpisodeTeamMapperExtensions.MapToEntity).Cast <EpisodeTeam>().ToList(); entity.EpisodeTeamFirstAppearances = model.EpisodeTeamFirstAppearances?.Where(i => i.Active).Select(EpisodeTeamFirstAppearanceMapperExtensions.MapToEntity).Cast <EpisodeTeamFirstAppearance>().ToList(); // Return Entity return(entity); }
public IEpisodeModel Update(IEpisodeModel model) { // Validate model BusinessWorkflowBase.ValidateRequiredNullableID(model.Id); //BusinessWorkflowBase.ValidateRequiredString(model.Name, nameof(model.Name)); // Find existing entity // ReSharper disable once PossibleInvalidOperationException var existingEntity = EpisodesRepository.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 (EpisodeMapper.AreEqual(model, existingEntity)) { return(EpisodeMapper.MapToModel(existingEntity)); } // Map model to an existing entity EpisodeMapper.MapToEntity(model, ref existingEntity); existingEntity.UpdatedDate = BusinessWorkflowBase.GenDateTime; // Update it EpisodesRepository.Update(EpisodeMapper.MapToEntity(model)); // Try to Save Changes EpisodesRepository.SaveChanges(); // Return the new value return(Get(existingEntity.Id)); }
public IEpisodeModel Create(IEpisodeModel 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(EpisodeMapper.MapToSearchModel(model)); if (results.Any()) { return(results.First()); } // Return the first that matches // Map model to a new entity var newEntity = EpisodeMapper.MapToEntity(model); newEntity.CreatedDate = BusinessWorkflowBase.GenDateTime; newEntity.UpdatedDate = null; newEntity.Active = true; // Add it EpisodesRepository.Add(newEntity); // Try to Save Changes EpisodesRepository.SaveChanges(); // Return the new value return(Get(newEntity.Id)); }
public virtual void MapToEntity(IEpisodeModel model, ref IEpisode entity, int currentDepth = 1) { currentDepth++; // Assign Base properties NameableEntityMapper.MapToEntity(model, ref entity); // Episode Properties entity.HasStaffReview = model.HasStaffReview; entity.AirDate = model.AirDate; entity.EpisodeCode = model.EpisodeCode; entity.SeasonNumber = model.SeasonNumber; entity.EpisodeNumber = model.EpisodeNumber; // Related Objects entity.PrimaryImageFileId = model.PrimaryImageFileId; entity.PrimaryImageFile = (ImageFile)model.PrimaryImageFile?.MapToEntity(); entity.SeriesId = model.SeriesId; entity.Series = (Series)model.Series?.MapToEntity(); // Associated Objects entity.EpisodeAliases = model.EpisodeAliases?.Where(i => i.Active).Select(EpisodeAliasMapperExtensions.MapToEntity).ToList(); entity.EpisodeCharacters = model.EpisodeCharacters?.Where(i => i.Active).Select(EpisodeCharacterMapperExtensions.MapToEntity).ToList(); entity.EpisodeCharactersDied = model.EpisodeCharactersDied?.Where(i => i.Active).Select(EpisodeCharacterDiedMapperExtensions.MapToEntity).ToList(); entity.EpisodeCharacterFirstAppearances = model.EpisodeCharacterFirstAppearances?.Where(i => i.Active).Select(EpisodeCharacterFirstAppearanceMapperExtensions.MapToEntity).ToList(); entity.EpisodeConcepts = model.EpisodeConcepts?.Where(i => i.Active).Select(EpisodeConceptMapperExtensions.MapToEntity).ToList(); entity.EpisodeConceptFirstAppearances = model.EpisodeConceptFirstAppearances?.Where(i => i.Active).Select(EpisodeConceptFirstAppearanceMapperExtensions.MapToEntity).ToList(); entity.EpisodeLocations = model.EpisodeLocations?.Where(i => i.Active).Select(EpisodeLocationMapperExtensions.MapToEntity).ToList(); entity.EpisodeLocationFirstAppearances = model.EpisodeLocationFirstAppearances?.Where(i => i.Active).Select(EpisodeLocationFirstAppearanceMapperExtensions.MapToEntity).ToList(); entity.EpisodeObjects = model.EpisodeObjects?.Where(i => i.Active).Select(EpisodeObjectMapperExtensions.MapToEntity).ToList(); entity.EpisodeObjectFirstAppearances = model.EpisodeObjectFirstAppearances?.Where(i => i.Active).Select(EpisodeObjectFirstAppearanceMapperExtensions.MapToEntity).ToList(); entity.EpisodePeople = model.EpisodePeople?.Where(i => i.Active).Select(EpisodePersonMapperExtensions.MapToEntity).ToList(); entity.EpisodeStoryArcs = model.EpisodeStoryArcs?.Where(i => i.Active).Select(EpisodeStoryArcMapperExtensions.MapToEntity).ToList(); entity.EpisodeStoryArcFirstAppearances = model.EpisodeStoryArcFirstAppearances?.Where(i => i.Active).Select(EpisodeStoryArcFirstAppearanceMapperExtensions.MapToEntity).ToList(); entity.EpisodeTeams = model.EpisodeTeams?.Where(i => i.Active).Select(EpisodeTeamMapperExtensions.MapToEntity).ToList(); entity.EpisodeTeamFirstAppearances = model.EpisodeTeamFirstAppearances?.Where(i => i.Active).Select(EpisodeTeamFirstAppearanceMapperExtensions.MapToEntity).ToList(); }
public virtual bool AreEqual(IEpisodeModel model, IEpisode entity) { return(NameableEntityMapper.AreEqual(model, entity) // Episode Properties && model.HasStaffReview == entity.HasStaffReview && model.AirDate == entity.AirDate && model.EpisodeCode == entity.EpisodeCode && model.SeasonNumber == entity.SeasonNumber && model.EpisodeNumber == entity.EpisodeNumber // Related Objects && model.PrimaryImageFileId == entity.PrimaryImageFileId && model.SeriesId == entity.SeriesId ); }
public virtual bool AreEqual(IEpisodeModel model, IEpisode entity) { return NameableEntityMapper.AreEqual(model, entity) // Episode Properties && model.HasStaffReview == entity.HasStaffReview && model.AirDate == entity.AirDate && model.EpisodeCode == entity.EpisodeCode && model.SeasonNumber == entity.SeasonNumber && model.EpisodeNumber == entity.EpisodeNumber // Related Objects && model.PrimaryImageFileId == entity.PrimaryImageFileId && model.SeriesId == entity.SeriesId ; }
public void Verify_Update_WithDuplicateData_Should_NotAddAndReturnOriginal() { // Arrange var entity = EpisodesMockingSetup.DoMockingSetupForEpisode(1); var mockEpisodesRepository = EpisodesMockingSetup.DoMockingSetupForRepository(); mockEpisodesRepository.Setup(m => m.Get(It.IsAny <int>())).Returns(() => entity.Object); var businessWorkflow = new EpisodesBusinessWorkflow(mockEpisodesRepository.Object, new EpisodeMapper()); var model = EpisodesMockingSetup.DoMockingSetupForEpisodeModel(1); IEpisodeModel result = null; // Act try { result = businessWorkflow.Update(model.Object); } catch { /* ignored, the Get call at the end doesn't work because don't get a real entity with id on it */ } // Assert Assert.NotNull(result); Assert.Equal("/TEST/KING-STEPHEN", result.ApiDetailUrl); Assert.Null(result.UpdatedDate); }
public IEpisodeModel Create(IEpisodeModel 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(EpisodeMapper.MapToSearchModel(model)); if (results.Any()) { return results.First(); } // Return the first that matches // Map model to a new entity var newEntity = EpisodeMapper.MapToEntity(model); newEntity.CreatedDate = BusinessWorkflowBase.GenDateTime; newEntity.UpdatedDate = null; newEntity.Active = true; // Add it EpisodesRepository.Add(newEntity); // Try to Save Changes EpisodesRepository.SaveChanges(); // Return the new value return Get(newEntity.Id); }
public virtual IEpisodeSearchModel MapToSearchModel(IEpisodeModel model) { var searchModel = NameableEntityMapper.MapToSearchModel <IEpisodeModel, EpisodeSearchModel>(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.SeriesId = model.SeriesId; searchModel.SeriesCustomKey = model.Series?.CustomKey; searchModel.SeriesApiDetailUrl = model.Series?.ApiDetailUrl; searchModel.SeriesSiteDetailUrl = model.Series?.SiteDetailUrl; searchModel.SeriesName = model.Series?.Name; searchModel.SeriesShortDescription = model.Series?.ShortDescription; searchModel.SeriesDescription = model.Series?.Description; searchModel.HasStaffReview = model.HasStaffReview; // Return Search Model return(searchModel); }
public IEpisodeModel Update(IEpisodeModel model) { // Validate model BusinessWorkflowBase.ValidateRequiredNullableID(model.Id); //BusinessWorkflowBase.ValidateRequiredString(model.Name, nameof(model.Name)); // Find existing entity // ReSharper disable once PossibleInvalidOperationException var existingEntity = EpisodesRepository.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 (EpisodeMapper.AreEqual(model, existingEntity)) { return EpisodeMapper.MapToModel(existingEntity); } // Map model to an existing entity EpisodeMapper.MapToEntity(model, ref existingEntity); existingEntity.UpdatedDate = BusinessWorkflowBase.GenDateTime; // Update it EpisodesRepository.Update(EpisodeMapper.MapToEntity(model)); // Try to Save Changes EpisodesRepository.SaveChanges(); // Return the new value return Get(existingEntity.Id); }
public static bool AreEqual(this IEpisodeModel model, IEpisode entity) { return(Mapper.AreEqual(model, entity)); }
public static IEpisodeSearchModel MapToSearchModel(this IEpisodeModel model) { return(Mapper.MapToSearchModel(model)); }
public static void MapToEntity(this IEpisodeModel model, ref IEpisode entity, int currentDepth = 1) { Mapper.MapToEntity(model, ref entity, currentDepth); }
public static IEpisode MapToEntity(this IEpisodeModel model, int currentDepth = 1) { return(Mapper.MapToEntity(model, currentDepth)); }
public EpisodeViewModel(IEpisodeModel episodeModel, IViewFinder viewFnder) { this.episodeModel = episodeModel; this.viewFinder = viewFinder; CheckLoginPassed(this.episodeModel.LoginPassed); }
public virtual IEpisodeSearchModel MapToSearchModel(IEpisodeModel model) { var searchModel = NameableEntityMapper.MapToSearchModel<IEpisodeModel, EpisodeSearchModel>(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.SeriesId = model.SeriesId; searchModel.SeriesCustomKey = model.Series?.CustomKey; searchModel.SeriesApiDetailUrl = model.Series?.ApiDetailUrl; searchModel.SeriesSiteDetailUrl = model.Series?.SiteDetailUrl; searchModel.SeriesName = model.Series?.Name; searchModel.SeriesShortDescription = model.Series?.ShortDescription; searchModel.SeriesDescription = model.Series?.Description; searchModel.HasStaffReview = model.HasStaffReview; // Return Search Model return searchModel; }