using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Threading.Tasks;
using xCommons.Configurations;
using xDataService.Configuration;
using xModels.Dtos;
using xStringService.Interfaces.Entities;
using xStringService.Models.Dtos;
using xStringService.Models.Entities;
namespace xStringService.Interfaces
{
public interface IXStringProvider
{
//
#region Props ...
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 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 ...
///
///
///
Task> 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
);
///
/// Update Resource ...
///
///
///
///
///
Task Update(
string resource,
string value,
string language = null
);
///
/// Add Or Update Resource ...
///
///
///
///
///
Task AddOrUpdate(
string resource,
string value,
string language = null
);
///
/// Add Specified Resource ...
///
///
///
Task AddEntity(XStringDto item);
///
/// Update Specified Entity ...
///
///
///
Task UpdateEntity(XStringDto item);
///
/// Add Or Update Specified Entitiy ...
///
///
///
Task AddOrUpdateEntity(XStringDto item);
///
/// Add Specified Locale Resource ...
///
///
///
///
Task AddByLocaleResource(
XLocaleResourceDto item,
string resource
);
///
/// Update Specified Locale Resource ...
///
///
///
///
Task UpdateByLocaleResource(
XLocaleResourceDto item,
string resource
);
///
/// Add Or Update Resource By Locale ...
///
///
///
///
Task AddOrUpdateByLocaleResource(
XLocaleResourceDto item,
string resource
);
///
/// Add Or Update all XResourceDto(s) Locales ...
///
///
///
Task> AddByResource(XResourceDto item);
#endregion
//
#region Remove Actions ...
///
/// Remove all Specified Language's Resources ...
///
///
///
Task RemoveLanguageResources(string language);
///
/// Remove all Specified Resource Ids instances ...
///
///
///
Task> RemoveResource(string resource);
///
/// Remove Specified Resource ...
///
///
///
///
Task Remove(
string resource,
string language = null
);
///
/// Remove all Resource of Specified XResourceDto ...
///
///
///
Task RemoveByResource(XResourceDto item);
#endregion
}
}