using System.Collections.Generic;
using System.Threading.Tasks;
using AutoMapper;
using Datory;
using GxPress.Common.AppOptions;
using GxPress.Common.Tools;
using GxPress.Repository.Interface.UserMiddle;
using Microsoft.Extensions.Options;
using SqlKata;
namespace GxPress.Repository.Implement.UserMiddle
{
///
/// 用户中间件
///
public class UserMiddleRepository : IUserMiddleRepository
{
private readonly Repository _repository;
private readonly IMapper _mapper;
public UserMiddleRepository(IOptionsMonitor dbOptionsAccessor, IMapper mapper)
{
var databaseType = StringUtils.ToEnum(dbOptionsAccessor.CurrentValue.DatabaseType, DatabaseType.MySql);
var database = new Database(databaseType, dbOptionsAccessor.CurrentValue.ConnectionString);
_repository = new Repository(database);
_mapper = mapper;
}
public IDatabase Database => _repository.Database;
public string TableName => _repository.TableName;
public List TableColumns => _repository.TableColumns;
///
/// 添加
///
///
///
public async Task InsertAsync(Entity.UserMiddle.UserMiddle userMiddle)
{
return await _repository.InsertAsync(userMiddle);
}
public async Task UpdateAsync(Entity.UserMiddle.UserMiddle userMiddle)
{
return await _repository.UpdateAsync(userMiddle);
}
public async Task UpdateAsync(SqlKata.Query query)
{
return await _repository.UpdateAsync(query) > 0;
}
public async Task GetAsync(SqlKata.Query query)
{
return await _repository.GetAsync(query);
}
public async Task GetAsync(int id)
{
return await _repository.GetAsync(id);
}
public async Task> GetAllAsync(SqlKata.Query query)
{
return await _repository.GetAllAsync(query);
}
public async Task CountAsync(SqlKata.Query query)
{
return await _repository.CountAsync(query);
}
public async Task ExistsAsync(SqlKata.Query query)
{
return await _repository.ExistsAsync(query);
}
public async Task DeleteAsync(Query query)
{
return await _repository.DeleteAsync(query)>0;
}
}
}