Beispiel #1
0
        private bool UploadFiles(BllFilepathLib lib)
        {
            string foldername = Event.Name + " " + DateTime.Now.ToString("dd.MM.yy H-mm-ss");

            Event.FilepathLib.FolderName = foldername;
            foreach (var path in Filepaths)
            {
                string fileName = Path.GetFileName(path);

                using (Stream uploadStream = new FileStream(path, FileMode.Open))
                {
                    using (FileServiceClient fileService = new FileServiceClient())
                    {
                        var msg = new FileUploadMessage()
                        {
                            VirtualPath = fileName,
                            DataStream  = uploadStream,
                            FolderName  = foldername
                        };
                        fileService.PutFile(msg);
                    }
                }
                Event.FilepathLib.Entities.Add(new BllFilepath {
                    Path = fileName
                });
            }
            //}
            return(true);
        }
Beispiel #2
0
        private static void Main()
        {
            var client = new DiscoveryClient(new UdpDiscoveryEndpoint());

            // Найти все доступные конечные точки
            // Note: вы также можете вызвать этот метод асинхронно
            var criteria = new FindCriteria(typeof(FileServiceLib.IFileService));
            var response = client.Find(criteria);

            // Связаться с одной из них
            FileServiceClient svcClient = null;

            foreach (var endpoint in response.Endpoints)
            {
                svcClient = new FileServiceClient();
                svcClient.Endpoint.Address = endpoint.Address;
                break;
            }
            // Вызвать службу
            if (svcClient != null)
            {
                var dirs = svcClient.GetSubDirectories(@"C:\");
                foreach (var dir in dirs)
                {
                    Console.WriteLine(dir);
                }
            }
            Console.ReadLine();
        }
Beispiel #3
0
        public async Task SharedKeyAuthAsync()
        {
            // Get a Storage account name, shared key, and endpoint Uri.
            //
            // You can obtain both from the Azure Portal by clicking Access
            // Keys under Settings in the Portal Storage account blade.
            //
            // You can also get access to your account keys from the Azure CLI
            // with:
            //
            //     az storage account keys list --account-name <account_name> --resource-group <resource_group>
            //
            string accountName = StorageAccountName;
            string accountKey  = StorageAccountKey;
            Uri    serviceUri  = StorageAccountFileUri;

            // Create a SharedKeyCredential that we can use to authenticate
            StorageSharedKeyCredential credential = new StorageSharedKeyCredential(accountName, accountKey);

            // Create a client that can authenticate with a connection string
            FileServiceClient service = new FileServiceClient(serviceUri, credential);

            // Make a service request to verify we've succesfully authenticated
            await service.GetPropertiesAsync();
        }
        /// <summary>
        /// Create the connection to the service using the given host address
        /// </summary>
        /// <param name="hostAddress">Address of the host</param>
        public void SetRemoteAddress(string hostAddress)
        {
            Close();

            //Create Basic binding that uses Windows authentication
            BasicHttpBinding binding = new BasicHttpBinding();

            binding.Security.Mode = BasicHttpSecurityMode.Transport;
            binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;

            //Define URI for SSL Endpoint
            UriBuilder uriBuilder = new UriBuilder(Uri.UriSchemeHttps, hostAddress, 443, "/FileService");

            //Create the client and specify the credentials (Windows default)
            EndpointAddress webServiceAddress = new EndpointAddress(uriBuilder.Uri);

            ClientProxy = new FileServiceClient(binding, webServiceAddress);
            ClientProxy.ClientCredentials.Windows.ClientCredential = (NetworkCredential)CredentialCache.DefaultCredentials;
            ClientProxy.ClientCredentials.ServiceCertificate.SslCertificateAuthentication = new X509ServiceCertificateAuthentication()
            {
                CertificateValidationMode = X509CertificateValidationMode.None
            };

            ClientProxy.Open();
        }
 public GetSharesAsyncCollection(
     FileServiceClient client,
     GetSharesOptions?options)
 {
     _client  = client;
     _options = options;
 }
 private void InnerChannel_Closed(object sender, EventArgs e)
 {
     _fileServiceClient.InnerChannel.Opened  += InnerChannel_Opened;
     _fileServiceClient.InnerChannel.Closed  += InnerChannel_Closed;
     _fileServiceClient.InnerChannel.Faulted += InnerChannel_Faulted;
     _fileServiceClient = null;
 }
        public async Task CheckFileAsyncPasses()
        {
            // arrange
            FileServiceClient.ClearHttpClient();

            var resourceId = 1;
            var baseUri    = new Uri("http://foo/");
            var fullUri    = new Uri(baseUri, $"Files({resourceId})");

            var mockResponse = new HttpResponseMessage(HttpStatusCode.OK)
            {
                StatusCode = HttpStatusCode.NoContent,
                Content    = new StringContent(string.Empty),
            };

            mockResponse.Content.Headers.LastModified = DateTimeOffset.UtcNow;
            var myHash = "MyHash";

            mockResponse.Content.Headers.ContentMD5 = Encoding.UTF8.GetBytes(myHash);
            var myFileName = "MyFile.txt";

            mockResponse.Content.Headers.ContentDisposition =
                new ContentDispositionHeaderValue("attachment")
            {
                FileName = myFileName
            };

            var handlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict);

            handlerMock
            .Protected()
            // Setup the PROTECTED method to mock
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>()
                )
            // prepare the expected response of the mocked http call
            .ReturnsAsync(mockResponse)
            .Verifiable();

            // act
            var fileServiceClient = new FileServiceClient(this.mockAccessTokenRepository.Object, baseUri, handlerMock.Object, new CancellationToken());
            var result            = await fileServiceClient.CheckFileAsync(resourceId).ConfigureAwait(false);

            // assert
            Assert.AreEqual(mockResponse.StatusCode, result.StatusCode);
            Assert.AreEqual(mockResponse.Content.Headers.LastModified, result.LastModified);
            Assert.AreEqual(myHash, result.HashForFileOnServer);
            Assert.AreEqual(myFileName, result.FileNameOnServer);

            handlerMock.Protected()
            .Verify(
                "SendAsync",
                Times.Once(),
                ItExpr.Is <HttpRequestMessage>(
                    req => req.Method == HttpMethod.Get &&
                    req.RequestUri == fullUri),
                ItExpr.IsAny <CancellationToken>());
        }
 public FormRestaurants()
 {
     InitializeComponent();
     _restaurantServiceClient = new RestaurantServiceClient();
     _fileServiceClient       = new FileServiceClient();
     _menuServiceClient       = new MenuService.MenuServiceClient();
 }
