Пример #1
0
        private static void ObjectsTable(AmazonDynamoDBClient client, LORLinkCheckerEntities db, string env)
        {
            Console.WriteLine("Processing Objects...");

            // Grab LLC-Buckets table
            var table = Table.LoadTable(client, "LLC-Objects" + env);
            var batch = table.CreateBatchWrite();

            // Process each bucket
            var objects = db.S3Objects;

            foreach (var o in objects)
            {
                // Create the item and add it
                var item = new Document();

                AddToDocument(item, "Id", o.S3ObjectId.ToString());
                AddToDocument(item, "Bucket", o.S3BucketId);
                AddToDocument(item, "Key", o.Key);
                AddToDocument(item, "ItemName", o.ItemName);
                AddToDocument(item, "ETag", o.ETag);
                AddToDocument(item, "IsFolder", o.IsFolder);
                AddToDocument(item, "DateFirstFound", o.DateFirstFound);
                AddToDocument(item, "DateLastFound", o.DateLastFound);
                AddToDocument(item, "DisabledUser", o.LinkCheckDisabledUser);
                AddToDocument(item, "ContentLastModified", o.ContentLastModified);
                AddToDocument(item, "DateLinksLastExtracted", o.DateLinksLastExtracted);
                AddToDocument(item, "DisabledDate", o.LinkCheckDisabledDate);

                batch.AddDocumentToPut(item);
            }

            batch.Execute();
        }
Пример #2
0
        private static void ObjectLinksTable(AmazonDynamoDBClient client, LORLinkCheckerEntities db, string env)
        {
            Console.WriteLine("Processing Object Links...");

            // Grab LLC-Buckets table
            var table = Table.LoadTable(client, "LLC-ObjectLinks" + env);
            var batch = table.CreateBatchWrite();

            // Process each bucket
            var objects = db.S3Objects_Links;

            foreach (var o in objects)
            {
                // Create the item and add it
                var item = new Document();

                AddToDocument(item, "Id", o.S3ObjectLinkId.ToString());
                AddToDocument(item, "Object", o.S3ObjectId);
                AddToDocument(item, "Link", o.LinkId);
                AddToDocument(item, "DateFirstFound", o.DateFirstFound);
                AddToDocument(item, "DateLastFound", o.DateLastFound);
                AddToDocument(item, "DateRemoved", o.DateRemoved);

                batch.AddDocumentToPut(item);
            }

            batch.Execute();
        }
Пример #3
0
        private static void ReportsTable(AmazonDynamoDBClient client, LORLinkCheckerEntities db, string env)
        {
            Console.WriteLine("Processing Reports...");

            // Grab LLC-Buckets table
            var table = Table.LoadTable(client, "LLC-Reports" + env);
            var batch = table.CreateBatchWrite();

            // Process each bucket
            var reports = db.LinkReports;

            foreach (var r in reports)
            {
                // Create the item and add it
                var item = new Document();

                AddToDocument(item, "Id", r.Id.ToString());
                AddToDocument(item, "Mean", r.Mean);
                AddToDocument(item, "StandardDeviation", r.StandardDeviation);
                AddToDocument(item, "SdMaximum", r.SdMaximum);
                AddToDocument(item, "Link", r.Link_LinkId);
                AddToDocument(item, "ContentSize", r.ContentSize);
                AddToDocument(item, "Stat", r.LinkStatId);

                batch.AddDocumentToPut(item);
            }

            batch.Execute();
        }
Пример #4
0
        private static void LinkStatsTable(AmazonDynamoDBClient client, LORLinkCheckerEntities db, string env)
        {
            Console.WriteLine("Processing Stats...");

            // Grab LLC-Buckets table
            var table = Table.LoadTable(client, "LLC-Stats" + env);
            var batch = table.CreateBatchWrite();

            // Process each bucket
            var stats = db.LinkStats;

            foreach (var s in stats)
            {
                // Create the item and add it
                var item = new Document();

                AddToDocument(item, "Id", s.LinkStatId.ToString());
                AddToDocument(item, "Link", s.LinkId);
                AddToDocument(item, "DateChecked", s.DateChecked);
                AddToDocument(item, "Error", s.ErrorMessage);
                AddToDocument(item, "StatusCode", s.StatusCode);
                AddToDocument(item, "StatusDescription", s.StatusDesc);
                AddToDocument(item, "ContentType", s.ContentType);
                AddToDocument(item, "ContentSize", s.ContentSize);
                AddToDocument(item, "DownloadTime", s.DownloadTime);

                batch.AddDocumentToPut(item);
            }

            batch.Execute();
        }
