using Sanhe.Abp.LocalizationManagement.Permissions; using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; namespace Sanhe.Abp.LocalizationManagement; public class TextAppService : CrudAppService< Text, TextDto, TextDifferenceDto, int, GetTextsInput, CreateTextInput, UpdateTextInput>, ITextAppService { private readonly ITextRepository _textRepository; public TextAppService(ITextRepository repository) : base(repository) { _textRepository = repository; GetPolicyName = LocalizationManagementPermissions.Text.Default; GetListPolicyName = LocalizationManagementPermissions.Text.Default; CreatePolicyName = LocalizationManagementPermissions.Text.Create; UpdatePolicyName = LocalizationManagementPermissions.Text.Update; DeletePolicyName = LocalizationManagementPermissions.Text.Delete; } public async virtual Task GetByCultureKeyAsync(GetTextByKeyInput input) { await CheckGetPolicyAsync(); var text = await _textRepository.GetByCultureKeyAsync( input.ResourceName, input.CultureName, input.Key); return await MapToGetOutputDtoAsync(text); } public async override Task> GetListAsync(GetTextsInput input) { await CheckGetListPolicyAsync(); var count = await _textRepository.GetDifferenceCountAsync( input.CultureName, input.TargetCultureName, input.ResourceName, input.OnlyNull, input.Filter); var texts = await _textRepository.GetDifferencePagedListAsync( input.CultureName, input.TargetCultureName, input.ResourceName, input.OnlyNull, input.Filter, input.Sorting, input.SkipCount, input.MaxResultCount); return new PagedResultDto(count, ObjectMapper.Map, List>(texts)); } protected override Text MapToEntity(CreateTextInput createInput) { return new Text( createInput.ResourceName, createInput.CultureName, createInput.Key, createInput.Value); } protected override void MapToEntity(UpdateTextInput updateInput, Text entity) { entity.SetValue(updateInput.Value); } }