Beispiel #9
0
        private void button1_Click(object sender, EventArgs e)
        {
            var secureChanel = new SslCredentials(File.ReadAllText("server.crt"));
            var channOptions = new List <ChannelOption>
            {
                new ChannelOption(ChannelOptions.SslTargetNameOverride, "deploy")
            };
            Channel channel = new Channel("127.0.0.1:50051", secureChanel, channOptions);

            var client = new FileServiceClient(channel);
            var req    = new Proto.FSReq();

            req.DstDir   = "ssdd";
            req.IfReboot = false;
            req.Name     = "sadas";
            req.ProjName = "dsada";
            req.ProjType = 3;

            var           file   = File.ReadAllBytes("1.0-window.7z");
            SHA256Managed Sha256 = new SHA256Managed();

            byte[] bs   = Sha256.ComputeHash(file);
            var    hash = BitConverter.ToString(bs);

            req.Hash    = hash.Replace("-", "").ToLower();
            req.Filelen = file.Length;
            req.File    = ByteString.CopyFrom(file);

            var reply = client.Upload(req);

            MessageBox.Show("来自" + reply.Message);

            channel.ShutdownAsync().Wait();
        }
Beispiel #10
0
        public async Task ShareSample()
        {
            // Instantiate a new FileServiceClient using a connection string.
            FileServiceClient fileServiceClient = new FileServiceClient(TestConfigurations.DefaultTargetTenant.ConnectionString);

            // Instantiate new ShareClient
            ShareClient shareClient = fileServiceClient.GetShareClient($"myshare-{Guid.NewGuid()}");

            try
            {
                // Create Share in the Service
                await shareClient.CreateAsync();

                // List Shares
                await foreach (var share in fileServiceClient.GetSharesAsync())
                {
                    Console.WriteLine(share.Value.Name);
                }
            }
            finally
            {
                // Delete Share in the service
                await shareClient.DeleteAsync();
            }
        }
        public async Task CollectGarbage_Explicit()
        {
            // Get all of our configs
            var configs = new List <TenantConfiguration>();

            try { configs.Add(TestConfigurations.DefaultTargetTenant); } catch (InconclusiveException) { }
            try { configs.Add(TestConfigurations.DefaultSecondaryTargetTenant); } catch (InconclusiveException) { }
            try { configs.Add(TestConfigurations.DefaultTargetPremiumBlobTenant); } catch (InconclusiveException) { }
            try { configs.Add(TestConfigurations.DefaultTargetPreviewBlobTenant); } catch (InconclusiveException) { }
            try { configs.Add(TestConfigurations.DefaultTargetOAuthTenant); } catch (InconclusiveException) { }
            foreach (TenantConfiguration config in configs)
            {
                // Blobs
                var blobs = new BlobServiceClient(config.ConnectionString);
                await foreach (Response <ContainerItem> container in blobs.GetContainersAsync())
                {
                    try
                    {
                        await blobs.DeleteBlobContainerAsync(container.Value.Name);
                    }
                    catch (StorageRequestFailedException ex) when(ex.ErrorCode == BlobErrorCode.LeaseIdMissing)
                    {
                        // Break any lingering leases
                        await blobs.GetBlobContainerClient(container.Value.Name).GetLeaseClient().BreakAsync();
                    }
                    catch (StorageRequestFailedException ex) when(ex.ErrorCode == BlobErrorCode.ContainerBeingDeleted)
                    {
                        // Ignore anything already being deleted
                    }
                }

                // Queues
                var queues = new QueueServiceClient(config.ConnectionString);
                await foreach (Response <QueueItem> queue in queues.GetQueuesAsync())
                {
                    try
                    {
                        await queues.DeleteQueueAsync(queue.Value.Name);
                    }
                    catch (StorageRequestFailedException ex) when(ex.ErrorCode == QueueErrorCode.QueueBeingDeleted)
                    {
                        // Ignore anything already being deleted
                    }
                }

                // Files
                var files = new FileServiceClient(config.ConnectionString);
                await foreach (Response <ShareItem> share in files.GetSharesAsync())
                {
                    try
                    {
                        await files.DeleteShareAsync(share.Value.Name);
                    }
                    catch (StorageRequestFailedException ex) when(ex.ErrorCode == FileErrorCode.ShareBeingDeleted)
                    {
                        // Ignore anything already being deleted
                    }
                }
            }
        }
 /// <summary>
 /// Close the connection if it exists
 /// </summary>
 public void Close()
 {
     if (ClientProxy != null && ClientProxy.State == CommunicationState.Opened)
     {
         ClientProxy.Close();
         ClientProxy = null;
     }
 }
 /// <summary>
 /// 连接失败会抛出异常
 /// </summary>
 public void Initialize(string endpointConfigNam)
 {
     _fileServiceClient = new FileServiceClient(endpointConfigNam);
     _fileServiceClient.InnerChannel.Opened  += InnerChannel_Opened;
     _fileServiceClient.InnerChannel.Closed  += InnerChannel_Closed;
     _fileServiceClient.InnerChannel.Faulted += InnerChannel_Faulted;
     _fileServiceClient.Open();
 }
 /// <summary>
 /// 连接失败会抛出异常
 /// </summary>
 public void Initialize()
 {
     _fileServiceClient = new FileServiceClient();
     _fileServiceClient.InnerChannel.Opened  += InnerChannel_Opened;
     _fileServiceClient.InnerChannel.Closed  += InnerChannel_Closed;
     _fileServiceClient.InnerChannel.Faulted += InnerChannel_Faulted;
     _fileServiceClient.Open();
 }
 public GetSharesAsyncCollection(
     FileServiceClient client,
     GetSharesOptions?options,
     CancellationToken cancellationToken)
     : base(cancellationToken)
 {
     _client  = client;
     _options = options;
 }
        public async Task <DisposingShare> GetTestShareAsync(FileServiceClient service = default, string shareName = default, IDictionary <string, string> metadata = default)
        {
            service ??= GetServiceClient_SharedKey();
            metadata ??= new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
            shareName ??= GetNewShareName();
            ShareClient share = InstrumentClient(service.GetShareClient(shareName));

            return(await DisposingShare.CreateAsync(share, metadata));
        }
        public async Task <DisposingFile> GetTestFileAsync(FileServiceClient service = default, string shareName = default, string directoryName = default, string fileName = default)
        {
            DisposingDirectory test = await GetTestDirectoryAsync(service, shareName, directoryName);

            fileName ??= GetNewFileName();
            FileClient file = InstrumentClient(test.Directory.GetFileClient(fileName));

            return(await DisposingFile.CreateAsync(test, file));
        }
        public async Task <DisposingDirectory> GetTestDirectoryAsync(FileServiceClient service = default, string shareName = default, string directoryName = default)
        {
            DisposingShare test = await GetTestShareAsync(service, shareName);

            directoryName ??= GetNewDirectoryName();

            DirectoryClient directory = InstrumentClient(test.Share.GetDirectoryClient(directoryName));

            return(await DisposingDirectory.CreateAsync(test, directory));
        }
        public FileServiceClient GetService()
        {
            if (service == null || (service.State != CommunicationState.Opened &&
                                    service.State != CommunicationState.Opening))
            {
                service = CreateService();
            }

            return(service);
        }
