Exemplo n.º 1
0
        async Task <CommitID> TestCreateCommit(TreeID treeid, int num)
        {
            var db = getDataContext();

            ICommitRepository cmrepo = new CommitRepository(db);
            IRefRepository    rfrepo = new RefRepository(db);

            Tuple <Ref, Commit> parent = await cmrepo.GetCommitByRef("HEAD");

            Commit cm = new Commit.Builder(
                pParents:       parent == null ? new List <CommitID>(0) : new List <CommitID>(1)
            {
                parent.Item2.ID
            },
                pTreeID:        treeid,
                pCommitter:     "James Dunne <*****@*****.**>",
                pDateCommitted: DateTimeOffset.Parse("2011-08-29 00:00:00 -0500"),
                pMessage:       "Commit #" + num.ToString() + "."
                );

            Console.WriteLine("CommitID {0}", cm.ID);

            // Persist the commit:
            await cmrepo.PersistCommit(cm);

            // Once the commit is persisted, update HEAD ref:
            await rfrepo.PersistRef(new Ref.Builder("HEAD", cm.ID));

            return(cm.ID);
        }
Exemplo n.º 2
0
        protected override CommonTest.TagRepositoryTestMethods getTestMethods(FileSystem system)
        {
            IStreamedBlobRepository blrepo = new StreamedBlobRepository(system);
            ITreeRepository         trrepo = new TreeRepository(system);
            ICommitRepository       cmrepo = new CommitRepository(system);
            ITagRepository          tgrepo = new TagRepository(system);
            IRefRepository          rfrepo = new RefRepository(system);

            return(new CommonTest.TagRepositoryTestMethods(cmrepo, blrepo, trrepo, tgrepo, rfrepo));
        }
        protected override CommonTest.RefRepositoryTestMethods getTestMethods(DataContext db)
        {
            IStreamedBlobRepository blrepo = new StreamedBlobRepository(db);
            ITreeRepository         trrepo = new TreeRepository(db);
            ICommitRepository       cmrepo = new CommitRepository(db);
            ITagRepository          tgrepo = new TagRepository(db);
            IRefRepository          rfrepo = new RefRepository(db);

            return(new CommonTest.RefRepositoryTestMethods(cmrepo, blrepo, trrepo, tgrepo, rfrepo));
        }
Exemplo n.º 4
0
        async Task TestGetCommitTree()
        {
            var db = getDataContext();

            IRefRepository    rfrepo = new RefRepository(db);
            ICommitRepository cmrepo = new CommitRepository(db);

            var rf = await rfrepo.GetRef("HEAD");

            Debug.Assert(rf != null);

            var cmTree = await cmrepo.GetCommitTree(rf.CommitID, depth : 10);

            // TODO: gather up another 10-deep commit tree from the last partial commit?
            RecursivePrint(cmTree.Item1, cmTree.Item2);
        }
Exemplo n.º 5
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# PWSO receive sms message process.");

            var requestBody = await new StreamReader(req.Body).ReadToEndAsync();

            log.LogInformation(requestBody);
            var formValues = requestBody.Split('&')
                             .Select(value => value.Split('='))
                             .ToDictionary(pair => Uri.UnescapeDataString(pair[0]).Replace("+", " "),
                                           pair => Uri.UnescapeDataString(pair[1]).Replace("+", " "));
            var dto = new EventTextDto
            {
                Message = formValues["Body"],
                From    = formValues["From"],
                Zip     = formValues["FromZip"],
                City    = formValues["FromCity"]
            };
            //var dto = new EventTextDto{Message = "Track", From = "17035901821", Zip = "22193", City = "Dale City"} ;
            string responseMessage;

            try
            {
                var connectionString      = System.Environment.GetEnvironmentVariable("SQLAZURECONNSTR_TrainingModel");
                var azureConnectionString = System.Environment.GetEnvironmentVariable("AzureStorageConnectionString");
                var options = new DbContextOptionsBuilder <PwsodbContext>().UseSqlServer(connectionString ?? throw new InvalidOperationException()).Options;
                var context = new PwsodbContext(options);
                ITrainingRepository trainingRepository = new TrainingRepository(context);
                IRefRepository      refRepository      = new RefRepository(azureConnectionString);
                var worker       = new RegistrantWorker(trainingRepository, refRepository);
                var notification = worker.AddNumberForEvent(dto);
                responseMessage = notification.Result.Message;
            }
            catch (Exception e)
            {
                log.LogError("Fatal Error: " + e.ToString());

                throw;
            }

            responseMessage += ". This message is from the PWSO Notification System.";
            return(new OkObjectResult(responseMessage));
        }
