//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());
 }
Пример #2
0
        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);
        }