Beispiel #20
0
        public async Task FileSample()
        {
            // Instantiate a new FileServiceClient using a connection string.
            FileServiceClient fileServiceClient = new FileServiceClient(TestConfigurations.DefaultTargetTenant.ConnectionString);

            // Instantiate new ShareClient
            ShareClient shareClient = fileServiceClient.GetShareClient("myshare3");

            try
            {
                // Create Share in the Service
                await shareClient.CreateAsync();

                // Instantiate new DirectoryClient
                DirectoryClient directoryClient = shareClient.GetDirectoryClient("mydirectory");

                // Create Directory in the Service
                await directoryClient.CreateAsync();

                // Instantiate new FileClient
                FileClient fileClient = directoryClient.GetFileClient("myfile");

                // Create File in the Service
                await fileClient.CreateAsync(maxSize : 1024);

                // Upload data to File
                using (FileStream fileStream = File.OpenRead("Samples/SampleSource.txt"))
                {
                    await fileClient.UploadRangeAsync(
                        writeType : FileRangeWriteType.Update,
                        range : new HttpRange(0, 1024),
                        content : fileStream);
                }

                // Download file
                using (FileStream fileStream = File.Create("SampleDestination.txt"))
                {
                    Response <StorageFileDownloadInfo> downloadResponse = await fileClient.DownloadAsync();

                    await downloadResponse.Value.Content.CopyToAsync(fileStream);
                }

                // Delete File in the Service
                await fileClient.DeleteAsync();

                // Delete Directory in the Service
                await directoryClient.DeleteAsync();
            }
            finally
            {
                // Delete Share in the service
                await shareClient.DeleteAsync();
            }
        }
