//public string SendMessageAsync() //{ //} private async Task <string> SendRequest(string message, string language) { HttpClient client = new HttpClient(); var content = HashMessage.GetContent(message, language); content.Headers.Add("Cookie", "XVIS=TEI939AFFIAGAYQZ"); var response = await client.PostAsync(RequestsUrl.BaseUrl + RequestsUrl.ChatUrl, content); var responseBody = await response.Content.ReadAsStringAsync(); int endAnswerIndex = responseBody.IndexOf("\r"); var answerBot = responseBody.Substring(0, endAnswerIndex); return(answerBot); }
private async Task Hash(HashMessage message) { Console.WriteLine($"Hash :: {message.Hash}"); var partInfo = _hashSet[message.Hash]; var localFile = Path.Combine(_directory, message.File); using (var stream = File.OpenWrite(localFile)) { stream.Seek(message.Start, SeekOrigin.Begin); await stream.WriteAsync(Convert.FromBase64String(message.Content), 0, message.Length, _cancellationToken); } partInfo.Transmitted = true; }
private async Task ChangedFile(FileInfo file) { for (int jj = 0; jj < NumberOfRetries; ++jj) { try { using (var stream = File.OpenRead(file.FullPath)) { var size = stream.Length; var message = new ChangeMessage(file.Name, size); _messageCollection.Add(message, _cancellationToken); var crypto = new SHA256CryptoServiceProvider(); for (int ii = 0; ii < (size / BlockSize) + 1; ii++) { var buffer = new byte[BlockSize]; var read = await stream.ReadAsync(buffer, 0, BlockSize, _cancellationToken); var base64 = Convert.ToBase64String(buffer); var hash = Convert.ToBase64String(crypto.ComputeHash(buffer)); var partMessage = new PartMessage(file.Name, ii * BlockSize, read, hash); var hashMessage = new HashMessage(file.Name, ii * BlockSize, read, hash, base64); _messageCollection.Add(partMessage, _cancellationToken); _messageCollection.Add(hashMessage, _cancellationToken); } } break; } catch (IOException ex) when(jj <= NumberOfRetries) { Console.WriteLine($"Retrying in {DelayOnRetries / 1000}s. IO Error = {ex.Message}"); await Task.Delay(DelayOnRetries); } } }