public async Task <IActionResult> Post([FromBody] ConvertRequest todo) { var languages = todo.requestedConversion.Split('2'); string fromLanguage = "C#"; string toLanguage = "Visual Basic"; int fromVersion = 6; int toVersion = 14; if (languages.Length == 2) { fromLanguage = ParseLanguage(languages[0]); fromVersion = GetDefaultVersionForLanguage(languages[0]); toLanguage = ParseLanguage(languages[1]); toVersion = GetDefaultVersionForLanguage(languages[1]); } var codeWithOptions = new CodeWithOptions(todo.code) .WithTypeReferences(DefaultReferences.NetStandard2) .SetFromLanguage(fromLanguage, fromVersion) .SetToLanguage(toLanguage, toVersion); var result = await ICSharpCode.CodeConverter.CodeConverter.Convert(codeWithOptions); var response = new ConvertResponse() { conversionOk = result.Success, convertedCode = result.ConvertedCode, errorMessage = result.GetExceptionsAsString() }; return(Ok(response)); }
static void Main(string[] args) { var client = new RoslynCodeConverterClientLibrary.Proxies.RoslynCodeConverter(); //ConvertResponse result = client.Converter.Post(new ConvertRequest() //{ // Code = "public class Test {}", // RequestedConversion = SupportedConversions.CSharp2Vb //}); ConvertResponse result = client.Converter.Post(new ConvertRequest() { Code = "Public Class Test\r\nEnd Class", RequestedConversion = SupportedConversions.Vb2CSharp }); if (true == result.ConversionOk) { Console.WriteLine("Conversion succeeded"); Console.WriteLine(result.ConvertedCode); } else { Console.WriteLine("Error converting: " + result.ErrorMessage); } Console.Read(); }
public ActionResult <ConvertResponse> Convert(Stream stream, string fileName) { try { string fileExtension = Path.GetExtension(fileName).Trim('.'); if (stream.Length == 0) { throw new Exception("Поток не может быть пуст"); } if (CheckFileExtension.GetFileExtension(fileExtension) == FileExtension.Extensions.Unknown) { throw new Exception("Неподдерживаемый тип файла"); } if (CheckFileExtension.GetFileExtension(fileExtension) == FileExtension.Extensions.Pdf) { throw new Exception("Выберите другой файл, конвертация pdf в pdf не нужна"); } _logger.LogDebug($"Start convert"); ConvertResponse responseConvert = new ConvertResponse(); byte[] result = _fileInfoPdf.Convert(stream, fileName); ConvertFileResponse convertResult = new ConvertFileResponse { Name = fileName, Pdf = result }; responseConvert.Values.Add(convertResult); _logger.LogDebug("PdfController.Convert() OK"); return(Ok(responseConvert)); } catch (Exception e) { _logger.LogError(e.Message); return(BadRequest(e.Message)); } }
public static async Task <ConvertResponse> RunOrchestrator([OrchestrationTrigger] DurableOrchestrationContext context, ExecutionContext exContext, [SignalR(HubName = "status")] IAsyncCollector <SignalRMessage> signalRMessages) { var request = context.GetInput <ConvertRequest>(); var config = exContext.GetConfig(); var response = new ConvertResponse { RequestId = context.InstanceId, Request = request, }; response = await context.CallActivityAsync <ConvertResponse>(nameof(ExtractTextFromImageComputerVision), response); response = await context.CallActivityAsync <ConvertResponse>(nameof(ConvertTextToSpeechSsml), response); if (response.SpeechAudioBlobUrl != null) { response.SpeechAudioBlobUrl += config["storage:sas"]; } if (response.TranscriptBlobUrl != null) { response.TranscriptBlobUrl += config["storage:sas"]; } await signalRMessages.AddAsync(new SignalRMessage { Target = "newSpeechFile", Arguments = new[] { response } }); return(response); }
public async void DeleteConversion_GivenParameters_ReturnDelete() { try { ConvertResponse convertResponse = await this._wrapper.ConvertAsync(this._input, this._output, this._conversion); convertResponse.Code.Should().Be(200); convertResponse.Url.Should().NotBeNullOrWhiteSpace(); Thread.Sleep(2000); DeleteConvertResponse deleteResponse = await this._wrapper.DeleteConversionAsync("https:" + convertResponse.Url); deleteResponse.Code.Should().Be(200); } catch (Exception ex) { var error = ex as ErrorResponseException; error.Should().NotBeNull(); var response = error.Error; response.Should().BeOfType <ErrorResponse>(); response.Code.Should().NotBe(200); } }
public ConvertResponse Post(ConvertRequest[] req) { ConvertResponse res = new ConvertResponse(); res.OutputData = _converter.ConvertExcelToPDF(req); return(res); }
public void Execute(ConvertResponseLog responseLog) { ConvertResponse data = new ConvertResponse { ConvertResponseId = responseLog.RequestId, ResponseDateUtc = responseLog.ResponseDateUtc, ResultFileSize = responseLog.ResultFileSize, ResultTypeId = (int)responseLog.ResultType }; this.convertLogRepository.CreateConvertResponse(data); }
public IHttpActionResult Post([FromBody] ConvertRequest todo) { string code = todo.code; var response = new ConvertResponse() { conversionOk = false, convertedCode = "", errorMessage = "Not implemented" }; return(Ok(response)); }
/// <summary> /// Converts the specified number into words /// E.g. 123.45 to "ONE HUNDRED AND TWENTY-THREE, FORTY-FIVE" /// </summary> /// <param name="number">The number.</param> /// <returns>ConvertResponse</returns> public virtual ConvertResponse Convert(double number) { var response = new ConvertResponse(); var splitResponse = this.SplitNumberParts.Split(number); response.SplitResponse = splitResponse; response.NumberPartWord = this.Convert(splitResponse.NumberPart); response.FractionPartWord = this.Convert(splitResponse.FractionPart); return(response); }
public static async Task <ConvertResponse> ConvertTextToSpeechSsml([ActivityTrigger] ConvertResponse response, ILogger log, ExecutionContext context) { if (response.ErrorMessage != null) { return(response); } var config = context.GetConfig(); var client = new TextToSpeechClient(config); var newResponse = await client.ConvertTextToSpeechSsml(response); return(newResponse); }
private async void runConversion_Click(object sender, RoutedEventArgs e) { outputCode.Text = ""; string conversionType = SupportedConversions.CSharp2Vb; if (cs2vbnetRbtn.IsChecked == true) { outputCode.SyntaxHighlighting = vbDefinition; } else { outputCode.SyntaxHighlighting = csharpDefinition; conversionType = SupportedConversions.Vb2CSharp; } string code = inputCode.Text; converterCallInflight.Visibility = Visibility.Visible; runConversion.IsEnabled = false; try { var client = new RoslynCodeConverterClientLibrary.Proxies.RoslynCodeConverter(); ConvertResponse result = await client.Converter.PostAsync(new ConvertRequest() { Code = code, RequestedConversion = conversionType }); if (true == result.ConversionOk) { outputCode.Text = result.ConvertedCode; } else { outputCode.SyntaxHighlighting = null; outputCode.Text = result.ErrorMessage; } } catch (Exception ex) { outputCode.SyntaxHighlighting = null; outputCode.Text = ex.Message; } converterCallInflight.Visibility = Visibility.Collapsed; runConversion.IsEnabled = true; }
public async Task <IActionResult> Convert(string from, string to, decimal amount, DateTime?date = null) { if (from is null || to is null) { return(BadRequest(new ErrorResponse("One or more symbols missing"))); } FixerResponse <Common.Fixer.Models.RatesResponse> response; if (date is null) { response = await api.GetLatest(from, to); } else { response = await api.GetHistorical((DateTime)date, from, to); } if (!response.Success) { return(BadRequest(new ErrorResponse(response.Error.Info))); } if (response.Content.Rates.Count != 2) { return(BadRequest(new ErrorResponse("One or more symbols not found"))); } var converter = new CurrencyConverter(response.Content.Rates); var convertResponse = new ConvertResponse { Date = response.Content.Date, From = new ConvertResponse.Amount { Currency = from.ToUpper(), Value = amount }, To = new ConvertResponse.Amount { Currency = to.ToUpper(), Value = converter.Convert(from, to, amount) } }; return(Ok(convertResponse)); }
public async Task <ConvertResponse> ExtractTextComputerVision(ConvertResponse response) { try { var key = _config["computerVision:key"]; var endpoint = _config["computerVision:endpoint"]; ComputerVisionClient computerVision = new ComputerVisionClient(new ApiKeyServiceClientCredentials(key)) { Endpoint = endpoint }; var analysis = await computerVision.RecognizePrintedTextAsync(true, response.Request.UploadBlobUrl + _config["storage:sas"]); var text = new StringBuilder(); foreach (var region in analysis.Regions) { foreach (var line in region.Lines) { foreach (var word in line.Words) { text.Append(word.Text + " "); } text.AppendLine(); } } var transcriptBlobName = Path.GetFileNameWithoutExtension(response.Request.BlobName) + ".txt"; var blobClient = new BlobStorageClient(_config); var textBlob = blobClient.GetBlobBlock("transcripts", transcriptBlobName); response.TranscriptBlobUrl = textBlob.Uri.AbsoluteUri; response.Transcript = text.ToString().Trim(); await textBlob.UploadTextAsync(response.Transcript); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Console.WriteLine(ex.Message); response.ErrorMessage = ex.ToString(); } return(response); }
public void Register(IAppHost appHost) { //Common Converter appHost.ResponseConverters.Add((req, response) => { var type = response.GetType().Name; object result = response; var sesion = req.GetSession(); switch (type) { case "AuthenticateResponse": var res = (AuthenticateResponse)response; result = new ConvertResponse <AuthenticateResponse> { Status = !string.IsNullOrEmpty(res.SessionId) ? 1 : 0, Data = res }; break; case "RegenerateApiKeysResponse": var res1 = (RegenerateApiKeysResponse)response; result = new ConvertResponse <List <UserApiKey> > { Status = res1.Results.Any() ? (int)CommonStatus.Success : (int)CommonStatus.UndefinedError, Data = res1.Results }; break; case "GetApiKeysResponse": var res2 = (GetApiKeysResponse)response; result = new ConvertResponse <List <UserApiKey> > { Status = res2.Results.Any() ? (int)CommonStatus.Success : (int)CommonStatus.UndefinedError, Data = res2.Results }; break; default: break; } return(result); }); }
public JsonResult Post([FromBody] ConvertRequest request) { List <Currency> currencyList = GetCurrencyList(); ConvertResponse response = new ConvertResponse(); Currency toCurrency = currencyList.Find(currency => currency.name == request.ToCurrency); if (toCurrency != null) { response.Value = request.Value; response.ToCurrency = request.ToCurrency; response.FromCurrency = "RON"; response.Result = (request.Value / toCurrency.rate); } else { response.Error = "Currency can't be found"; } return(Json(response)); }
static bool FileConvertedOk(string file, RoslynCodeConverterClientLibrary.Proxies.RoslynCodeConverter client) { string code = System.IO.File.ReadAllText(file); if (String.IsNullOrWhiteSpace(code)) { return(false); } ConvertResponse result = client.Converter.Post(new ConvertRequest() { Code = code, RequestedConversion = "cs2vbnet" }); if (true != result.ConversionOk) { Console.WriteLine("ERROR:" + file); Console.WriteLine(result.ErrorMessage); return(false); } return(true); }
public static async Task <ConvertResponse> ExtractTextFromImageComputerVision([ActivityTrigger] ConvertResponse response, ILogger log, ExecutionContext context) { var config = context.GetConfig(); var client = new TextExtractionClient(config); var newResponse = await client.ExtractTextBatchRead(response); return(newResponse); }
public async Task <ConvertResponse> ConvertTextToSpeechSsml(ConvertResponse response) { var ext = new FileInfo(response.Request.BlobName).Extension; var waveName = response.Request.BlobName.Replace(ext, ".wav"); try { string accessToken = null; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", _config["speech:key"]); var tokenFetchUri = $"https://{_config["speech:region"]}.api.cognitive.microsoft.com/sts/v1.0/issueToken"; var uriBuilder = new UriBuilder(tokenFetchUri); var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null).ConfigureAwait(false); accessToken = await result.Content.ReadAsStringAsync().ConfigureAwait(false); } var r = response.Request; var host = $"https://{_config["speech:region"]}.tts.speech.microsoft.com/cognitiveservices/v1"; var prosody = $"<prosody rate='{r.Speed}.00%' pitch='{r.Pitch}' volume='{r.Volume}'>"; response.Transcript = response.Transcript.Replace("&", "and"); var maxChars = 990; var transcript = response.Transcript; if (transcript.Length > 990) { var intro = "This transcript is too long and has been shortened automatically." + Environment.NewLine; transcript = intro + transcript.Substring(0, maxChars - intro.Length); } string body = $@"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'> <voice name='Microsoft Server Speech Text to Speech Voice (en-US, {r.VoiceToUse})'>{prosody}" + transcript + "</prosody></voice></speak>"; Console.WriteLine(); Console.WriteLine(body); using (var client = new HttpClient()) { using (var request = new HttpRequestMessage()) { request.Method = HttpMethod.Post; request.RequestUri = new Uri(host); request.Content = new StringContent(body, Encoding.UTF8, "application/ssml+xml"); request.Headers.Add("Authorization", "Bearer " + accessToken); request.Headers.Add("Connection", "Keep-Alive"); request.Headers.Add("User-Agent", _config["speech:resourceName"]); request.Headers.Add("X-Microsoft-OutputFormat", "riff-24khz-16bit-mono-pcm"); Console.WriteLine("Calling the TTS service. Please wait... \n"); using (var speechResponse = await client.SendAsync(request).ConfigureAwait(false)) { speechResponse.EnsureSuccessStatusCode(); using (var dataStream = await speechResponse.Content.ReadAsStreamAsync().ConfigureAwait(false)) { var fileName = Path.GetTempPath() + "/temp.wav"; Console.WriteLine("Your speech file is being written to temp file..."); using (var fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.Write)) { await dataStream.CopyToAsync(fileStream).ConfigureAwait(false); fileStream.Close(); } var blobClient = new BlobStorageClient(_config); var audioBlob = blobClient.GetBlobBlock("speechresults", waveName); await audioBlob.UploadFromFileAsync(fileName); File.Delete(fileName); response.SpeechAudioBlobUrl = audioBlob.Uri.AbsoluteUri; response.IsSuccessful = true; } } } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); Console.WriteLine(ex.Message); response.ErrorMessage = ex.ToString(); } return(response); }
public void CreateConvertResponse(ConvertResponse convertResponse) { this.context.ConvertResponses.Add(convertResponse); this.context.SaveChanges(); }
public ConvertResponse Post(ConvertRequest req) { ConvertResponse res = new ConvertResponse(); res.OutputData = _converter.ExcelToPDF(req.InputData); return res; }
public void SeedTestData() { #region Completed query { Guid requestId = new Guid("CFF29BD8-C0AB-4AC0-B932-06680205E7D2"); if (!this.ConvertRequests.Where(p => p.ConvertRequestId == requestId).Any()) { ConvertRequest request = new ConvertRequest() { ConvertRequestId = requestId, RequestDateUtc = DateTime.Now.ToUniversalTime(), FileExtension = ".docx", FileSize = 10, SenderIp = "127.0.0.1", FileType = this.FileTypes.Where(p => p.FileExtension == ".docx").SingleOrDefault() }; this.ConvertRequests.Add(request); ConvertResponse response = new ConvertResponse() { ConvertResponseId = requestId, ResponseDateUtc = DateTime.Now.ToUniversalTime(), ResultFileSize = 20, ResultTypeId = 1 }; this.ConvertResponses.Add(response); } } #endregion #region Uncompleted query { Guid requestId = new Guid("78CBECAC-32B9-451A-9D40-7353885A8B4B"); if (!this.ConvertRequests.Where(p => p.ConvertRequestId == requestId).Any()) { ConvertRequest request = new ConvertRequest() { ConvertRequestId = requestId, RequestDateUtc = DateTime.Now.ToUniversalTime(), FileExtension = ".xlsx", FileSize = 30, SenderIp = "127.0.0.1", FileType = this.FileTypes.Where(p => p.FileExtension == ".xlsx").SingleOrDefault() }; this.ConvertRequests.Add(request); } } #endregion #region Error query { Guid requestId = new Guid("7EA30F36-E5E1-4A73-90FA-853A62CBA6C6"); if (!this.ConvertRequests.Where(p => p.ConvertRequestId == requestId).Any()) { ConvertRequest request = new ConvertRequest() { ConvertRequestId = requestId, RequestDateUtc = DateTime.Now.ToUniversalTime(), FileExtension = ".ppt", FileSize = 25, SenderIp = "127.0.0.1", FileType = this.FileTypes.Where(p => p.FileExtension == ".ppt").SingleOrDefault() }; this.ConvertRequests.Add(request); ConvertResponse response = new ConvertResponse() { ConvertResponseId = requestId, ResponseDateUtc = DateTime.Now.ToUniversalTime(), ResultTypeId = 10 }; this.ConvertResponses.Add(response); } } #endregion }
public async Task <ConvertResponse> ExtractTextBatchRead(ConvertResponse response) { try { var key = _config["computerVision:key"]; var endpoint = _config["computerVision:endpoint"]; ComputerVisionClient computerVision = new ComputerVisionClient(new ApiKeyServiceClientCredentials(key)) { Endpoint = endpoint }; var operationInfo = await computerVision.BatchReadFileAsync(response.Request.UploadBlobUrl + _config["storage:sas"]); var result = new ReadOperationResult(); var operationId = operationInfo.OperationLocation.Split('/').Last(); while (result.Status != TextOperationStatusCodes.Failed && result.Status != TextOperationStatusCodes.Succeeded) { await Task.Delay(500); result = await computerVision.GetReadOperationResultAsync(operationId); } if (result.Status == TextOperationStatusCodes.Failed) { response.ErrorMessage = $"Text translation failed."; return(response); } var text = new StringBuilder(); foreach (var page in result.RecognitionResults) { Line lastLine = null; foreach (var line in page.Lines) { // if (lastLine?.Words.Count >= 4) // { // text.Append($" {line.Text}"); // } // else // { text.Append(Environment.NewLine + line.Text); // } lastLine = line; } } Console.WriteLine(); Console.WriteLine(text.ToString()); var transcriptBlobName = Path.GetFileNameWithoutExtension(response.Request.BlobName) + ".txt"; var blobClient = new BlobStorageClient(_config); var textBlob = blobClient.GetBlobBlock("transcripts", transcriptBlobName); response.TranscriptBlobUrl = textBlob.Uri.AbsoluteUri; response.Transcript = text.ToString().Trim(); await textBlob.UploadTextAsync(response.Transcript); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Console.WriteLine(ex.Message); response.ErrorMessage = ex.ToString(); } return(response); }