Files
xStringService/Interfaces/IXStringProvider.cs
T

251 lines
7.5 KiB
C#

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 ...
/// <summary>
/// Retrieve all Exists Languages ...
/// </summary>
/// <returns></returns>
Task<IEnumerable<string>> GetLanguages();
/// <summary>
/// Check Specified Resource Exists or not ...
/// </summary>
/// <param name="resource"></param>
/// <param name="language"></param>
/// <returns></returns>
Task<bool> IsResourceExists(
string resource,
string language = null
);
/// <summary>
/// Retrieve Specified Translation of Specified Resource ...
/// </summary>
/// <param name="resource"></param>
/// <param name="language"></param>
/// <returns></returns>
Task<string> GetResourceValue(
string resource,
string language = null
);
/// <summary>
/// Retrieve an Specified Resource Items ...
/// </summary>
/// <param name="resource"></param>
/// <returns></returns>
Task<IEnumerable<XStringDto>> GetResources(string resource);
/// <summary>
/// Retrieve Specified Resource Items as XResourceDto Presentation ...
/// </summary>
/// <param name="resource"></param>
/// <returns></returns>
Task<XResourceDto> GetResource(string resource);
#endregion
//
#region Query ...
/// <summary>
/// Query Resource IDs ...
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
Task<XQueryResult<string>> QueryResourceIds(XQuery query);
/// <summary>
/// Query Specified Language Resources ...
/// </summary>
/// <param name="query"></param>
/// <param name="language"></param>
/// <returns></returns>
Task<XQueryResult<XStringDto>> QueryLanguageResources(
XQuery query,
string language = null //
);
/// <summary>
/// Query Locale Resources ...
/// </summary>
/// <param name="query"></param>
/// <param name="language"></param>
/// <returns></returns>
Task<XQueryResult<XLocaleResourceDto>> QueryLocaleResources(
XQuery query,
string language = null //
);
/// <summary>
/// Conditional Query Resources ...
/// </summary>
/// <param name="query"></param>
/// <param name="condition"></param>
/// <param name="language"></param>
/// <returns></returns>
Task<XQueryResult<XStringDto>> ConditionalQueryResources(
XQuery query,
Expression<Func<XString, bool>> condition,
string language = null
);
#endregion
//
#region Add/Update Actions ...
/// <summary>
/// Add Specified Resource ...
/// </summary>
/// <param name="resource"></param>
/// <param name="value"></param>
/// <param name="language"></param>
/// <returns></returns>
Task<bool> Add(
string resource,
string value,
string language = null
);
/// <summary>
/// Update Resource ...
/// </summary>
/// <param name="resource"></param>
/// <param name="value"></param>
/// <param name="language"></param>
/// <returns></returns>
Task<bool> Update(
string resource,
string value,
string language = null
);
/// <summary>
/// Add Or Update Resource ...
/// </summary>
/// <param name="resource"></param>
/// <param name="value"></param>
/// <param name="language"></param>
/// <returns></returns>
Task<bool> AddOrUpdate(
string resource,
string value,
string language = null
);
/// <summary>
/// Add Specified Resource ...
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
Task<XStringDto> AddEntity(XStringDto item);
/// <summary>
/// Update Specified Entity ...
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
Task<XStringDto> UpdateEntity(XStringDto item);
/// <summary>
/// Add Or Update Specified Entitiy ...
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
Task<XStringDto> AddOrUpdateEntity(XStringDto item);
/// <summary>
/// Add Specified Locale Resource ...
/// </summary>
/// <param name="item"></param>
/// <param name="resource"></param>
/// <returns></returns>
Task<XStringDto> AddByLocaleResource(
XLocaleResourceDto item,
string resource
);
/// <summary>
/// Update Specified Locale Resource ...
/// </summary>
/// <param name="item"></param>
/// <param name="resource"></param>
/// <returns></returns>
Task<XStringDto> UpdateByLocaleResource(
XLocaleResourceDto item,
string resource
);
/// <summary>
/// Add Or Update Resource By Locale ...
/// </summary>
/// <param name="item"></param>
/// <param name="resource"></param>
/// <returns></returns>
Task<XStringDto> AddOrUpdateByLocaleResource(
XLocaleResourceDto item,
string resource
);
/// <summary>
/// Add Or Update all XResourceDto(s) Locales ...
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
Task<IEnumerable<XStringDto>> AddByResource(XResourceDto item);
#endregion
//
#region Remove Actions ...
/// <summary>
/// Remove all Specified Language's Resources ...
/// </summary>
/// <param name="language"></param>
/// <returns></returns>
Task RemoveLanguageResources(string language);
/// <summary>
/// Remove all Specified Resource Ids instances ...
/// </summary>
/// <param name="resource"></param>
/// <returns></returns>
Task<IEnumerable<XStringDto>> RemoveResource(string resource);
/// <summary>
/// Remove Specified Resource ...
/// </summary>
/// <param name="resource"></param>
/// <param name="language"></param>
/// <returns></returns>
Task<bool> Remove(
string resource,
string language = null
);
/// <summary>
/// Remove all Resource of Specified XResourceDto ...
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
Task RemoveByResource(XResourceDto item);
#endregion
}
}