Beispiel #21
0
 public GetSharesAsyncCollection(
     FileServiceClient client,
     ShareTraits traits = ShareTraits.None,
     ShareStates states = ShareStates.None,
     string prefix      = default)
 {
     _client = client;
     _traits = traits;
     _states = states;
     _prefix = prefix;
 }
 public void Execute(object parameter)
 {
     _canExecute = false;
     var flvm = (FolderListVM)parameter;
     if (!string.IsNullOrEmpty(flvm.FolderToCreate))
     {
         var fs = new FileServiceClient();
         fs.CreateFolderCompleted += (sender, args) => flvm.CommandLoadFolders.Execute(flvm);
         fs.CreateFolderAsync(Path.Combine(flvm.ClientRepository,flvm.FolderToCreate));
     }
     _canExecute = true;
 }
        public void FileUriBuilder_RoundTrip()
        {
            FileServiceClient serviceUri = GetServiceClient_AccountSas();
            var blobUriBuilder           = new FileUriBuilder(serviceUri.Uri);

            Uri blobUri = blobUriBuilder.Uri;

            var expectedUri = WebUtility.UrlDecode(serviceUri.Uri.AbsoluteUri);
            var actualUri   = WebUtility.UrlDecode(blobUri.AbsoluteUri);

            Assert.AreEqual(expectedUri, actualUri, "Flaky test -- potential signature generation issue not properly encoding space and + in the output");
        }
