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));
        }
Exemple #2
0
        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();
        }
Exemple #3
0
 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));
     }
 }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #7
0
        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));
        }
Exemple #9
0
        /// <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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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;
        }
Exemple #12
0
        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);
        }
Exemple #14
0
        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);
            });
        }
Exemple #15
0
        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);
        }
Exemple #17
0
        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);
        }
Exemple #18
0
        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);
        }