using System; using Knoks.Core.Entities; using Knoks.Core.Data.Interfaces; using Knoks.Framework.DataAccess; using Microsoft.Extensions.Logging; using System.Linq; using System.Threading.Tasks; using Knoks.Core.Entities.Args; using Knoks.Core.Logic.Interfaces; using System.Collections.Generic; using Knoks.Core.Entities.Args.AccountTransactions; namespace Knoks.Core.Data.Dao { public class AccountDao : IAccountDao { private readonly ILogger _logger; private readonly IProcExecutor _executor; public AccountDao(ILogger logger, IProcExecutor executor) { _logger = logger; _executor = executor; } public async Task GetUserAccounts(long userId) { _logger.LogDebug($"Get User Accounts for user id: {userId}"); var result = await _executor.Go("API_GetUserAccounts", new { userId }); var user = result.Тables[0][0].To(); var accounts = result.Тables[1].Rows.Select(r => r.To()); return new UserAccounts { User = user, Accounts = accounts }; } public async Task> GetFavorites(long? userId) { return (await _executor.Go("BO_GetUserFavoriteKnoks", new { userId })).Тables[0].ToPrimitiveList(); } public async Task> AddFavorite(long? userId, int knokId) { return (await _executor.Go("BO_AddUserFavoriteKnok", new { userId, knokId })).Тables[0].ToPrimitiveList(); } public async Task> RemoveFavorite(long? userId, int knokId) { return (await _executor.Go("BO_RemoveUserFavoriteKnok", new { userId, knokId })).Тables[0].ToPrimitiveList(); } public async Task> GetFollows(long? userId) { return (await _executor.Go("BO_GetUserFollows", new { userId })).Тables[0].ToPrimitiveList(); } public async Task> AddFollow(long? userId, long followUserId) { return (await _executor.Go("BO_AddUserFollow", new { userId, followUserId })).Тables[0].ToPrimitiveList(); } public async Task> RemoveFollow(long? userId, long followUserId) { return (await _executor.Go("BO_RemoveUserFollow", new { userId, followUserId })).Тables[0].ToPrimitiveList(); } } }