示例#1
0
        public async Task Test()
        {
            var cs = new CloudStore();
            await cs.Load();

            await cs.Moo();
        }
示例#2
0
        protected virtual void InitCloudStore()
        {
            var storageConnectionString = ConfigurationManager.AppSettings["storageConnectionString"];
            var storageName             = ConfigurationManager.AppSettings["storageName"];

            CloudStore.Init(storageConnectionString, storageName);
        }
示例#3
0
        public async Task Moo()
        {
            var cs = new CloudStore();
            await cs.Load();

            Debug.WriteLine(cs.AuthorizationUrl);
        }
示例#4
0
 public async Task Auth()
 {
     var cs           = new CloudStore();
     var requestToken = new UserLogin
     {
         Secret = "pmi2qxfHOwYOvyBF",
         Token  = "W91mXsPy0wNWLyTU"
     };
     await cs.Authenticate(requestToken);
 }
示例#5
0
        public async Task <bool> CheckAuthenitcationAsync()
        {
            if (!isAuthenticated)
            {
                if (cs != null)
                {
                    isAuthenticated = await CloudStore.AuthenticateAsync();
                }
            }

            return(isAuthenticated);
        }
示例#6
0
        private static void SetUp()
        {
            if (_isSetup)
            {
                return;
            }

            var storageConnectionString = VstsSettings.GetSetting("storageConnectionString", DefaultStorageConnectionString);
            var storageName             = VstsSettings.GetSetting("storageName", DefaultStorageName);

            CloudStore.Init(storageConnectionString, storageName);
            _isSetup = true;
        }
示例#7
0
        public async Task <bool> RemoveFolder(string root, string project, UpdateStatus UpdateStatusRoutine)
        {
            string remoteFolderName = "/" + root + "/" + project;

            bool delWorked = await CloudStore.DeleteTakeAsync(remoteFolderName);

            if (!delWorked)
            {
                return(false);
            }

            return(true);
        }
示例#8
0
        public void AddEvidenceFile(string filename, byte[] content)
        {
            var cloudName = Guid.NewGuid().ToString().ToLower() + Path.GetExtension(filename).ToLower();

            CloudStore.Store("bsg-" + Id, cloudName, filename, content);

            Evidence = Evidence ?? new Evidence();

            var file = new EvidenceFile
            {
                Name      = filename,
                CloudName = cloudName,
            };

            Evidence.Files.Add(file);
            Repository.Update(this);
        }
示例#9
0
        public void AddEvidenceFile()
        {
            var form = new ChangeOfCircsBuilder("form").Insert();

            var fileBytes = Encoding.ASCII.GetBytes("some content");

            form.AddEvidenceFile("FileName1.txt", fileBytes);

            var storedForm = Repository.Load <ChangeOfCircs>(form.Id);

            storedForm.Evidence.Files.Count.Should().Be(1);

            var file = storedForm.Evidence.Files[0];

            file.Name.Should().Be("FileName1.txt");

            CloudStore.List("coc-" + form.Id).Should().Contain(file.CloudName);
        }
        public void Store()
        {
            var content = Encoding.ASCII.GetBytes("my file contents");

            CloudStore.Store("folder1", "file1.txt", "metadata_filename", content);
            CloudStore.Store("folder1", "file2.txt", "metadata_filename", content);
            CloudStore.Store("folder1", "file3.txt", "metadata_filename", content);
            CloudStore.Store("folder2", "file1.txt", "metadata_filename", content);
            CloudStore.Store("folder2", "file2.txt", "metadata_filename", content);
            CloudStore.Store("folder2", "file3.txt", "metadata_filename", content);
            CloudStore.Store(_guidFolder, "file1.txt", "metadata_filename", content);
            CloudStore.Store(_guidFolder, "file2.txt", "metadata_filename", content);
            CloudStore.Store(_guidFolder, "file3.txt", "metadata_filename", content);

            CloudStore.List("folder1").Count.Should().Be(3);
            var storedContent = CloudStore.Retrieve("folder1", "file1.txt");

            Encoding.ASCII.GetString(storedContent).Should().Be("my file contents");
        }
示例#11
0
 public object Execute(object executable)
 {
     using (var repository = Repository.New())
     {
         try
         {
             DomainRegistry.Repository        = repository;
             DomainRegistry.ValidationContext = new ValidationContext(_isValid);
             DomainRegistry.CloudStore        = CloudStore.New();
             var iExecutable = executable as IExecutable;
             return(iExecutable.Execute());
         }
         finally
         {
             DomainRegistry.CloudStore        = null;
             DomainRegistry.ValidationContext = null;
             DomainRegistry.Repository        = null;
         }
     }
 }
