Пример #1
0
        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));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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 }));
 }