public async Task SendNotificationAsync(ChatLogItemModel model) { var staff = await _staffRepository.GetStaffIdentityByUniqueId(model.SenderUniqueId); if (staff != null) { string titleTemplate = "New Message from"; string bodyTemplate = "About"; if (!string.IsNullOrEmpty(model.TranslatedLanguageCode) && model.TranslatedLanguageCode != "en") { titleTemplate = await _translationProvider.TranslateAsync(new TranslateRequest { FromLangCode = "en", ToLangCode = model.TranslatedLanguageCode, TextToTranslate = titleTemplate }); bodyTemplate = await _translationProvider.TranslateAsync(new TranslateRequest { FromLangCode = "en", ToLangCode = model.TranslatedLanguageCode, TextToTranslate = bodyTemplate }); } var student = await _studentRepository.GetStudentBriefModelAsyncByUniqueId(model.StudentUniqueId); var messageBody = model.TranslatedMessage != null ? model.TranslatedMessage : model.EnglishMessage; var notification = new NotificationItemModel { personUniqueId = model.RecipientUniqueId, personType = "Parent", notification = new Notification { title = $"{titleTemplate}: {staff.FirstName} {staff.LastSurname}", body = $"{bodyTemplate}: {student.FirstName} - {messageBody}", icon = "ic_yes_prep" }, data = new NotificationData { studentUsi = model.StudentUniqueId, personTypeId = model.RecipientTypeId.ToString(), uniqueId = model.RecipientUniqueId, unreadMessageCount = 1 } }; await _pushNotificationProvider.SendNotificationAsync(notification); } }
public async Task <IHttpActionResult> Translate(TranslateRequest request) { var model = await _translationProvider.TranslateAsync(request); if (model == null) { return(NotFound()); } return(Ok(model)); }
private async Task <string> TranslateText(string languageCode, string template) { string textTranslated = string.Empty; if (!string.IsNullOrEmpty(languageCode) && languageCode != "en") { textTranslated = await _translationProvider.TranslateAsync(new TranslateRequest { FromLangCode = "en", TextToTranslate = template, ToLangCode = languageCode }); } else { textTranslated = template; } return(textTranslated); }
private async Task <TranslatedPackageModel> GenerateFile(TranslatePackageModelRequest model, string baseLangPath, string folderFile, string languageName) { string langTraslated = string.Empty; bool translateText = false; Dictionary <string, string> translateTextJson = new Dictionary <string, string>(); var langFile = File.ReadLines(baseLangPath); var fileName = $"{model.Code}-{languageName}"; foreach (var line in langFile) { if (line.Contains("Global level translations")) { translateText = true; } if (line.Contains("});") || line.Contains("}]);")) { translateText = false; } if (translateText) { if (!line.Contains("//") && !line.Contains("/*") && !string.IsNullOrWhiteSpace(line)) { try { string[] KeyValue = line.Split(':'); KeyValue[1] = CleanValue(KeyValue[1]); KeyValue[0] = CleanValue(KeyValue[0]); string translatedText = string.Empty; string exist = existKey(folderFile, model.Code, KeyValue[0]); if (!string.IsNullOrEmpty(exist)) { translatedText = exist; } else { var transRequest = new TranslateRequest { FromLangCode = "en", ToLangCode = model.Code, TextToTranslate = KeyValue[1] }; translatedText = await _translationProvider.TranslateAsync(transRequest); } //Type logic: True = Web format language package, False = Movile format language package if (model.Type) { KeyValue[0] = '"' + KeyValue[0] + '"'; KeyValue[1] = '"' + translatedText + '"'; string KeyValueTranslated = string.Join(":", KeyValue); langTraslated += $"{KeyValueTranslated}," + Environment.NewLine; } else { KeyValue[0] = KeyValue[0].Replace("'", ""); KeyValue[0] = KeyValue[0].Replace('"', ' '); KeyValue[1] = translatedText.Replace('"', ' '); KeyValue[1] = translatedText.Replace("\"", ""); KeyValue[1] = translatedText.Replace("'", ""); translateTextJson.Add(KeyValue[0], KeyValue[1]); } } catch (Exception ex) { throw; } } } else { var lang = line.Replace("en-us", fileName); langTraslated += $"{lang}" + Environment.NewLine; } } if (!model.Type) { langTraslated = JsonConvert.SerializeObject(translateTextJson); } var response = new TranslatedPackageModel { FileName = fileName, FileContent = langTraslated }; return(response); }
private async Task <string> TranslateText(string text, string codeLanguage) { return(await _translationProvider.TranslateAsync(new TranslateRequest { TextToTranslate = text, ToLangCode = codeLanguage })); }