Небольшие фиксы не до конца реализованных моделей + готовая модель Build в DatabaseImplement

This commit is contained in:
Николай 2023-04-01 14:53:34 +04:00
parent a2b24139b0
commit 33562b0143
5 changed files with 71 additions and 56 deletions

View File

@ -23,6 +23,8 @@ namespace HardwareShopDatabaseImplement
public virtual DbSet<Build> Builds { set; get; } public virtual DbSet<Build> Builds { set; get; }
public virtual DbSet<BuildComponent> BuildsComponents { set; get; }
public virtual DbSet<Comment> Comments { set; get; } public virtual DbSet<Comment> Comments { set; get; }
public virtual DbSet<Component> Components { set; get; } public virtual DbSet<Component> Components { set; get; }

View File

@ -1,4 +1,6 @@
using HardwareShopDataModels.Models; using HardwareShopContracts.BindingModels;
using HardwareShopContracts.ViewModels;
using HardwareShopDataModels.Models;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
@ -18,6 +20,8 @@ namespace HardwareShopDatabaseImplement.Models
[Required] [Required]
public int UserID { get; set; } public int UserID { get; set; }
public virtual User User { get; set; }
[ForeignKey("BuildId")] [ForeignKey("BuildId")]
public virtual List<BuildComponent>? Components { get; set; } public virtual List<BuildComponent>? Components { get; set; }
@ -42,64 +46,67 @@ namespace HardwareShopDatabaseImplement.Models
} }
} }
//public static Build Create(HardwareShopDatabase context, BuildBindingModel model) public static Build Create(HardwareShopDatabase context, BuildBindingModel model)
//{ {
// return new Build() return new Build()
// { {
// Id = model.Id, Id = model.Id,
// BuildName = model.BuildName, Price = model.Price,
// Price = model.Price, BuildName = model.BuildName,
// Components = model.BuildComponents.Select(x => new BuildComponent UserID = model.UserID,
// { Components = model.BuildComponents.Select(x => new BuildComponent
// Component = context.Components.First(y => y.Id == x.Key), {
// Count = x.Value.Item2 Component = context.Components.First(y => y.Id == x.Key),
// }).ToList() Count = x.Value.Item2
// }; }).ToList()
//} };
}
//public void Update(BuildBindingModel model) public void Update(BuildBindingModel model)
//{ {
// BuildName = model.BuildName; BuildName = model.BuildName;
// Price = model.Price; Price = model.Price;
//} }
//public BuildViewModel GetViewModel => new() public BuildViewModel GetViewModel => new()
//{ {
// Id = Id, Id = Id,
// BuildName = BuildName, BuildName = BuildName,
// Price = Price, Price = Price,
// BuildComponents = BuildComponents UserEmail = User.Email,
//}; UserID = UserID,
BuildComponents = BuildComponents
};
//public void UpdateComponents(HardwareShopDatabase context, BuildBindingModel model) public void UpdateComponents(HardwareShopDatabase context, BuildBindingModel model)
//{ {
// var buildComponents = context.BuildComponents.Where(rec => rec.BuildId == model.Id).ToList(); var buildComponents = context.BuildsComponents.Where(rec => rec.BuildID == model.Id).ToList();
// if (buildComponents != null && buildComponents.Count > 0) if (buildComponents != null && buildComponents.Count > 0)
// { // удалили те в бд, которых нет в модели { // удалили те в бд, которых нет в модели
// context.BuildComponents.RemoveRange(buildComponents.Where(rec => !model.BuildComponents.ContainsKey(rec.ComponentId))); context.BuildsComponents.RemoveRange(buildComponents.Where(rec => !model.BuildComponents.ContainsKey(rec.ComponentId)));
// context.SaveChanges(); context.SaveChanges();
// // обновили количество у существующих записей // обновили количество у существующих записей
// foreach (var updateComponent in buildComponents) foreach (var updateComponent in buildComponents)
// { {
// updateComponent.Count = model.BuildComponents[updateComponent.ComponentId].Item2; updateComponent.Count = model.BuildComponents[updateComponent.ComponentId].Item2;
// model.BuildComponents.Remove(updateComponent.ComponentId); model.BuildComponents.Remove(updateComponent.ComponentId);
// } }
// context.SaveChanges(); context.SaveChanges();
// } }
// var build = context.Builds.First(x => x.Id == Id); var build = context.Builds.First(x => x.Id == Id);
// //добавляем в бд блюда которые есть в моделе, но ещё нет в бд //добавляем в бд блюда которые есть в моделе, но ещё нет в бд
// foreach (var dc in model.BuildComponents) foreach (var dc in model.BuildComponents)
// { {
// context.BuildComponents.Add(new BuildComponent context.BuildsComponents.Add(new BuildComponent
// { {
// Build = build, Build = build,
// Component = context.Components.First(x => x.Id == dc.Key), Component = context.Components.First(x => x.Id == dc.Key),
// Count = dc.Value.Item2 Count = dc.Value.Item2
// }); });
// context.SaveChanges(); context.SaveChanges();
// } }
// _buildComponents = null; _buildComponents = null;
//} }
} }
} }

View File

@ -10,5 +10,7 @@ namespace HardwareShopDatabaseImplement.Models
public class Component : IComponentModel public class Component : IComponentModel
{ {
public int Id { get; set; } public int Id { get; set; }
public virtual User User { get; set; }
} }
} }

View File

@ -11,5 +11,7 @@ namespace HardwareShopDatabaseImplement.Models
public class Good : IGoodModel public class Good : IGoodModel
{ {
public int Id { get; set; } public int Id { get; set; }
public virtual User User { get; set; }
} }
} }

View File

@ -7,5 +7,7 @@ namespace HardwareShopDatabaseImplement.Models
public class Order : IOrderModel public class Order : IOrderModel
{ {
public int Id { get; set; } public int Id { get; set; }
public virtual User User { get; set; }
} }
} }