using Erp.Languages.Entities; using Erp.Languages.Localization; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; using Volo.Abp.Validation; namespace Erp.Languages; public class LanguageKeyAppService : CrudAppService< LanguageKey, LanguageKeyDto, Guid, PagedAndSortedResultRequestDto>, ILanguageKeyAppService { private readonly IRepository _repository; public LanguageKeyAppService( IRepository repository ) : base(repository) { LocalizationResource = typeof(LanguagesResource); ObjectMapperContext = typeof(LanguagesApplicationModule); _repository = repository; } public override async Task CreateAsync(LanguageKeyDto input) { var recordExists = await _repository.AnyAsync( a => a.ResourceName == input.ResourceName && a.Key == input.Key); if (recordExists) { var validationErrors = new ValidationResult( L["Error:UniqueControl"], new string[] { "ResourceName", "Key" } ); throw new AbpValidationException(new List { validationErrors }); } return await base.CreateAsync(input); } }