//Typically I have properties in here pointing to the Data.Model class protected override void Initialize(System.Data.IDataRecord dataRow) { _metaData = new Model.Metadata(); _metaData.Id = Convert.ToInt32(dataRow["Id"].ToString()); _metaData.Title = (dataRow["Title"].ToString()); _metaData.Sku = (dataRow["Sku"].ToString()); _metaData.IsLive = Convert.ToBoolean(dataRow["IsLive"].ToString()); }
public bool Logic() { var logs = new List <Log>(); try { logs.Add(new Log(Core.Enums.LogHelpers.LogType.INFO, "Starting Metadata logic", null)); var showRepo = new ShowRepository(ConnectionString); var metadataRepo = new MetadataRepository(ConnectionString); logs.Add(new Log(Core.Enums.LogHelpers.LogType.DEBUG, "Getting shows in database", null)); var showsInDatabase = showRepo.Select(); logs.Add(new Log(Core.Enums.LogHelpers.LogType.DEBUG, $"Found {showsInDatabase.Count} shows", null)); logs.Add(new Log(Core.Enums.LogHelpers.LogType.DEBUG, "Getting metadatas in database", null)); var metadataInDatabase = metadataRepo.Select(); logs.Add(new Log(Core.Enums.LogHelpers.LogType.DEBUG, $"Found {metadataInDatabase.Count} shows", null)); logs.Add(new Log(Core.Enums.LogHelpers.LogType.INFO, $"Getting shows that does not have metadata", null)); //2433 var showsWithoutMetadata = (from shows in showsInDatabase join metadata in metadataInDatabase on shows.Id equals metadata.ShowId into md from metadata in md.DefaultIfEmpty() select new { shows }).ToList(); logs.Add(new Log(Core.Enums.LogHelpers.LogType.INFO, $"Found {showsWithoutMetadata.Count} shows without metadata", null)); foreach (var show in showsWithoutMetadata) { logs.Add(new Log(Core.Enums.LogHelpers.LogType.INFO, $"Looking for {show.shows.Title} metadata", null)); var metadata = GetMetadata(show.shows.Source, show.shows.Url); var newMetadata = new Data.Model.Metadata(show.shows.Id, metadata.ImageUrl, metadata.Plot, metadata.Cast, metadata.Language); metadataRepo.Create(newMetadata); logs.Add(new Log(Core.Enums.LogHelpers.LogType.INFO, $"Metadata added successfully", null)); } } catch (Exception e) { logs.Add(new Log(Core.Enums.LogHelpers.LogType.INFO, e.Message, e.StackTrace)); } logs.Add(new Log(Core.Enums.LogHelpers.LogType.INFO, "Finished Metadata logic", null)); LogRepository.Create(logs); return(true); }