809 lines
22 KiB
C#
809 lines
22 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.Extensions.Logging;
|
|
using xCommons.Configurations;
|
|
using xCommons.Extensions;
|
|
using xCommons.Providers;
|
|
using xIdentityService.Controllers;
|
|
using xIdentityService.Interfaces;
|
|
using xModels.Dtos;
|
|
using xStringService.Interfaces;
|
|
using xStringService.Models.Dtos;
|
|
|
|
namespace xStringService.Controllerppa
|
|
{
|
|
public abstract class XStringServiceControllerBase : XIBaseProviderController, IXStringServiceControllerActions
|
|
{
|
|
//
|
|
#region Props ...
|
|
public IXStringProvider StringProvider { get; }
|
|
#endregion
|
|
|
|
//
|
|
#region Constructor ...
|
|
public XStringServiceControllerBase(
|
|
ILogger logger,
|
|
IXStringProvider stringProvider,
|
|
XAppConfiguration appConfiguration,
|
|
IXIdentityProvider identityProvider,
|
|
XValidationProvider validationProvider
|
|
) : base(
|
|
logger,
|
|
appConfiguration,
|
|
identityProvider,
|
|
validationProvider
|
|
)
|
|
{
|
|
//
|
|
StringProvider = stringProvider;
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region Retrievers ...
|
|
/// <summary>
|
|
/// Retrieve all Exists Languages ...
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("Languages")]
|
|
public virtual async Task<ActionResult<IEnumerable<string>>> GetLanguages()
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.GetLanguages();
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Check Specified Resource Exists or not ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("IsResourceExists")]
|
|
public virtual async Task<ActionResult<bool>> IsResourceExists(
|
|
[FromQuery] string resource,
|
|
[FromQuery] string language = null
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.IsResourceExists(
|
|
resource: resource,
|
|
language: language
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieve Specified Resource ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("")]
|
|
public virtual async Task<ActionResult<XStringDto>> Get(
|
|
[FromQuery] string resource,
|
|
[FromQuery] string language = null
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.Get(
|
|
resource: resource,
|
|
language: language
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieve Specified Translation of Specified Resource ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("ResourceValue")]
|
|
public virtual async Task<ActionResult<string>> GetResourceValue(
|
|
[FromQuery] string resource,
|
|
[FromQuery] string language = null
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.GetResourceValue(
|
|
resource: resource,
|
|
language: language
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieve an Specified Resource Items ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("Resources")]
|
|
public virtual async Task<ActionResult<IEnumerable<XStringDto>>> GetResources(
|
|
[FromQuery] string resource
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.GetResources(resource);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieve Specified Resource Items as XResourceDto Presentation ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("AsResource")]
|
|
public virtual async Task<ActionResult<XResourceDto>> GetResource(
|
|
[FromQuery] string resource
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.GetResource(resource);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region Query ...
|
|
/// <summary>
|
|
/// Query Resource IDs ...
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("QueryResourceIds")]
|
|
public virtual async Task<ActionResult<XQueryResult<string>>> QueryResourceIds(
|
|
[FromQuery] XQuery query
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.QueryResourceIds(query);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Query Specified Language Resources ...
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("QueryLanguageResources")]
|
|
public virtual async Task<ActionResult<XQueryResult<XStringDto>>> QueryLanguageResources(
|
|
[FromQuery] XQuery query,
|
|
[FromQuery] string language = null //
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.QueryLanguageResources(
|
|
query: query,
|
|
language: language
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Query Locale Resources ...
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("QueryLocaleResources")]
|
|
public virtual async Task<ActionResult<XQueryResult<XLocaleResourceDto>>> QueryLocaleResources(
|
|
[FromQuery] XQuery query,
|
|
[FromQuery] string language = null //
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.QueryLocaleResources(
|
|
query: query,
|
|
language: language
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region Add/Update Actions ...
|
|
/// <summary>
|
|
/// Add Specified Resource ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="value"></param>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("Add")]
|
|
public virtual async Task<ActionResult<bool>> Add(
|
|
[FromQuery] string resource,
|
|
[FromQuery] string value,
|
|
[FromQuery] string language = null
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.Add(
|
|
value: value,
|
|
resource: resource,
|
|
language: language
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Update Resource ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="value"></param>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("Update")]
|
|
public virtual async Task<ActionResult<bool>> Update(
|
|
[FromQuery] string resource,
|
|
[FromQuery] string value,
|
|
[FromQuery] string language = null
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.Update(
|
|
value: value,
|
|
resource: resource,
|
|
language: language
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Add Or Update Resource ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="value"></param>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("AddOrUpdate")]
|
|
public virtual async Task<ActionResult<bool>> AddOrUpdate(
|
|
[FromQuery] string resource,
|
|
[FromQuery] string value,
|
|
[FromQuery] string language = null
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.AddOrUpdate(
|
|
value: value,
|
|
resource: resource,
|
|
language: language
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Add Specified Resource ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("AddModel")]
|
|
public virtual async Task<ActionResult<XStringDto>> AddEntity(
|
|
[FromBody] XStringDto item
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider.AddEntity(item);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Update Specified Entity ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("UpdateModel")]
|
|
public virtual async Task<ActionResult<XStringDto>> UpdateEntity(
|
|
[FromBody] XStringDto item
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.UpdateEntity(item);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Add Or Update Specified Entitiy ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("AddOrUpdateModel")]
|
|
public virtual async Task<ActionResult<XStringDto>> AddOrUpdateEntity(
|
|
[FromBody] XStringDto item
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.AddOrUpdateEntity(item);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Add Specified Locale Resource ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="resource"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("AddLocale")]
|
|
public virtual async Task<ActionResult<XStringDto>> AddByLocaleResource(
|
|
[FromBody] XLocaleResourceDto item,
|
|
[FromQuery] string resource
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.AddByLocaleResource(
|
|
item: item,
|
|
resource: resource
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Update Specified Locale Resource ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="resource"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("UpdateLocale")]
|
|
public virtual async Task<ActionResult<XStringDto>> UpdateByLocaleResource(
|
|
[FromBody] XLocaleResourceDto item,
|
|
[FromQuery] string resource
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.UpdateByLocaleResource(
|
|
item: item,
|
|
resource: resource
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Add Or Update Resource By Locale ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <param name="resource"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("AddOrUpdateLocale")]
|
|
public virtual async Task<ActionResult<XStringDto>> AddOrUpdateByLocaleResource(
|
|
[FromBody] XLocaleResourceDto item,
|
|
[FromQuery] string resource
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.AddOrUpdateByLocaleResource(
|
|
item: item,
|
|
resource: resource
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Add Or Update all XResourceDto(s) Locales ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("AddResource")]
|
|
public virtual async Task<ActionResult<IEnumerable<XStringDto>>> AddByResource(
|
|
[FromBody] XResourceDto item
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.AddByResource(item);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region Remove Actions ...
|
|
/// <summary>
|
|
/// Remove all Specified Language's Resources ...
|
|
/// </summary>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
[HttpDelete("RemoveLanguage")]
|
|
public virtual async Task<ActionResult> RemoveLanguageResources(
|
|
[FromQuery] string language
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
await StringProvider
|
|
.RemoveLanguageResources(language);
|
|
|
|
//
|
|
return Ok();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Remove all Specified Resource Ids instances ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <returns></returns>
|
|
[HttpDelete("RemoveLocales")]
|
|
public virtual async Task<ActionResult<IEnumerable<XStringDto>>> RemoveResource(
|
|
[FromQuery] string resource
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.RemoveResource(resource);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Remove Specified Resource ...
|
|
/// </summary>
|
|
/// <param name="resource"></param>
|
|
/// <param name="language"></param>
|
|
/// <returns></returns>
|
|
[HttpDelete("Remove")]
|
|
public virtual async Task<ActionResult<bool>> Remove(
|
|
[FromQuery] string resource,
|
|
[FromQuery] string language = null
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
var result = await StringProvider
|
|
.Remove(
|
|
resource: resource,
|
|
language: language
|
|
);
|
|
|
|
//
|
|
return Ok(result.
|
|
ToDynamicObject());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Remove all Resource of Specified XResourceDto ...
|
|
/// </summary>
|
|
/// <param name="item"></param>
|
|
/// <returns></returns>
|
|
[HttpDelete("RemoveResource")]
|
|
public virtual async Task<ActionResult> RemoveByResource(
|
|
[FromBody] XResourceDto item
|
|
)
|
|
{
|
|
//
|
|
// Do ...
|
|
try
|
|
{
|
|
//
|
|
await StringProvider
|
|
.RemoveByResource(item);
|
|
|
|
//
|
|
return Ok();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//
|
|
var result = GetExceptionActionResult(ex);
|
|
return result;
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
} |