示例#12
0
        public void AddEvidenceFile_HandlesTwoFilesWithSameName()
        {
            var form = new ChangeOfCircsBuilder("form").Insert();

            var fileBytes = Encoding.ASCII.GetBytes("filename.txt content");

            form.AddEvidenceFile("filename", fileBytes);
            form.AddEvidenceFile("filename", fileBytes);

            var storedForm = Repository.Load <ChangeOfCircs>(form.Id);

            storedForm.Evidence.Files.Count.Should().Be(2);

            storedForm.Evidence.Files[0].Name.Should().Be("filename");
            storedForm.Evidence.Files[1].Name.Should().Be("filename");

            storedForm.Evidence.Files[0].CloudName.Should().NotBe(storedForm.Evidence.Files[1].CloudName, "cloud names should be unique");

            CloudStore.List("coc-form").Should().Contain(storedForm.Evidence.Files[0].CloudName);
            CloudStore.List("coc-form").Should().Contain(storedForm.Evidence.Files[1].CloudName);
        }
示例#13
0
        public void RemoveEvidenceFile(string cloudName)
        {
            Evidence = Evidence ?? new Evidence();

            int?index = null;

            for (int fileIndex = 0; fileIndex < Evidence.Files.Count; fileIndex++)
            {
                if (Evidence.Files[fileIndex].CloudName == cloudName)
                {
                    index = fileIndex;
                }
            }

            if (index.HasValue)
            {
                CloudStore.Remove("coc-" + Id, cloudName);

                Evidence.Files.RemoveAt(index.Value);
                Repository.Update(this);
            }
        }
        public void RemoveEvidenceFile()
        {
            var form = new BestStartGrantBuilder("form").Insert();

            // prep the form by adding a file
            var fileBytes = Encoding.ASCII.GetBytes("some content");

            form.AddEvidenceFile("FileName1.txt", fileBytes);

            var storedForm = Repository.Load <BestStartGrant>(form.Id);

            storedForm.Evidence.Files.Count.Should().Be(1);

            var file = storedForm.Evidence.Files[0];

            CloudStore.List("bsg-" + form.Id).Should().Contain(file.CloudName);

            // now remove the file
            storedForm.RemoveEvidenceFile(file.CloudName);
            storedForm = Repository.Load <BestStartGrant>(form.Id);

            storedForm.Evidence.Files.Count.Should().Be(0);
            CloudStore.List("bsg-" + form.Id).Should().NotContain(file.CloudName);
        }
示例#15
0
        public async Task <List <string> > UpdateProjectAsync(string root, string project, UpdateStatus UpdateStatusRoutine)
        {
            List <string> UpdatedSongs = new List <string>();

            try
            {
                string projectPath      = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), project);
                string remoteFolderName = "/" + root + "/" + project;

                // Is local folder created?
                var d = Directory.CreateDirectory(projectPath);
                if (d != null)
                {
                    var items = await cs.GetFolderListAsync(remoteFolderName);

                    foreach (var di in items)
                    {
                        if (isAudioFile(di))
                        {
                            UpdatedSongs.Add(di.name);

                            string   localFileName  = projectPath + "/" + di.name;
                            DateTime localWriteTime = File.GetLastWriteTimeUtc(localFileName);

                            if (Math.Abs((localWriteTime - di.modifiedDate).TotalSeconds) >= 1)
                            {
                                using (Stream s = new FileStream(localFileName, FileMode.OpenOrCreate))
                                {
                                    Debug.Print("downloading " + localFileName + "\n");
                                    UpdateStatusRoutine("downloading " + project + "/" + di.name);
                                    if (!await CloudStore.DownloadFileAsync(remoteFolderName + "/" + di.name, s))
                                    {
                                        Debug.Print("FAILED " + localFileName + "\n");
                                    }
                                    else
                                    {
                                        PersistentData.SetTrackNumber(projectPath, di.name, di.track);
                                    }

                                    s.Close();

                                    File.SetLastWriteTimeUtc(localFileName, di.modifiedDate);

                                    DateTime tempLastWriteTime = File.GetLastWriteTimeUtc(localFileName);
                                }
                            }
                        }
                    }

                    // Save provider
                    PersistentData.SetProvider(project, project, d.LastWriteTime.ToString(), CloudProvider);
                    PersistentData.SetCloudRoot(project, project, d.LastWriteTime.ToString(), root);
                }
            }
            catch (Exception ex)
            {
                Debug.Print("exception " + ex.Message);
                throw;
            }

            return(UpdatedSongs);
        }