кошмар на улице Вязов
This commit is contained in:
parent
4f48beb8c9
commit
d27881cec2
@ -11,7 +11,13 @@ namespace BeautySalonContracts.BindingModels
|
||||
public double ProcedurePrice { get; set; }
|
||||
public double ProcedureDuration { get; set; }
|
||||
public int ClientId { get; set; }
|
||||
public List<CosmeticProcedureViewModel> ProcedureCosmetics { get; set; } = new();
|
||||
//public List<CosmeticProcedureViewModel> ProcedureCosmetics { get; set; } = new();
|
||||
|
||||
public Dictionary<int, (ICosmeticModel, int)> ProcedureCosmetics
|
||||
{
|
||||
get;
|
||||
set;
|
||||
} = new();
|
||||
public List<ServiceProcedureViewModel> ServiceProcedure { get; set; } = new();
|
||||
public List<OrderProcedureViewModel> OrderProcedure { get; set; } = new();
|
||||
}
|
||||
|
@ -27,14 +27,30 @@ namespace BeautySalonDatabaseImplement.Models
|
||||
public int LaborCostId { get; set; }
|
||||
public virtual LaborCosts LaborCost { get; set; } = new();
|
||||
|
||||
[ForeignKey("CosmeticId")]
|
||||
public virtual List<OrderCosmetic> Orders { get; set; } = new();
|
||||
//[ForeignKey("CosmeticId")]
|
||||
//public virtual List<OrderCosmetic> Orders { get; set; } = new();
|
||||
|
||||
[ForeignKey("CosmeticId")]
|
||||
public virtual List<CosmeticProcedure> Procedures { get; set; } = new();
|
||||
|
||||
[ForeignKey("CosmeticId")]
|
||||
public virtual List<ServiceCosmetic> Services { get; set; } = new();
|
||||
private Dictionary<int, string>? _procedureCosmetics = null;//Это поле для хранения словаря OrderCosmetics.
|
||||
[NotMapped]
|
||||
public Dictionary<int, string> ProcedureCosmetic//представляет список косметики, участвующей в заказе. Не присутствует в базе данных.
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_procedureCosmetics == null)
|
||||
{
|
||||
_procedureCosmetics = Procedures
|
||||
.ToDictionary(recPC => recPC.ProcedureId, recPC => recPC.Procedure.ProcedureName);
|
||||
}
|
||||
return _procedureCosmetics;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual List<CosmeticProcedure> Procedures { get; set; } = new();//представляет список косметических товаров для данного заказ
|
||||
|
||||
//[ForeignKey("CosmeticId")]
|
||||
//public virtual List<ServiceCosmetic> Services { get; set; } = new();
|
||||
|
||||
public static Cosmetic Create(CosmeticBindingModel model)
|
||||
{
|
||||
@ -73,5 +89,32 @@ namespace BeautySalonDatabaseImplement.Models
|
||||
CosmeticPrice = CosmeticPrice,
|
||||
LaborCostId = LaborCostId
|
||||
};
|
||||
|
||||
public void UpdateProcedure(BeautySalonDatabase context, CosmeticBindingModel model)
|
||||
{
|
||||
var procedureCosmetic = context.CosmeticProcedures.Where(rec => rec.CosmeticId == model.Id).ToList();
|
||||
if (CosmeticProcedures != null && cosmeticProcedures.Count > 0)
|
||||
{ // удалили те, которых нет в модели
|
||||
context.CosmeticProcedures.RemoveRange(cosmeticProcedures.Where(rec => !model.CosmeticProcedure.ContainsKey(rec.ProcedureId)));
|
||||
context.SaveChanges();
|
||||
// обновили количество у существующих записей
|
||||
foreach (var updateProcedure in procedureCosmetic)
|
||||
{
|
||||
model.CosmeticProcedures.Remove(updateProcedure.CosmeticId);
|
||||
}
|
||||
context.SaveChanges();
|
||||
}
|
||||
var cosmetic = context.Cosmetics.First(x => x.Id == Id);
|
||||
foreach (var rp in model.CosmeticProcedures)
|
||||
{
|
||||
context.CosmeticProcedures.Add(new Procedure
|
||||
{
|
||||
Cosmetic = cosmetic,
|
||||
Procedure = context.Procedures.First(x => x.Id == rp.Key),
|
||||
});
|
||||
context.SaveChanges();
|
||||
}
|
||||
_procedureCosmetics = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -27,66 +27,92 @@ namespace BeautySalonDatabaseImplement.Models
|
||||
public int ClientId { get; set; }
|
||||
public virtual Client Client { get; set; } = null!;
|
||||
|
||||
// связь процедуры и оценок один - ко - многим
|
||||
[ForeignKey("ProcedureId")]
|
||||
public virtual List<Evaluation> Evaluations { get; set; } = new();
|
||||
private List<EvaluationViewModel>? _procedureEvaluations = null;
|
||||
[NotMapped]
|
||||
public List<EvaluationViewModel> ProcedureEvaluations
|
||||
{
|
||||
get
|
||||
{
|
||||
_procedureEvaluations ??= Evaluations
|
||||
.Select(x => x.GetViewModel)
|
||||
.ToList();
|
||||
return _procedureEvaluations;
|
||||
}
|
||||
}
|
||||
//// связь процедуры и оценок один - ко - многим
|
||||
//[ForeignKey("ProcedureId")]
|
||||
//public virtual List<Evaluation> Evaluations { get; set; } = new();
|
||||
//private List<EvaluationViewModel>? _procedureEvaluations = null;
|
||||
//[NotMapped]
|
||||
//public List<EvaluationViewModel> ProcedureEvaluations
|
||||
//{
|
||||
// get
|
||||
// {
|
||||
// _procedureEvaluations ??= Evaluations
|
||||
// .Select(x => x.GetViewModel)
|
||||
// .ToList();
|
||||
// return _procedureEvaluations;
|
||||
// }
|
||||
//}
|
||||
|
||||
// связь процедур и косметки многие - ко - многим
|
||||
[ForeignKey("ProcedureId")]
|
||||
public virtual List<CosmeticProcedure> Cosmetics { get; set; } = new();
|
||||
//[ForeignKey("ProcedureId")]
|
||||
//public virtual List<CosmeticProcedure> Cosmetics { get; set; } = new();
|
||||
|
||||
private List<CosmeticProcedureViewModel>? _cosmeticProcedures = null;
|
||||
//private List<CosmeticProcedureViewModel>? _cosmeticProcedures = null;
|
||||
|
||||
//[NotMapped]
|
||||
//public List<CosmeticProcedureViewModel> CosmeticProcedures
|
||||
//{
|
||||
// get
|
||||
// {
|
||||
// _cosmeticProcedures ??= Cosmetics
|
||||
// .Select(pc => new CosmeticProcedureViewModel(pc.Cosmetic.GetViewModel, pc.Procedure.GetViewModel, pc.ProcedureCosmeticCount))
|
||||
// .ToList();
|
||||
// return _cosmeticProcedures;
|
||||
// }
|
||||
//}
|
||||
|
||||
private Dictionary<int, string>? _cosmeticProcedures = null;//Это поле для хранения словаря OrderCosmetics.
|
||||
[NotMapped]
|
||||
public List<CosmeticProcedureViewModel> CosmeticProcedures
|
||||
public Dictionary<int, string> CosmeticProcedure//представляет список косметики, участвующей в заказе. Не присутствует в базе данных.
|
||||
{
|
||||
get
|
||||
{
|
||||
_cosmeticProcedures ??= Cosmetics
|
||||
.Select(pc => new CosmeticProcedureViewModel(pc.Cosmetic.GetViewModel, pc.Procedure.GetViewModel, pc.ProcedureCosmeticCount))
|
||||
.ToList();
|
||||
if (_cosmeticProcedures == null)
|
||||
{
|
||||
_cosmeticProcedures = Cosmetics
|
||||
.ToDictionary(recPC => recPC.CosmeticId, recPC => recPC.Cosmetic.CosmeticName);
|
||||
}
|
||||
return _cosmeticProcedures;
|
||||
}
|
||||
}
|
||||
|
||||
// связь процедур и заказов многие - ко - многим
|
||||
[ForeignKey("ProcedureId")]
|
||||
public virtual List<OrderProcedure> Orders { get; set; } = new();
|
||||
public virtual List<CosmeticProcedure> Cosmetics { get; set; } = new();//представляет список косметических товаров для данного заказа.
|
||||
|
||||
// связь процедур и заказов многие - ко - многим
|
||||
[ForeignKey("ProcedureId")]
|
||||
public virtual List<ServiceProcedure> Services { get; set; } = new();
|
||||
//[ForeignKey("ProcedureId")]
|
||||
|
||||
//// связь процедур и заказов многие - ко - многим
|
||||
//[ForeignKey("ProcedureId")]
|
||||
//public virtual List<OrderProcedure> Orders { get; set; } = new();
|
||||
|
||||
//// связь процедур и заказов многие - ко - многим
|
||||
//[ForeignKey("ProcedureId")]
|
||||
//public virtual List<ServiceProcedure> Services { get; set; } = new();
|
||||
|
||||
|
||||
|
||||
|
||||
public static Procedure Create(BeautySalonDatabase context, ProcedureBindingModel model)
|
||||
{
|
||||
return new Procedure()
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
var procedure = new Procedure()
|
||||
{
|
||||
Id = model.Id,
|
||||
ProcedureName = model.ProcedureName,
|
||||
ProcedurePrice = model.ProcedurePrice,
|
||||
ProcedureDuration = model.ProcedureDuration,
|
||||
Cosmetics = model.ProcedureCosmetics.Select(x => new CosmeticProcedure()
|
||||
{
|
||||
Cosmetic = context.Cosmetics.First(y => y.Id == x.Cosmetic.Id),
|
||||
ProcedureCosmeticCount = x.Count
|
||||
}).ToList(),
|
||||
ClientId = model.ClientId,
|
||||
Cosmetics = model.ProcedureCosmetics.Select(x => new ProcedureCosmetic
|
||||
{
|
||||
Cosmetic = context.Cosmetics.First(y => y.Id == x.Key)
|
||||
}).ToList(),
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
return procedure;
|
||||
}
|
||||
public void Update(ProcedureBindingModel model)
|
||||
{
|
||||
ProcedureName = model.ProcedureName;
|
||||
@ -106,24 +132,31 @@ namespace BeautySalonDatabaseImplement.Models
|
||||
|
||||
public void UpdateCosmetics(BeautySalonDatabase context, ProcedureBindingModel model)
|
||||
{
|
||||
var procedureCosmetics = context.CosmeticProcedures
|
||||
.Where(x => x.ProcedureId == model.Id)
|
||||
.ToList();
|
||||
context.CosmeticProcedures
|
||||
.RemoveRange(procedureCosmetics);
|
||||
var procedure = context.Procedures.First(x => x.Id == Id);
|
||||
foreach (var record in model.ProcedureCosmetics)
|
||||
var procedureCosmetics = context.CosmeticProcedures.Where(rec => rec.ProcedureId == model.Id).ToList();
|
||||
if (procedureCosmetics != null && procedureCosmetics.Count > 0)
|
||||
{ // удалили те, которых нет в модели
|
||||
context.CosmeticProcedures.RemoveRange(procedureCosmetics.Where(rec => !model.CosmeticProcedure.ContainsKey(rec.CosmeticId)));
|
||||
context.SaveChanges();
|
||||
// обновили количество у существующих записей
|
||||
foreach (var updateCosmetic in procedureCosmetics)
|
||||
{
|
||||
model.ProcedureCosmetics.Remove(updateCosmetic.ProcedureId);
|
||||
}
|
||||
context.SaveChanges();
|
||||
}
|
||||
var service = context.Procedures.First(x => x.Id == Id);
|
||||
foreach (var rp in model.ProcedureCosmetics)
|
||||
{
|
||||
context.CosmeticProcedures.Add(new CosmeticProcedure
|
||||
context.CosmeticProcedures.Add(new Procedure
|
||||
{
|
||||
Procedure = procedure,
|
||||
Cosmetic = context.Cosmetics.First(x => x.Id == record.Cosmetic.Id),
|
||||
ProcedureCosmeticCount = record.Count
|
||||
Cosmetic = context.Cosmetics.First(x => x.Id == rp.Key),
|
||||
});
|
||||
context.SaveChanges();
|
||||
}
|
||||
_cosmeticProcedures = null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user