docs: #275 IPoetPhotoSuggestionService
This commit is contained in:
parent
fd85e6765c
commit
9c2b05a6b5
@ -435,5 +435,10 @@ namespace RMuseum.DbContext
|
||||
/// </summary>
|
||||
public DbSet<GanjoorPoetSuggestedSpecLine> GanjoorPoetSuggestedSpecLines { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// suggested pictures for poets
|
||||
/// </summary>
|
||||
public DbSet<GanjoorPoetSuggestedPicture> GanjoorPoetSuggestedPictures { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,55 @@
|
||||
using System;
|
||||
|
||||
namespace RMuseum.Models.Ganjoor.ViewModels
|
||||
{
|
||||
public class GanjoorPoetSuggestedPictureViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// id
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Poet Id
|
||||
/// </summary>
|
||||
public int PoetId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// order
|
||||
/// </summary>
|
||||
public int PicOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Title
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Description
|
||||
/// </summary>
|
||||
public string Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// image url
|
||||
/// </summary>
|
||||
public string ImageUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// suggested by id
|
||||
/// </summary>
|
||||
public Guid? SuggestedById { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// published
|
||||
/// </summary>
|
||||
public bool Published { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// selected
|
||||
/// </summary>
|
||||
public bool ChosenOne { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -2544,6 +2544,11 @@
|
||||
suggested spec line for poets
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.DbContext.RMuseumDbContext.GanjoorPoetSuggestedPictures">
|
||||
<summary>
|
||||
suggested pictures for poets
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Accounting.DonationExpenditure">
|
||||
<summary>
|
||||
donation expenditures
|
||||
@ -7763,6 +7768,51 @@
|
||||
poet cat info
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetSuggestedPictureViewModel.Id">
|
||||
<summary>
|
||||
id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetSuggestedPictureViewModel.PoetId">
|
||||
<summary>
|
||||
Poet Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetSuggestedPictureViewModel.PicOrder">
|
||||
<summary>
|
||||
order
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetSuggestedPictureViewModel.Title">
|
||||
<summary>
|
||||
Title
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetSuggestedPictureViewModel.Description">
|
||||
<summary>
|
||||
Description
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetSuggestedPictureViewModel.ImageUrl">
|
||||
<summary>
|
||||
image url
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetSuggestedPictureViewModel.SuggestedById">
|
||||
<summary>
|
||||
suggested by id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetSuggestedPictureViewModel.Published">
|
||||
<summary>
|
||||
published
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetSuggestedPictureViewModel.ChosenOne">
|
||||
<summary>
|
||||
selected
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetSuggestedSpecLineViewModel">
|
||||
<summary>
|
||||
Ganjoor Poet Specification view model
|
||||
@ -13036,6 +13086,41 @@
|
||||
<param name="simpleImageStorage"></param>
|
||||
<param name="memoryCache"></param>
|
||||
</member>
|
||||
<member name="T:RMuseum.Services.Implementation.PoetPhotoSuggestionService">
|
||||
<summary>
|
||||
poet photo suggestion service
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.PoetPhotoSuggestionService.SuggestPhotoForPoet(System.Int32,System.Guid,System.IO.Stream,System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
suggest a new photo for a poet
|
||||
</summary>
|
||||
<param name="poetId"></param>
|
||||
<param name="userId"></param>
|
||||
<param name="imageStream"></param>
|
||||
<param name="fileName"></param>
|
||||
<param name="title"></param>
|
||||
<param name="description"></param>
|
||||
<param name="srcUrl"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="F:RMuseum.Services.Implementation.PoetPhotoSuggestionService._context">
|
||||
<summary>
|
||||
Database Context
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:RMuseum.Services.Implementation.PoetPhotoSuggestionService._pictureFileService">
|
||||
<summary>
|
||||
picture file service
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.PoetPhotoSuggestionService.#ctor(RMuseum.DbContext.RMuseumDbContext,RMuseum.Services.IPictureFileService)">
|
||||
<summary>
|
||||
constructor
|
||||
</summary>
|
||||
<param name="context"></param>
|
||||
<param name="pictureFileService"></param>
|
||||
</member>
|
||||
<member name="T:RMuseum.Services.Implementation.RecitationsRssBuilder">
|
||||
<summary>
|
||||
creates an RSS feed from recitations
|
||||
@ -13628,6 +13713,24 @@
|
||||
Image Storage Path
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Services.IPoetPhotoSuggestionService">
|
||||
<summary>
|
||||
poet photo suggestion service
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IPoetPhotoSuggestionService.SuggestPhotoForPoet(System.Int32,System.Guid,System.IO.Stream,System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
suggest a new photo for a poet
|
||||
</summary>
|
||||
<param name="poetId"></param>
|
||||
<param name="userId"></param>
|
||||
<param name="imageStream"></param>
|
||||
<param name="fileName"></param>
|
||||
<param name="title"></param>
|
||||
<param name="description"></param>
|
||||
<param name="srcUrl"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:RMuseum.Services.IRecitationService">
|
||||
<summary>
|
||||
Audio Narration Service
|
||||
|
||||
27
RMuseum/Services/IPoetPhotoSuggestionService.cs
Normal file
27
RMuseum/Services/IPoetPhotoSuggestionService.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using RMuseum.Models.Ganjoor.ViewModels;
|
||||
using RSecurityBackend.Models.Generic;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RMuseum.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// poet photo suggestion service
|
||||
/// </summary>
|
||||
public interface IPoetPhotoSuggestionService
|
||||
{
|
||||
/// <summary>
|
||||
/// suggest a new photo for a poet
|
||||
/// </summary>
|
||||
/// <param name="poetId"></param>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="imageStream"></param>
|
||||
/// <param name="fileName"></param>
|
||||
/// <param name="title"></param>
|
||||
/// <param name="description"></param>
|
||||
/// <param name="srcUrl"></param>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<GanjoorPoetSuggestedPictureViewModel>> SuggestPhotoForPoet(int poetId, Guid userId, Stream imageStream, string fileName, string title, string description, string srcUrl);
|
||||
}
|
||||
}
|
||||
@ -4,8 +4,10 @@ using RMuseum.Models.Ganjoor;
|
||||
using RMuseum.Models.Ganjoor.ViewModels;
|
||||
using RSecurityBackend.Models.Auth.Memory;
|
||||
using RSecurityBackend.Models.Generic;
|
||||
using RSecurityBackend.Models.Image;
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@ -264,5 +266,8 @@ namespace RMuseum.Services.Implementation
|
||||
return new RServiceResult<bool>(false, exp.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
102
RMuseum/Services/Implementation/PoetPhotoSuggestionService.cs
Normal file
102
RMuseum/Services/Implementation/PoetPhotoSuggestionService.cs
Normal file
@ -0,0 +1,102 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using RMuseum.DbContext;
|
||||
using RMuseum.Models.Artifact;
|
||||
using RMuseum.Models.Ganjoor;
|
||||
using RMuseum.Models.Ganjoor.ViewModels;
|
||||
using RSecurityBackend.Models.Generic;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RMuseum.Services.Implementation
|
||||
{
|
||||
/// <summary>
|
||||
/// poet photo suggestion service
|
||||
/// </summary>
|
||||
public class PoetPhotoSuggestionService : IPoetPhotoSuggestionService
|
||||
{
|
||||
/// <summary>
|
||||
/// suggest a new photo for a poet
|
||||
/// </summary>
|
||||
/// <param name="poetId"></param>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="imageStream"></param>
|
||||
/// <param name="fileName"></param>
|
||||
/// <param name="title"></param>
|
||||
/// <param name="description"></param>
|
||||
/// <param name="srcUrl"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<GanjoorPoetSuggestedPictureViewModel>> SuggestPhotoForPoet(int poetId, Guid userId, Stream imageStream, string fileName, string title, string description, string srcUrl)
|
||||
{
|
||||
RServiceResult<RPictureFile> imageRes = await _pictureFileService.Add(title, description, 0, null, srcUrl, imageStream, fileName, "PoetsPhotoSuggestions");
|
||||
|
||||
if (!string.IsNullOrEmpty(imageRes.ExceptionString))
|
||||
{
|
||||
return new RServiceResult<GanjoorPoetSuggestedPictureViewModel>(null, imageRes.ExceptionString);
|
||||
}
|
||||
await _context.SaveChangesAsync();
|
||||
try
|
||||
{
|
||||
var image = imageRes.Result;
|
||||
|
||||
int picOrder = 1 + (await _context.GanjoorPoetSuggestedPictures.Where(p => p.PoetId == poetId).CountAsync());
|
||||
|
||||
GanjoorPoetSuggestedPicture picture = new GanjoorPoetSuggestedPicture()
|
||||
{
|
||||
PoetId = poetId,
|
||||
PicOrder = picOrder,
|
||||
PictureId = image.Id,
|
||||
SuggestedById = userId,
|
||||
Published = false,
|
||||
ChosenOne = false
|
||||
};
|
||||
|
||||
_context.GanjoorPoetSuggestedPictures.Add(picture);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
|
||||
return new RServiceResult<GanjoorPoetSuggestedPictureViewModel>
|
||||
(
|
||||
new GanjoorPoetSuggestedPictureViewModel()
|
||||
{
|
||||
Id = picture.Id,
|
||||
PoetId = poetId,
|
||||
Title = image.Title,
|
||||
Description = image.Description,
|
||||
PicOrder = picture.PicOrder,
|
||||
Published = picture.Published,
|
||||
ChosenOne = picture.ChosenOne,
|
||||
SuggestedById = picture.SuggestedById,
|
||||
ImageUrl = $"api/rimages/{picture.PictureId}.jpg"
|
||||
}
|
||||
);
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
return new RServiceResult<GanjoorPoetSuggestedPictureViewModel>(null, exp.ToString());
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Database Context
|
||||
/// </summary>
|
||||
protected readonly RMuseumDbContext _context;
|
||||
|
||||
/// <summary>
|
||||
/// picture file service
|
||||
/// </summary>
|
||||
|
||||
protected IPictureFileService _pictureFileService;
|
||||
|
||||
/// <summary>
|
||||
/// constructor
|
||||
/// </summary>
|
||||
/// <param name="context"></param>
|
||||
/// <param name="pictureFileService"></param>
|
||||
public PoetPhotoSuggestionService(RMuseumDbContext context, IPictureFileService pictureFileService)
|
||||
{
|
||||
_context = context;
|
||||
_pictureFileService = pictureFileService;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -296,6 +296,9 @@ namespace RMuseum
|
||||
//tracking service
|
||||
services.AddTransient<IUserVisitsTrackingService, UserVisitsTrackingService>();
|
||||
|
||||
//poet photo suggestion service
|
||||
services.AddTransient<IPoetPhotoSuggestionService, PoetPhotoSuggestionService>();
|
||||
|
||||
//upload limit for IIS
|
||||
services.Configure<IISServerOptions>(options =>
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user