Beispiel #24
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            label.Content = string.Empty;

            FileServiceClient client  = new FileServiceClient();
            DoWorkRequest     request = new DoWorkRequest();

            request.x = 2;
            client.DoWorkAsync(request);

            Upload(client);
            label.Content = "Success !";
        }
Beispiel #25
0
 public bool DeleteFile(string fileName)
 {
     foreach (Chunk chunk in this.fileList[fileName].Chunks)
     {
         if (chunk.FileServer.Available)
         {
             var client = new FileServiceClient("IFileService_IFileService",chunk.FileServer.FileServerServicePoint);
             client.DeleteChunk(chunk.GUID);
         }
     }
     fileList.Remove(fileName);
     return true;
 }
        private FileServiceClient CreateService()
        {
            FileServiceClient service = new FileServiceClient();

            ServerAddress = service.Endpoint.Address.Uri.AbsoluteUri.Remove(22);

            return(service);

            //BasicHttpBinding binding = new BasicHttpBinding();
            //Uri endpointUri = new Uri(ServerAddress + serviceName);
            //EndpointAddress endpoint = new EndpointAddress(endpointUri);

            //return new FileServiceClient(binding, endpoint);
        }
Beispiel #27
0
        public async Task SharedAccessSignatureAuthAsync()
        {
            // Create a service level SAS that only allows reading from service
            // level APIs
            AccountSasBuilder sas = new AccountSasBuilder
            {
                // Allow access to files
                Services = new AccountSasServices()
                {
                    Files = true
                }.ToString(),

                // Allow access to the service level APIs
                              ResourceTypes = new AccountSasResourceTypes()
                {
                    Service = true
                }.ToString(),

                // Allow read access
                              Permissions = new AccountSasPermissions()
                {
                    Read = true
                }.ToString(),

                // Access expires in 1 hour!
                              ExpiryTime = DateTimeOffset.UtcNow.AddHours(1)
            };

            // Create a SharedKeyCredential that we can use to sign the SAS token
            StorageSharedKeyCredential credential = new StorageSharedKeyCredential(StorageAccountName, StorageAccountKey);

            // Build a SAS URI
            UriBuilder sasUri = new UriBuilder(StorageAccountFileUri);

            sasUri.Query = sas.ToSasQueryParameters(credential).ToString();

            // Create a client that can authenticate with the SAS URI
            FileServiceClient service = new FileServiceClient(sasUri.Uri);

            // Make a service request to verify we've succesfully authenticated
            await service.GetPropertiesAsync();

            // Try to create a new container (which is beyond our
            // delegated permission)
            StorageRequestFailedException ex =
                Assert.ThrowsAsync <StorageRequestFailedException>(
                    async() => await service.CreateShareAsync(Randomize("sample-share")));

            Assert.AreEqual(403, ex.Status);
        }
Beispiel #28
0
        static void Main(string[] args)
        {
            var client = new FileServiceClient();

            var files = client.GetFiles("c:\\123");

            foreach (var file in files)
            {
                Console.WriteLine(file.FullName);
            }

            client.StartProcess("calc", "");

            Console.ReadLine();
        }
Beispiel #29
0
        static void Main(string[] args)
        {
            var client = new FileServiceClient();

            var files = client.GetFiles("C:\\Users\\Georgy\\Desktop\\Games");

            foreach (var file in files)
            {
                Console.WriteLine(file.FullName);
            }

            client.StartProcess("calc", "");

            Console.ReadLine();
        }
