using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; using Microsoft.AspNetCore.SignalR; using xCommons.Configurations; using xDataService.Configuration; using xModels.Dtos; using xStringService.Hubs; using xStringService.Interfaces.Entities; using xStringService.Models.Dtos; using xStringService.Models.Entities; namespace xStringService.Interfaces { public interface IXStringProvider { // #region Props ... IHubContext Hub { get; } IXStringRepository Repository { get; } XAppConfiguration AppConfiguration { get; } XDataServiceConfiguration DataConfiguration { get; } #endregion // #region Retrievers ... /// /// Retrieve all Exists Languages ... /// /// Task> GetLanguages(); /// /// Check Specified Resource Exists or not ... /// /// /// /// Task IsResourceExists( string resource, string language = null ); /// /// Retrieve Specified Resource ... /// /// /// /// Task Get( string resource, string language = null ); /// /// Retrieve Specified Translation of Specified Resource ... /// /// /// /// Task GetResourceValue( string resource, string language = null ); /// /// Retrieve an Specified Resource Items ... /// /// /// Task> GetResources(string resource); /// /// Retrieve Specified Resource Items as XResourceDto Presentation ... /// /// /// Task GetResource(string resource); #endregion // #region Query ... /// /// Query Resource IDs ... /// /// /// XQueryResult QueryResourceIds(XQuery query); /// /// Query Specified Language Resources ... /// /// /// /// Task> QueryLanguageResources( XQuery query, string language = null // ); /// /// Query Locale Resources ... /// /// /// /// Task> QueryLocaleResources( XQuery query, string language = null // ); /// /// Conditional Query Resources ... /// /// /// /// /// Task> ConditionalQueryResources( XQuery query, Expression> condition, string language = null ); #endregion // #region Add/Update Actions ... /// /// Add Specified Resource ... /// /// /// /// /// /// Task Add( string resource, string value, string language = null, string connectionId = null ); /// /// Update Resource ... /// /// /// /// /// /// Task Update( string resource, string value, string language = null, string connectionId = null ); /// /// Add Or Update Resource ... /// /// /// /// /// /// Task AddOrUpdate( string resource, string value, string language = null, string connectionId = null ); /// /// Add Specified Resource ... /// /// /// /// Task AddEntity( XStringDto item, string connectionId = null ); /// /// Update Specified Entity ... /// /// /// /// Task UpdateEntity( XStringDto item, string connectionId = null ); /// /// Add Or Update Specified Entitiy ... /// /// /// /// Task AddOrUpdateEntity( XStringDto item, string connectionId = null ); /// /// Add Specified Locale Resource ... /// /// /// /// /// Task AddByLocaleResource( XLocaleResourceDto item, string resource, string connectionId = null ); /// /// Update Specified Locale Resource ... /// /// /// /// /// Task UpdateByLocaleResource( XLocaleResourceDto item, string resource, string connectionId = null ); /// /// Add Or Update Resource By Locale ... /// /// /// /// /// Task AddOrUpdateByLocaleResource( XLocaleResourceDto item, string resource, string connectionId = null ); /// /// Add Or Update all XResourceDto(s) Locales ... /// /// /// /// Task> AddByResource( XResourceDto item, string connectionId = null ); #endregion // #region Remove Actions ... /// /// Remove all Specified Language's Resources ... /// /// /// /// Task RemoveLanguageResources( string language, string connectionId = null ); /// /// Remove all Specified Resource Ids instances ... /// /// /// /// Task> RemoveResource( string resource, string connectionId = null ); /// /// Remove Specified Resource ... /// /// /// /// /// Task Remove( string resource, string language = null, string connectionId = null ); /// /// Remove all Resource of Specified XResourceDto ... /// /// /// /// Task RemoveByResource( XResourceDto item, string connectionId = null ); #endregion } }