Knocks/BackEnd/Knoks.Core/Logic/Interfaces/IKnokManager.cs

30 lines
1.5 KiB
C#

using System.Collections.Generic;
using System.Threading.Tasks;
using Knoks.Core.Entities;
using Knoks.Core.Entities.Args;
namespace Knoks.Core.Logic.Interfaces
{
public interface IKnokManager
{
IDictionary<string, string> Settings { get; }
Task<Knok> Process(CreateKnokArgs knok, decimal currentPrice);
Task<bool> Validate(CreateKnokArgs knok);
KnokRate KnokRatingCalc(CreateKnokArgs knok);
Task<Knok> GetKnok(long knokId, long? contextUserId);
Task<KnokFullData> GetKnokFull(long knokId, long userId);
FileResponse GetFile(long knokId, string fileName);
string GetImageUrl(long knokId, string fileName);
Task<IEnumerable<KnokFeed>> GetPublicKnoks(KnokFeedArgs args);
Task<IEnumerable<KnokOngoing>> GetAliveKnoks(KnokOngoingArgs args);
Task<IEnumerable<KnokOngoing>> GetCurrentlyPublishedKnoks(KnokCurrentlyPublishedArgs args, long userId);
Task<IEnumerable<KnokEnded>> GetPastPublishedKnoks(KnokPastPublishedArgs args, long userId);
Task<KnokOwnData> GetOwnData(long userId);
Task<float> GetKnokPrice(long userId);
Task<Knok> PublishKnok(long knokId, User user, Account userAccount, decimal publishPrice, CreateKnokArgs args); // decimal knokPrice, decimal knokRating);
Task PurchaseKnok(long knokId, User user, Account account);
Task<KnokserProfile> GetKnokserProfile(long knokserId);
Task<IEnumerable<KnokEnded>> GetEndedKnoks(KnokEndedArgs args);
}
}