Exemplo n.º 6
0
        public SQLSystemContext(string dataSource)
        {
            // @"Data Source=.\SQLEXPRESS;Initial Catalog=IVO;Integrated Security=SSPI"
            Asynq.DataContext db = new Asynq.DataContext(dataSource);

            TreeRepository trrepo = new TreeRepository(db);
            StreamedBlobRepository blrepo = new StreamedBlobRepository(db);
            TreePathStreamedBlobRepository tpsbrepo = new TreePathStreamedBlobRepository(db, blrepo);
            TagRepository tgrepo = new TagRepository(db);
            RefRepository rfrepo = new RefRepository(db);
            StageRepository strepo = new StageRepository(db);
            CommitRepository cmrepo = new CommitRepository(db);

            this.trrepo = trrepo;
            this.blrepo = blrepo;
            this.tpsbrepo = tpsbrepo;
            this.tgrepo = tgrepo;
            this.rfrepo = rfrepo;
            this.strepo = strepo;
            this.cmrepo = cmrepo;

            this.db = db;
        }
 public CommitRepository(DataContext db)
 {
     this.db = db;
     this.tgrepo = new TagRepository(db);
     this.rfrepo = new RefRepository(db);
 }
Exemplo n.º 8
0
        async Task DemonstrateHashing()
        {
            var db = getDataContext();

            IBlobRepository   blrepo = new BlobRepository(db);
            ITreeRepository   trrepo = new TreeRepository(db);
            ICommitRepository cmrepo = new CommitRepository(db);
            IRefRepository    rfrepo = new RefRepository(db);

            // Create a sample set of blobs:
            Blob readmeBlob;
            ImmutableContainer <BlobID, Blob> blobs = new ImmutableContainer <BlobID, Blob>(
                bl => bl.ID,
                readmeBlob = new Blob.Builder(pContents: Encoding.UTF8.GetBytes(@"Hello world"))
                );

            Console.Out.WriteAsync(String.Format("Blob {0} = \"{1}\"" + Environment.NewLine, readmeBlob.ID.ToString(firstLength: 7), Encoding.UTF8.GetString(readmeBlob.Contents)));
            // Persist them:
            var persistingBlobs = blrepo.PersistBlobs(blobs);

            // Create an initial tree:
            Tree trRoot;
            ImmutableContainer <TreeID, Tree> trees = new ImmutableContainer <TreeID, Tree>(
                tr => tr.ID,
                new Tree[] {
                trRoot = new Tree.Builder(
                    pTrees: new List <TreeTreeReference>(0),
                    pBlobs: new List <TreeBlobReference> {
                    new TreeBlobReference.Builder(pName: "README", pBlobID: readmeBlob.ID)
                }
                    )
            }
                );

            // Dump the tree:
            RecursivePrint(trRoot.ID, trees);

            // Now wait for the blob persistence to complete:
            await persistingBlobs;
            // Persist our tree now:
            var   persistTrees = trrepo.PersistTree(trRoot.ID, trees);
            await persistTrees;

            // Let's make a commit out of all that:
            Commit cm1 = new Commit.Builder(
                pParents:       new List <CommitID>(0),
                pTreeID:        trRoot.ID,
                pCommitter:     @"James Dunne <*****@*****.**>",
                pDateCommitted: DateTimeOffset.Now,
                pMessage:       "Initial commit."
                );

            // Persist that commit:
            Console.Out.WriteAsync(String.Format("Persisting commit {0}..." + Environment.NewLine, cm1.ID.ToString(firstLength: 7)));
            await cmrepo.PersistCommit(cm1);

            // Let's create a ref to point to it:
            await rfrepo.DestroyRefByName("demo/HEAD");

            await rfrepo.PersistRef(new Ref.Builder(pName: "demo/HEAD", pCommitID: cm1.ID));

            await Console.Out.WriteAsync(String.Format("Pointed demo/HEAD to commit {0}" + Environment.NewLine, cm1.ID.ToString(firstLength: 7)));

            // Now let's create a new blob with some revised contents: (adding a period at the end)
            Blob readmeBlob2;

            blobs = new ImmutableContainer <BlobID, Blob>(
                bl => bl.ID,
                readmeBlob2 = new Blob.Builder(Encoding.UTF8.GetBytes(@"Hello world."))
                );
            var persistBlobs2 = blrepo.PersistBlobs(blobs);

            // Make a new tree out of the old tree:
            Tree.Builder trRoot2b = new Tree.Builder(trRoot);
            // Point README to the new BlobID:
            trRoot2b.Blobs[0] = new TreeBlobReference.Builder(trRoot2b.Blobs[0])
            {
                BlobID = readmeBlob2.ID
            };

            // Freeze our Tree.Builder to a Tree:
            Tree trRoot2;

            trees = new ImmutableContainer <TreeID, Tree>(tr => tr.ID, trRoot2 = trRoot2b);

            // Wait for the blobs to persist:
            await persistBlobs2;
            // Now persist the new tree:
            await trrepo.PersistTree(trRoot2.ID, trees);

            // Load a streamed blob:
            IStreamedBlob strbl = await blrepo.GetStreamedBlob(readmeBlob.ID);

            await strbl.ReadStream(blsr =>
            {
                Console.WriteLine("blob is {0} length", blsr.Length);

                byte[] dum = new byte[8040];
                int count  = 8040;

                try
                {
                    while ((count = blsr.Read(dum, 0, 8040)) > 0)
                    {
                        for (int i = 0; i < (count / 40) + ((count % 40) > 0 ? 1 : 0); ++i)
                        {
                            Console.WriteLine(dum.ToHexString(i * 40, Math.Min(count - (i * 40), 40)));
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.Error.WriteLine(ex.ToString());
                }
            });
        }