#106 site banner api is now complete
This commit is contained in:
parent
728e1e8008
commit
a3d82ad01f
@ -932,13 +932,13 @@ namespace RMuseum.Controllers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// add site banner (send form) with these feilds: filename, alt, url and an image attachment
|
||||
/// add site banner (send form) with these fields: filename, alt, url and an image attachment
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("site/banner")]
|
||||
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + RMuseumSecurableItem.Banners)]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorSiteBanner))]
|
||||
[AllowAnonymous]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorSiteBannerViewModel))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
[ProducesResponseType((int)HttpStatusCode.Unauthorized)]
|
||||
public async Task<IActionResult> AddSiteBanner()
|
||||
@ -965,15 +965,13 @@ namespace RMuseum.Controllers
|
||||
return BadRequest("a single image is not provided");
|
||||
}
|
||||
using Stream stream = Request.Form.Files[0].OpenReadStream();
|
||||
RServiceResult<GanjoorSiteBanner> res = await _ganjoorService.AddSiteBanner(stream, filename.ToString(), alt.ToString(), alt.ToString(), false);
|
||||
RServiceResult<GanjoorSiteBannerViewModel> res = await _ganjoorService.AddSiteBanner(stream, filename.ToString(), alt.ToString(), alt.ToString(), false);
|
||||
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
{
|
||||
return BadRequest(res.ExceptionString);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return Ok(res.Result);
|
||||
}
|
||||
catch (Exception exp)
|
||||
@ -1057,6 +1055,70 @@ namespace RMuseum.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// get all defined site banners
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
|
||||
[HttpGet]
|
||||
[Route("site/banners")]
|
||||
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + RMuseumSecurableItem.Banners)]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorSiteBannerViewModel[]))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
[ProducesResponseType((int)HttpStatusCode.Unauthorized)]
|
||||
public async Task<IActionResult> GetSiteBanners()
|
||||
{
|
||||
try
|
||||
{
|
||||
RServiceResult<GanjoorSiteBannerViewModel[]> res = await _ganjoorService.GetSiteBanners();
|
||||
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
{
|
||||
return BadRequest(res.ExceptionString);
|
||||
}
|
||||
return Ok(res.Result);
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return BadRequest(exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// get a random active site banner
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("site/banner")]
|
||||
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + RMuseumSecurableItem.Banners)]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorSiteBannerViewModel))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
[ProducesResponseType((int)HttpStatusCode.Unauthorized)]
|
||||
[ProducesResponseType((int)HttpStatusCode.NotFound)]
|
||||
public async Task<IActionResult> GetARandomActiveSiteBanner()
|
||||
{
|
||||
try
|
||||
{
|
||||
RServiceResult<GanjoorSiteBannerViewModel> res = await _ganjoorService.GetARandomActiveSiteBanner();
|
||||
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
{
|
||||
return BadRequest(res.ExceptionString);
|
||||
}
|
||||
|
||||
if(res.Result == null)
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
return Ok(res.Result);
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return BadRequest(exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ganjoor Service
|
||||
/// </summary>
|
||||
|
||||
@ -885,7 +885,7 @@
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.GanjoorController.AddSiteBanner">
|
||||
<summary>
|
||||
add site banner (send form) with these feilds: filename, alt, url and an image attachment
|
||||
add site banner (send form) with these fields: filename, alt, url and an image attachment
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
@ -904,6 +904,18 @@
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.GanjoorController.GetSiteBanners">
|
||||
<summary>
|
||||
get all defined site banners
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.GanjoorController.GetARandomActiveSiteBanner">
|
||||
<summary>
|
||||
get a random active site banner
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="F:RMuseum.Controllers.GanjoorController._ganjoorService">
|
||||
<summary>
|
||||
Ganjoor Service
|
||||
@ -6768,6 +6780,18 @@
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IGanjoorService.GetSiteBanners">
|
||||
<summary>
|
||||
get site banners
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IGanjoorService.GetARandomActiveSiteBanner">
|
||||
<summary>
|
||||
get a random site banner
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IGanjoorService.Faal">
|
||||
<summary>
|
||||
get a random poem from hafez
|
||||
@ -7816,6 +7840,18 @@
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetSiteBanners">
|
||||
<summary>
|
||||
get site banners
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetARandomActiveSiteBanner">
|
||||
<summary>
|
||||
get a random site banner
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="F:RMuseum.Services.Implementation.GanjoorService._context">
|
||||
<summary>
|
||||
Database Context
|
||||
|
||||
@ -267,7 +267,7 @@ namespace RMuseum.Services
|
||||
/// <param name="targetUrl"></param>
|
||||
/// <param name="active"></param>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<GanjoorSiteBanner>> AddSiteBanner(Stream imageStream, string fileName, string alternateText, string targetUrl, bool active);
|
||||
Task<RServiceResult<GanjoorSiteBannerViewModel>> AddSiteBanner(Stream imageStream, string fileName, string alternateText, string targetUrl, bool active);
|
||||
|
||||
/// <summary>
|
||||
/// modify site banner
|
||||
@ -286,6 +286,18 @@ namespace RMuseum.Services
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<bool>> DeleteSiteBanner(int id);
|
||||
|
||||
/// <summary>
|
||||
/// get site banners
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<GanjoorSiteBannerViewModel[]>> GetSiteBanners();
|
||||
|
||||
/// <summary>
|
||||
/// get a random site banner
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<GanjoorSiteBannerViewModel>> GetARandomActiveSiteBanner();
|
||||
|
||||
/// <summary>
|
||||
/// get a random poem from hafez
|
||||
/// </summary>
|
||||
|
||||
@ -1888,7 +1888,7 @@ namespace RMuseum.Services.Implementation
|
||||
/// <param name="targetUrl"></param>
|
||||
/// <param name="active"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<GanjoorSiteBanner>> AddSiteBanner(Stream imageStream, string fileName, string alternateText, string targetUrl, bool active)
|
||||
public async Task<RServiceResult<GanjoorSiteBannerViewModel>> AddSiteBanner(Stream imageStream, string fileName, string alternateText, string targetUrl, bool active)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -1896,7 +1896,7 @@ namespace RMuseum.Services.Implementation
|
||||
|
||||
if (!string.IsNullOrEmpty(image.ExceptionString))
|
||||
{
|
||||
return new RServiceResult<GanjoorSiteBanner>(null, image.ExceptionString);
|
||||
return new RServiceResult<GanjoorSiteBannerViewModel>(null, image.ExceptionString);
|
||||
}
|
||||
|
||||
GanjoorSiteBanner banner = new GanjoorSiteBanner()
|
||||
@ -1910,12 +1910,22 @@ namespace RMuseum.Services.Implementation
|
||||
_context.GanjoorSiteBanners.Add(banner);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
return new RServiceResult<GanjoorSiteBanner>(banner);
|
||||
return new RServiceResult<GanjoorSiteBannerViewModel>
|
||||
(
|
||||
new GanjoorSiteBannerViewModel()
|
||||
{
|
||||
Id = banner.Id,
|
||||
ImageUrl = $"api/rimages/{banner.RImageId}.jpg",
|
||||
AlternateText = banner.AlternateText,
|
||||
TargetUrl = banner.TargetUrl,
|
||||
Active = banner.Active
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
catch(Exception exp)
|
||||
{
|
||||
return new RServiceResult<GanjoorSiteBanner>(null, exp.ToString());
|
||||
return new RServiceResult<GanjoorSiteBannerViewModel>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
@ -1978,6 +1988,67 @@ namespace RMuseum.Services.Implementation
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// get site banners
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<GanjoorSiteBannerViewModel[]>> GetSiteBanners()
|
||||
{
|
||||
try
|
||||
{
|
||||
return new RServiceResult<GanjoorSiteBannerViewModel[]>(
|
||||
await _context.GanjoorSiteBanners
|
||||
.Select(b => new GanjoorSiteBannerViewModel()
|
||||
{
|
||||
Id = b.Id,
|
||||
ImageUrl = $"api/rimages/{b.RImageId}.jpg",
|
||||
AlternateText = b.AlternateText,
|
||||
TargetUrl = b.TargetUrl,
|
||||
Active = b.Active
|
||||
}).ToArrayAsync()
|
||||
);
|
||||
}
|
||||
catch(Exception exp)
|
||||
{
|
||||
return new RServiceResult<GanjoorSiteBannerViewModel[]>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// get a random site banner
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<GanjoorSiteBannerViewModel>> GetARandomActiveSiteBanner()
|
||||
{
|
||||
try
|
||||
{
|
||||
int[] idSet = await _context.GanjoorSiteBanners.Where(b => b.Active == true).Select(b => b.Id).ToArrayAsync();
|
||||
if (idSet.Length == 0)
|
||||
return new RServiceResult<GanjoorSiteBannerViewModel>(null);//not found
|
||||
|
||||
Random rnd = new Random(DateTime.Now.Millisecond);
|
||||
int id = idSet[rnd.Next(0, idSet.Length - 1)];
|
||||
|
||||
return new RServiceResult<GanjoorSiteBannerViewModel>(
|
||||
await _context.GanjoorSiteBanners
|
||||
.Where(b => b.Id == id)
|
||||
.Select(b => new GanjoorSiteBannerViewModel()
|
||||
{
|
||||
Id = b.Id,
|
||||
ImageUrl = $"api/rimages/{b.RImageId}.jpg",
|
||||
AlternateText = b.AlternateText,
|
||||
TargetUrl = b.TargetUrl,
|
||||
Active = b.Active
|
||||
}).SingleAsync()
|
||||
);
|
||||
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return new RServiceResult<GanjoorSiteBannerViewModel>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Database Context
|
||||
/// </summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user