ENEI2019-Public/api/Data/UsersRepository.cs

83 lines
1.9 KiB
C#
Raw Normal View History

2018-12-12 15:17:08 +00:00
using System.Collections.Generic;
2019-03-24 18:57:09 +00:00
using System.Linq;
2018-12-12 15:17:08 +00:00
using System.Threading.Tasks;
2019-03-24 13:41:40 +00:00
using api.Dtos;
2018-12-12 15:17:08 +00:00
using api.Models;
using Microsoft.EntityFrameworkCore;
namespace api.Data
{
public class UsersRepository : IUsersRepository
{
private readonly DataContext _context;
public UsersRepository(DataContext context)
{
this._context = context;
}
public void Add<T>(T enity) where T : class
{
2019-03-24 13:41:40 +00:00
_context.Add(enity);
2018-12-12 15:17:08 +00:00
}
2019-03-24 13:41:40 +00:00
public async Task<User> changeProfileImage(profileImage a)
{
var utilizador = await _context.Users.FirstOrDefaultAsync(t => t.QRcode == a.QRcode);
if (utilizador != null)
{
utilizador.profileImage = a.base64;
2019-03-24 18:57:09 +00:00
2019-03-24 13:41:40 +00:00
_context.Users.Update(utilizador);
var result = _context.SaveChanges();
2019-03-24 18:57:09 +00:00
if (result >= 1)
2019-03-24 13:41:40 +00:00
{
return utilizador;
}
2019-03-24 18:57:09 +00:00
2019-03-24 13:41:40 +00:00
return null;
}
return null;
}
2018-12-12 15:17:08 +00:00
public void Delete<T>(T entity) where T : class
{
2019-03-24 13:41:40 +00:00
2019-03-24 18:57:09 +00:00
2018-12-12 15:17:08 +00:00
_context.Remove(entity);
}
2019-03-24 18:57:09 +00:00
public Task<string> getProfileImageAsync(string qrCode)
{
return Task.Run(() =>
{
return _context.Users.Where(a => a.QRcode == qrCode).Select(u => u.profileImage).SingleOrDefault() ;
});
}
2018-12-12 15:17:08 +00:00
public async Task<User> GetUser(int id)
{
2019-03-24 13:41:40 +00:00
var user = await _context.Users.Include(p => p.Photos).FirstOrDefaultAsync(u => u.Id == id);
2018-12-12 15:17:08 +00:00
return user;
}
public async Task<IEnumerable<User>> GetUsers()
{
2019-03-24 13:41:40 +00:00
var users = await _context.Users.Include(p => p.Photos).ToListAsync();
2018-12-12 15:17:08 +00:00
return users;
}
public async Task<bool> SaveAll()
{
2019-03-24 13:41:40 +00:00
return await _context.SaveChangesAsync() > 0;
2018-12-12 15:17:08 +00:00
}
}
}