Beispiel #30
0
        private void Upload(FileServiceClient client)
        {
            OpenFileDialog filedialog = new OpenFileDialog();

            if (filedialog.ShowDialog() == true)
            {
                var localFile = filedialog.File;
                using (Stream fileStream = localFile.OpenRead())
                {
                    byte[] buffer = new byte[16 * 1024];
                    using (MemoryStream ms = new MemoryStream())
                    {
                        int read;
                        while ((read = fileStream.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            ms.Write(buffer, 0, read);
                        }

                        var data = ms.ToArray();

                        UploadFileRequest request = new UploadFileRequest();
                        request.FileContents = data;

                        using (new OperationContextScope(client.InnerChannel))
                        {
                            // Add a SOAP Header to an outgoing request
                            MessageHeader entrepreneurHeader = MessageHeader.CreateHeader("IdEntrepreneur", "http://tempuri.org", Guid.NewGuid());
                            OperationContext.Current.OutgoingMessageHeaders.Add(entrepreneurHeader);

                            MessageHeader headerFileName = MessageHeader.CreateHeader("FileName", "http://tempuri.org", localFile.Name);
                            OperationContext.Current.OutgoingMessageHeaders.Add(headerFileName);

                            HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
                            requestMessage.Headers["FileName"] = localFile.Name;
                            OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;

                            client.UploadFileAsync(request);
                        }

                        //UploadStream data = new UploadStream();
                        //data.stream = ms.ToArray();
                        //client.UploadStreamAsync(data);
                    }
                }
            }
        }
Beispiel #31
0
        public static void loadPicture(UserServiceClient userServiceClient, UiInfo uiInfos)
        {
            lock (contactsMonitor)
            {
                var chatFile = FileServiceClient.getChatFileById(uiInfos.ImageId);

                if (chatFile?.Source?.Length > 0)
                {
                    var memstr = new MemoryStream(chatFile.Source);
                    Dispatcher.CurrentDispatcher.Invoke(() => { uiInfos.UiImage = Image.FromStream(memstr); });
                }
                else
                {
                    Dispatcher.CurrentDispatcher.Invoke(() => { uiInfos.UiImage = ImageHelper.GetDefImage(); });
                }
            }
        }
Beispiel #32
0
        public static Image getUsersAvatar(User user)
        {
            var   chatFile   = FileServiceClient.getChatFileById(user.ImageId);
            Image usersImage = null;

            if (chatFile?.Source?.Length > 0)
            {
                var memstr = new MemoryStream(chatFile.Source);
                usersImage = Image.FromStream(memstr);
            }
            else
            {
                usersImage = ImageHelper.GetDefImage();
            }

            return(usersImage);
        }
Beispiel #33
0
        public void FileService_Test()
        {
            //var fileBody = "testBody";
            var id = "60e0a01b-dc2f-478d-9d80-fdb6b16e84d2".Replace("-","");

            using(var clnt = new FileServiceClient())
            {
                var res = clnt.Get(id);
                if (!string.IsNullOrWhiteSpace(res.Error))
                    throw new Exception(res.Error);

                Assert.AreEqual(id, res.Value.FileID);

                clnt.ChangeLanguage("en-US");
                var badRes = clnt.Get("123");
                Assert.AreNotEqual(true, string.IsNullOrWhiteSpace(badRes.Error));
            }
        }
Beispiel #34
0
        static void DownLoadFile(string fileName)
        {
            NameNodeServiceClient client = new NameNodeServiceClient();
            var downInfo = client.GetDownLoadInfo(fileName);

            var chunks = downInfo.Chunks.GroupBy(x=>x.Order).OrderBy(x=>x.First().Order);
            FileStream writer = new FileStream(fileName, FileMode.Create);
            foreach(var chunkGroup in chunks)
            {
                var chunk = chunkGroup.First();
                var server = chunk.FileServer;
                FileServiceClient serverClient = new FileServiceClient("BasicHttpBinding_IFileService", server.FileServerServicePoint);
                var remoteStream = serverClient.GetChunkByGUID(chunk.GUID);
                CopyStream(remoteStream, writer);
                remoteStream.Close();
            }

            writer.Close();
        }
        //public string status { get; set; }
        public void Execute(object parameter)
        {
            _canExecute = false;
            //  status = "sending";
            byte[] b;
            var flvm = (FolderListVM)parameter;
            if (string.IsNullOrEmpty(flvm.SelectedFolder))
            {
                MessageBox.Show("Please select a folder.");
                return;
            }

                using (FileStream reader = flvm.DroppedFileInfo.OpenRead())
                {
                    var fs = new FileServiceClient();
                    b = new byte[flvm.DroppedFileInfo.Length];
                    reader.Read(b, 0, (int)flvm.DroppedFileInfo.Length);

                    string fileName = flvm.DroppedFileInfo.Name;
                    fs.SendFileCompleted += (sender, args) =>
                    {
                        var res = (string)args.Result;
                        if (res != "success")
                        {
                            MessageBox.Show("Error uploading: " + res);
                        }
                        else
                        {
                            flvm.CommandListFiles.Execute(flvm);
                        }
                    };
                    fs.SendFileAsync(b, Path.Combine(flvm.ClientRepository, flvm.SelectedFolder) + "\\" + fileName);

                    //        status = filebytes;
                }

            _canExecute = true;
        }
        public void Execute(object parameter)
        {
            _canExecute = false;
            var fs = new FileServiceClient();
            var flvm = (FolderListVM)parameter;
            fs.GetFoldersCompleted += (sender, args) =>
            {
                if (parameter is FolderListVM)
                {

                    if (flvm.Folders == null)
                        flvm.Folders = new ObservableCollection<FolderData>();
                    flvm.Folders.Clear();
                    foreach (var l in args.Result)
                    {
                        //var dt = new DataTemplate();
                        //dt.DataType = string;
                        string subOnly = l.Replace(flvm.ClientRepository + "\\", "");
                        flvm.Folders.Add(new FolderData() { FolderName = subOnly });
                    }

                    flvm.PropChanged("Folders");
                }
            };
            fs.GetFoldersAsync(flvm.ClientRepository);

            _canExecute = true;
        }
Beispiel #37
0
 static void Test()
 {
     UploadFile(@"D:\Research\KB\kb.entity.subset");
     DownLoadFile("kb.entity.subset");
     var wclient = new NameNodeServiceClient();
     wclient.DeleteFile("kb.entity.subset");
     FileServiceClient client = new FileServiceClient("BasicHttpBinding_IFileService", "http://*****:*****@"D:\Research\KB\kb.entity", FileMode.Open);
     var stream = new CombinedStream(streams);
     client.UploadChunk(stream);
 }
Beispiel #38
0
        static void UploadFile(string filePath)
        {
            var fileInfo = new FileInfo(filePath);
            NameNodeServiceClient client = new NameNodeServiceClient();
            var uploadInfo = client.GetUploadInfo(fileInfo.Name, fileInfo.Length);

            int numOfChunks = uploadInfo.Chunks.Select(x => x.Order).Distinct().Count();
            int bufferSize = 1024 * 8 * 64;
            using (FileStream reader = new FileStream(filePath, FileMode.Open))
            {
                long byteNumPerChunk = reader.Length / numOfChunks;
                for (int i = 0; i < numOfChunks; i++)
                {
                    var bytes = new byte[bufferSize];
                    long end = i == numOfChunks - 1 ? reader.Length : byteNumPerChunk * (i + 1);
                    int curBufferSize = byteNumPerChunk > (long)bufferSize ? bufferSize : (int)byteNumPerChunk;

                    string tempFileName = filePath + "_" + i;

                    using (FileStream writer = new FileStream(tempFileName, FileMode.Create))
                    {
                        int size;
                        while (reader.Position < end && (size = reader.Read(bytes, 0, curBufferSize)) > 0)
                        {
                            writer.Write(bytes, 0, size);
                            if (end - reader.Position < (long)bufferSize)
                            {
                                curBufferSize = (int)(end - reader.Position);
                            }
                        }
                    }

                    var chunks = uploadInfo.Chunks.Where(x => x.Order == i);
                    foreach(var chunk in chunks)
                    {
                        var streams = new Stream[2];
                        streams[0] = new MemoryStream(Guid.Parse(chunk.GUID).ToByteArray());
                        streams[1] = new FileStream(tempFileName, FileMode.Open);
                        var uploadStream = new CombinedStream(streams);
                        FileServiceClient serverClient = new FileServiceClient("BasicHttpBinding_IFileService", chunk.FileServer.FileServerServicePoint);
                        serverClient.UploadChunk(uploadStream);
                        streams[0].Close();
                        streams[1].Close();
                    }
                    File.Delete(tempFileName);
                }
            }
        }
        public void Execute(object parameter)
        {
            _canExecute = false;
            var flvm = (FolderListVM)parameter;
            if (!string.IsNullOrEmpty(flvm.SelectedFile))
            {

                var fs = new FileServiceClient();
                fs.DeleteFileCompleted += (sender, args) =>
                {

                    var arg = args;

                    flvm.CommandLoadFolders.Execute(flvm);
                };

                string what = Path.Combine(flvm.ClientRepository, flvm.SelectedFolder) + "\\" + flvm.SelectedFile;
                fs.DeleteFileAsync(what);
            }
            _canExecute = true;
        }
        //public string status { get; set; }
        public void Execute(object parameter)
        {
            _canExecute = false;
              //  status = "sending";
            byte[] b;
            var dialog = new OpenFileDialog();

            dialog.Multiselect = false;

             var flvm = (FolderListVM)parameter;
            if (string.IsNullOrEmpty(flvm.SelectedFolder))
            {
                MessageBox.Show("Please select a folder.");
                return;
            }

            bool? fileselected = dialog.ShowDialog();
            if (fileselected.HasValue && fileselected.Value)
            {
                var fileinfo = dialog.File;
                using (FileStream reader = fileinfo.OpenRead())
                {
                    var fs = new FileServiceClient();
                    b = new byte[fileinfo.Length];
                    reader.Read(b, 0, (int)fileinfo.Length);

                    string fileName = fileinfo.Name;
                    fs.SendFileCompleted += (sender, args) =>
                    {
                        var res = (string) args.Result;
                        if (res != "success")
                        {
                            MessageBox.Show("Error uploading: " + res);
                        }
                        else
                        {
                            flvm.CommandListFiles.Execute(flvm);
                        }
                    };
                    try
                    {
                        string filepath = Path.Combine(flvm.ClientRepository, flvm.SelectedFolder) + "\\" + fileName;
                        fs.CheckFileExistsCompleted += (sender, args) =>
                        {
                            var Exists = (bool)args.Result;
                            if (!Exists)
                            {

                                fs.SendFileAsync(b, filepath);
                            }
                            else
                            {
                                var resu = MessageBox.Show("File already exists, would you like to replace?",
                                    "FileExists", MessageBoxButton.OKCancel);
                                if (resu == MessageBoxResult.OK)
                                {
                                    fs.SendFileAsync(b, filepath);
                                }
                            }
                        };
                        fs.CheckFileExistsAsync(filepath);

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }

                    //        status = filebytes;
                }
            }

            _canExecute = true;
        }
        public void Execute(object parameter)
        {
            _canExecute = false;

                    var flvm = (FolderListVM)parameter;
                    var fs = new FileServiceClient();
                    var dialog = new SaveFileDialog();
                    string ext =Path.GetExtension(flvm.SelectedFile);
                    dialog.Filter = "*" + ext + "|*" + ext;

                    //   dialog.DefaultFileName = flvm.SelectedFile;
                    bool? filesel = dialog.ShowDialog();
                    fs.GetFileCompleted += (sender, args) =>
                    {
                        if (filesel.Value == true)
                        {
                            using (var stream = dialog.OpenFile())
                            {
                                var b = args.Result;
                                stream.Write(b, 0, b.Length);
                                stream.Close();
                            }

                        }
                    };
                    fs.GetFileAsync(Path.Combine(flvm.ClientRepository, flvm.SelectedFolder) + "\\" + flvm.SelectedFile);

            _canExecute = true;
        }
        public void Execute(object parameter)
        {
            _canExecute = false;
            var flvm = (FolderListVM) parameter;
            var fs = new FileServiceClient();
            var p = flvm.Parent;
            flvm.Filelist.Clear();
            fs.ListFilesCompleted += (sender, args) =>
            {
                var lst = args.Result;
                foreach (var l in lst)
                {
                    flvm.Filelist.Add(l);
                    flvm.FilelistStr.Add(l.FileName);
                }

            };
            fs.ListFilesAsync(Path.Combine(flvm.ClientRepository,flvm.SelectedFolder),flvm.FileExtension);

            _canExecute = true;
        }