Пример #5
0
        private static void SettingsTable(AmazonDynamoDBClient client, LORLinkCheckerEntities db, string env)
        {
            Console.WriteLine("Processing Settings...");

            // Grab LLC-Buckets table
            var table = Table.LoadTable(client, "LLC-Settings" + env);
            var batch = table.CreateBatchWrite();

            foreach (var s in db.Settings)
            {
                // Create the item and add it
                var item = new Document();

                AddToDocument(item, "Id", s.SettingId.ToString());
                AddToDocument(item, "DateCreated", s.DateCreated);
                AddToDocument(item, "DateModified", s.DateModified);
                AddToDocument(item, "ModifiedUser", s.ModifiedUser);
                AddToDocument(item, "Name", s.Name);
                AddToDocument(item, "Value", s.Value);
                AddToDocument(item, "Description", s.Description);

                batch.AddDocumentToPut(item);
            }

            batch.Execute();
        }
Пример #6
0
        /// <summary>
        /// This is the old process for migrating data. It worked,
        /// but was WAYYYY to slow!! This probably won't be used,
        /// but it is worth keeping just in case it's neeeded.
        /// </summary>
        /// <param name="args">The program args</param>
        private static void CopyDbProcess(AmazonDynamoDBClient client, string env)
        {
            using (var db = new LORLinkCheckerEntities())
            {
                // Process Buckets
                BucketsTable(client, db, env);

                // Process Settings
                SettingsTable(client, db, env);

                // Process Links
                LinksTable(client, db, env);

                // Process LinkStats
                LinkStatsTable(client, db, env);

                // Process Reports
                ReportsTable(client, db, env);

                // Process Packages
                PackagesTable(client, db, env);

                // Process Objects
                ObjectsTable(client, db, env);

                // Process ObjectLinks
                ObjectLinksTable(client, db, env);
            }
        }
Пример #7
0
        private static void PackagesTable(AmazonDynamoDBClient client, LORLinkCheckerEntities db, string env)
        {
            Console.WriteLine("Processing Packages...");

            // Grab LLC-Buckets table
            var table = Table.LoadTable(client, "LLC-Packages" + env);
            var batch = table.CreateBatchWrite();

            // Process each bucket
            var packages = db.PackageUploads;

            foreach (var p in packages)
            {
                // Gather up the sources
                var files = new List <Document>();
                foreach (var f in p.PackageUploadFiles)
                {
                    var document = new Document();

                    AddToDocument(document, "Id", f.Id.ToString());
                    AddToDocument(document, "CourseLocation", f.CourseLocation);
                    AddToDocument(document, "Link", f.Link_LinkId);
                    AddToDocument(document, "Protocol", f.Protocol);
                    AddToDocument(document, "LinkName", f.LinkName);
                    AddToDocument(document, "ParentFolder", f.ParentFolder);

                    files.Add(document);
                }

                // Create the item and add it
                var item = new Document();

                AddToDocument(item, "Id", p.Id.ToString());
                AddToDocument(item, "Name", p.Name);
                AddToDocument(item, "Description", p.Description);
                AddToDocument(item, "UploadedBy", p.UploadedBy);
                AddToDocument(item, "DateUploaded", p.DateUploaded);
                AddToDocument(item, "Key", p.Key);
                AddToDocument(item, "FileName", p.FileName);
                AddToDocument(item, "ImsSchema", p.ImsSchema);
                AddToDocument(item, "ImsSchemaVersion", p.ImsSchemaVersion);
                AddToDocument(item, "ImsTitle", p.ImsTitle);
                AddToDocument(item, "ImsDescription", p.ImsDescription);
                AddToDocument(item, "Processed", p.PackageProcessed);
                item.Add("Files", files);

                batch.AddDocumentToPut(item);
            }

            batch.Execute();
        }
