using Mqtt.App.Persistencia.Configurations; using Mqtt.App.Application.Interfaces; using Mqtt.App.Domain.Entities.User; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Mqtt.App.Domain.Entities.Mqtt; namespace Mqtt.App.Persistencia.Services { public class PersistenciaService : DbContext, IPersistenciaService { public PersistenciaService(DbContextOptions options): base(options) { } public DbSet User { get; set; } public DbSet Mqtt { get; set; } #region user public async Task AddUser(UserEntity user) { User.Add(user); return await BoolAsync(); } public async Task UpdateUser(UserEntity user) { User.Update(user); return await BoolAsync(); } public async Task DeleteUser(int idUser) { var enty= await User.FirstOrDefaultAsync(x => x.Id == idUser); if (enty == null) return false; User.Remove(enty); return await BoolAsync(); } public async Task UpdateNoNullUser(UserEntity user) { var enty = await User.FirstOrDefaultAsync(x => x.Id == user.Id); if (enty == null) return false; if(user.Password!=null) enty.Password= user.Password; if (user.LastName != null) enty.LastName = user.LastName; if (user.UserName != null) enty.UserName = user.UserName; if (user.FristName != null) enty.FristName = user.FristName; return await BoolAsync(); } public async Task> GetAllUser() { return await User.ToListAsync(); } public async Task GetUserById(int idUser) { var enty = await User.FirstOrDefaultAsync(x => x.Id == idUser); return enty; } public async Task GetUserByPassAndName(string pass, string name) { var enty = await User.FirstOrDefaultAsync(x => (x.Password == pass) && (x.UserName==name)); return enty; } #endregion #region mqtt public async Task AddMqtt(MqttEntity e) { Mqtt.Add(e); return await BoolAsync(); } #endregion private async Task BoolAsync() { return await SaveChangesAsync()>0; } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); EntityConfigration(modelBuilder); } private void EntityConfigration(ModelBuilder model) { //configuras entidades relaccionadas con bbdd new UserConfiguration(model.Entity()); new UserConfiguration(model.Entity()); } } }