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 Settings { get; } Task Process(CreateKnokArgs knok, decimal currentPrice); Task Validate(CreateKnokArgs knok); KnokRate KnokRatingCalc(CreateKnokArgs knok); Task GetKnok(long knokId, long? contextUserId); Task GetKnokFull(long knokId, long userId); FileResponse GetFile(long knokId, string fileName); string GetImageUrl(long knokId, string fileName); Task> GetPublicKnoks(KnokFeedArgs args); Task> GetAliveKnoks(KnokOngoingArgs args); Task> GetCurrentlyPublishedKnoks(KnokCurrentlyPublishedArgs args, long userId); Task> GetPastPublishedKnoks(KnokPastPublishedArgs args, long userId); Task GetOwnData(long userId); Task GetKnokPrice(long userId); Task PublishKnok(long knokId, User user, Account userAccount, decimal publishPrice, CreateKnokArgs args); // decimal knokPrice, decimal knokRating); Task PurchaseKnok(long knokId, User user, Account account); Task GetKnokserProfile(long knokserId); Task> GetEndedKnoks(KnokEndedArgs args); } }