307 lines
9.2 KiB
C#
307 lines
9.2 KiB
C#
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<XStringHub> Hub { get; }
|
|
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 Resource ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
Task<XStringDto> Get(
|
|
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>
|
|
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>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<bool> Add(
|
|
string resource,
|
|
string value,
|
|
string language = null,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Update Resource ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="value"></param>
|
|
/// <param name="language"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<bool> Update(
|
|
string resource,
|
|
string value,
|
|
string language = null,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Add Or Update Resource ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="value"></param>
|
|
/// <param name="language"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<bool> AddOrUpdate(
|
|
string resource,
|
|
string value,
|
|
string language = null,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Add Specified Resource ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<XStringDto> AddEntity(
|
|
XStringDto item,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Update Specified Entity ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<XStringDto> UpdateEntity(
|
|
XStringDto item,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Add Or Update Specified Entitiy ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<XStringDto> AddOrUpdateEntity(
|
|
XStringDto item,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Add Specified Locale Resource ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="resource"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<XStringDto> AddByLocaleResource(
|
|
XLocaleResourceDto item,
|
|
string resource,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Update Specified Locale Resource ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="resource"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<XStringDto> UpdateByLocaleResource(
|
|
XLocaleResourceDto item,
|
|
string resource,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Add Or Update Resource By Locale ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="resource"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<XStringDto> AddOrUpdateByLocaleResource(
|
|
XLocaleResourceDto item,
|
|
string resource,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Add Or Update all XResourceDto(s) Locales ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<IEnumerable<XStringDto>> AddByResource(
|
|
XResourceDto item,
|
|
string connectionId = null
|
|
);
|
|
#endregion
|
|
|
|
//
|
|
#region Remove Actions ...
|
|
/// <summary>
|
|
/// Remove all Specified Language's Resources ...
|
|
/// </summary>
|
|
/// <param name="language"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task RemoveLanguageResources(
|
|
string language,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Remove all Specified Resource Ids instances ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<IEnumerable<XStringDto>> RemoveResource(
|
|
string resource,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Remove Specified Resource ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="language"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task<bool> Remove(
|
|
string resource,
|
|
string language = null,
|
|
string connectionId = null
|
|
);
|
|
|
|
/// <summary>
|
|
/// Remove all Resource of Specified XResourceDto ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="connectionId"></param>
|
|
/// <returns></returns>
|
|
Task RemoveByResource(
|
|
XResourceDto item,
|
|
string connectionId = null
|
|
);
|
|
#endregion
|
|
}
|
|
} |