You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

158 lines
4.7 KiB

using Bussness;
using CalculateurEF.Context;
using CalculateurEF.Entities;
using ClassCalculateurMoyenne;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CalculateurMapping
{
public class MaquetteDbDataManager<TContext> : IMaquetteDbManager where TContext : CalculContext, new()
{
public MaquetteDbDataManager()
{
using (var context = new TContext())
{
context.Database.EnsureCreated();
}
}
public async Task<bool> Add(MaquetteModel mqt)
{ //Add mqt
bool result = false;
using (var context = new TContext())
{
//context.Database.EnsureCreated();
MaquetteEntity entity = new MaquetteEntity
{
NomMaquette = mqt.NomMaquette,
};
context.Maquettes.Add(entity);
context.SaveChanges();
return result;
}
}
//ajt de bloc
public async Task<bool> AddBlocmaquette(MaquetteModel mqt,BlocModel blocModel)
{
bool result = false;
using (var context = new TContext())
{
MaquetteEntity data = await context.Maquettes.FindAsync(mqt.Id);
if (data != null)
{
BlocEntity entity = new BlocEntity
{
Id = blocModel.Id,
Nom = blocModel.Nom,
MaquetteEntity = new MaquetteEntity
{
Id = mqt.Id,
NomMaquette = mqt.NomMaquette
},
};
if (!data.Bloc.Contains(entity))
{
data.Bloc.Add(entity);
context.Maquettes.Update(data);
result = await context.SaveChangesAsync() > 0;
}
}
return result;
}
}
//delete maquette
public async Task<bool> Delete(MaquetteModel maquette)
{
bool result = false;
using (var context = new TContext())
{
MaquetteEntity entity = context.Maquettes.Find(maquette.Id);
context.Maquettes.Remove(entity);
result = await context.SaveChangesAsync() > 0;
}
return result;
}
//delete maquette
public async Task<bool> DeleteById(MaquetteModel maquette)
{
bool result = false;
using (var context = new TContext())
{
MaquetteEntity entity = context.Maquettes.Find(maquette.Id);
context.Maquettes.Remove(entity);
result = await context.SaveChangesAsync() > 0;
}
return result;
}
public async Task<MaquetteModel> GetDataWithName(string name)
{
using (var context = new TContext())
{
MaquetteModel _mqt = null;
var query = await context.Maquettes.FirstOrDefaultAsync(n => n.NomMaquette == name);
_mqt = new MaquetteModel(query.Id, query.NomMaquette);
return _mqt;
}
}
public async Task<bool> Update(MaquetteModel data)
{//update mqt
bool result = false;
using (var context = new TContext())
{
MaquetteEntity entity = context.Maquettes.Find(data.Id);
entity.NomMaquette = data.NomMaquette;
entity.Bloc = data.BLOCS.Select(j => new BlocEntity
{
Nom=j.Nom,
}).ToList();
result = await context.SaveChangesAsync() > 0;
}
return result;
}
//getAll mqt
public async Task<List<MaquetteModel>> GetAll()
{
using (var context = new TContext())
{
List<MaquetteModel> maquettes = new List<MaquetteModel>();
foreach (var item in context.Maquettes.Include(m => m.Bloc))
{
// Console.WriteLine(item);
maquettes.Add(new MaquetteModel(item.Id, item.NomMaquette,new List<UE>(),item.Bloc.Select(b=>new BlocModel(b.Nom)).ToList()));
}
return maquettes;
}
}
}
}