Пример #8
0
        private static void BucketsTable(AmazonDynamoDBClient client, LORLinkCheckerEntities db, string env)
        {
            Console.WriteLine("Processing Buckets...");

            // Grab LLC-Buckets table
            var table = Table.LoadTable(client, "LLC-Buckets" + env);
            var batch = table.CreateBatchWrite();

            // Process each bucket
            var buckets = db.S3Buckets;

            foreach (var b in buckets)
            {
                // Gather up the sources
                var sources = new List <Document>();
                foreach (var s in b.Sources)
                {
                    var document = new Document();

                    AddToDocument(document, "Id", s.SourceId.ToString());
                    AddToDocument(document, "Name", s.Name);
                    AddToDocument(document, "Description", s.Description);
                    AddToDocument(document, "AllowLinkChecking", s.AllowLinkChecking);
                    AddToDocument(document, "AllowLinkExtractions", s.AllowLinkExtractions);
                    AddToDocument(document, "Bucket", s.S3BucketId);
                    AddToDocument(document, "DateCreated", s.DateCreated);

                    sources.Add(document);
                }

                // Create the item and add it
                var item = new Document();

                AddToDocument(item, "Id", b.S3BucketId.ToString());
                AddToDocument(item, "Name", b.Name);
                AddToDocument(item, "AccessKey", b.AccessKey);
                AddToDocument(item, "SecretKey", b.SecretKey);
                AddToDocument(item, "Region", b.Region);
                AddToDocument(item, "SearchPrefix", b.SearchPrefix);
                AddToDocument(item, "DateCreated", b.DateCreated);
                item.Add("Sources", sources);

                batch.AddDocumentToPut(item);
            }

            batch.Execute();
        }
Пример #9
0
        private static void LinksTable(AmazonDynamoDBClient client, LORLinkCheckerEntities db, string env)
        {
            Console.WriteLine("Processing Links...");

            // Grab LLC-Buckets table
            var table = Table.LoadTable(client, "LLC-Links" + env);
            var batch = table.CreateBatchWrite();

            // Process each bucket
            var links = db.Links;

            foreach (var l in links)
            {
                // Create the item and add it
                var item = new Document();

                AddToDocument(item, "Id", l.LinkId.ToString());
                AddToDocument(item, "Url", l.LinkUrl);
                AddToDocument(item, "DateFirstFound", l.DateFirstFound);
                AddToDocument(item, "DateLastFound", l.DateLastFound);
                AddToDocument(item, "DisabledUser", l.LinkCheckDisabledUser);
                AddToDocument(item, "AttemptCount", l.AttemptCount);
                AddToDocument(item, "Source", l.SourceId);
                AddToDocument(item, "DisabledDate", l.LinkCheckDisabledDate);
                AddToDocument(item, "Valid", l.IsValid);
                AddToDocument(item, "DateLastChecked", l.DateLastChecked);
                AddToDocument(item, "AllTimeMinDownloadTime", l.AllTimeMinDownloadTime);
                AddToDocument(item, "AllTimeMaxDownloadTime", l.AllTimeMaxDownloadTime);
                AddToDocument(item, "AllTimeStdDevDownloadTime", l.AllTimeStdDevDownloadTime);
                AddToDocument(item, "PastWeekMinDownloadTime", l.PastWeekMinDownloadTime);
                AddToDocument(item, "PastWeekMaxDownloadTime", l.PastWeekMaxDownloadTime);
                AddToDocument(item, "PastWeekStdDevDownloadTime", l.PastWeekStdDevDownloadTime);
                AddToDocument(item, "DateUpdated", l.DateStatsUpdated);
                AddToDocument(item, "ReportNotBeforeDate", l.ReportNotBeforeDate);

                batch.AddDocumentToPut(item);
            }

            batch.Execute();
        }