示例#1
0
        public ValidationResult Validate(TranslationDTO translations)
        {
            var error = "";
            var count = 1;

            //no rows
            if (translations.Translations.Count == 0)
            {
                return(new ValidationResult()
                {
                    IsFailed = true,
                    Error = "Add translations"
                });
            }

            //duplicate keys
            var duplicateItems = translations.Translations.GroupBy(x => x.Key).Where(y => y.Count() > 1).SelectMany(z => z);

            var duplicateKeys = duplicateItems.Select(x => x.Key).Distinct().ToList();


            duplicateKeys.ForEach(x =>
            {
                error += count + ". Remove duplicate key: '" + x + "' \n";
                count++;
            });

            var validationResult = new ValidationResult()
            {
                IsFailed = error.Length > 0,
                Error    = error
            };

            return(validationResult);
        }
        public async Task <IActionResult> ConfirmTranslation(int id, [FromBody] TranslationDTO translation)
        {
            var entity = await dataProvider.ConfirmTranslation(id, translation);

            return(entity == null?StatusCode(304) as IActionResult
                   : Ok(entity));
        }
        private async void SaveTranslation_Clicked(object sender, EventArgs e)
        {
            var httpService     = new HttpService();
            var translationsUrl = "complexstrings/" + ComplexStringId + "/translations";


            var editedTranslation = new TranslationDTO
            {
                Id               = Guid.NewGuid(),
                CreatedOn        = DateTime.UtcNow,
                LanguageId       = Translation.LanguageId,
                TranslationValue = Translation.Translation,
                UserId           = User.Id
            };

            if (string.IsNullOrEmpty(editedTranslation.TranslationValue) || editedTranslation.TranslationValue == "Not translated")
            {
                return;
            }

            var translationResult = await httpService.PostAsync <TranslationDTO>(translationsUrl, editedTranslation);

            if (translationResult != null)
            {
                Translation.Id = translationResult.Id.ToString();
                await DisplayAlert("Result", "Translation saved!", "Ok");

                await Navigation.PopAsync();
            }
        }
示例#4
0
    public override void Write(Utf8JsonWriter writer, Translation value, JsonSerializerOptions options)
    {
        var dto = new TranslationDTO {
            Name = value.Name, Data = value.ToDictionary(p => p.Key, p => (object)p.Value)
        };

        JsonSerializer.Serialize(writer, dto, options);
    }
示例#5
0
        private TranslationDTO Resolve(List <String> item)
        {
            TranslationDTO result = new TranslationDTO();

            result.languageId  = int.Parse(item[0]);
            result.labelCode   = item[1];
            result.translation = item[2];
            return(result);
        }
示例#6
0
        public async Task Post([FromBody] TranslationDTO translations)
        {
            var validationResult = _translationValidator.Validate(translations);

            if (validationResult.IsFailed)
            {
                throw new Exception(validationResult.Error);
            }
            await _translationService.SaveTranslationForCulture(translations.CultureId, translations.Translations);
        }
        public async Task <IActionResult> EditStringTranslation(int id, [FromBody] TranslationDTO translation)
        {
            var user = await _currentUser.GetCurrentUserProfile();

            translation.UserId = user.Id;

            var entity = await dataProvider.EditStringTranslation(id, translation);

            return(entity == null?StatusCode(304) as IActionResult
                   : Ok(entity));
        }
        public async Task <IActionResult> SetStringTranslation(int id, [FromBody] TranslationDTO translation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var user = await _currentUser.GetCurrentUserProfile();

            translation.UserId = user.Id;

            var entity = await dataProvider.SetStringTranslation(id, translation);

            return(entity == null?StatusCode(304) as IActionResult
                   : Ok(entity));
        }
示例#9
0
 public TranslationBM(TranslationDTO translationDto)
 {
     this.languageId  = translationDto.languageId;
     this.labelCode   = translationDto.labelCode;
     this.translation = translationDto.translation;
 }