add databese implement

This commit is contained in:
Satamael 2023-04-06 16:46:38 +04:00
parent 9b2215c7ae
commit 074b729966
33 changed files with 918 additions and 39 deletions

View File

@ -0,0 +1,33 @@
using FurnitureAssemblyStorekeeperDatabaseImplement.Models;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement
{
public class FurnitureAssemblyDatabase : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (optionsBuilder.IsConfigured == false)
{
optionsBuilder.UseNpgsql("Host=zyzf.space;Port=5434;Database=kursach;Username=postgres;Password=kursach");
}
base.OnConfiguring(optionsBuilder);
}
public virtual DbSet<Set> Sets { get; set; }
public virtual DbSet<SetFurnitureModule> SetFurnitureModules { get; set; }
public virtual DbSet<FurnitureModule> FurnitureModules { get; set; }
public virtual DbSet<FurnitureModuleFurniture> FurnitureModuleFurnitures { get; set; }
public virtual DbSet<Furniture> Furnitures { get; set; }
public virtual DbSet<FurnitureMaterial> FurnitureMaterials { get; set; }
public virtual DbSet<Material> Materials { get; set; }
public virtual DbSet<Role> Roles { get; set; }
public virtual DbSet<Scope> Scopes { get; set; }
public virtual DbSet<User> Users { get; set; }
public virtual DbSet<Order> Orders { get; set; }
}
}

View File

@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.4" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FurnitureAssembly_Storekeeper_Contracts\FurnitureAssembly_Storekeeper_Contracts.csproj" />
<ProjectReference Include="..\FurnitureAssembly_Storekeeper_Models\FurnitureAssembly_Storekeeper_DataModels.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,117 @@
using FurnitureAssembly_Storekeeper_Contracts.BindingModels;
using FurnitureAssembly_Storekeeper_Contracts.SearchModels;
using FurnitureAssembly_Storekeeper_Contracts.StoragesContracts;
using FurnitureAssembly_Storekeeper_Contracts.ViewModels;
using FurnitureAssemblyStorekeeperDatabaseImplement.Models;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Implements
{
public class FurnitureStorage : IFurnitureStorage
{
public List<FurnitureViewModel> GetFullList()
{
using var context = new FurnitureAssemblyDatabase();
return context.Furnitures
.Include(x => x.User)
.Include(x => x.Materials)
.ThenInclude(x => x.Material).ToList()
.Select(x => x.GetViewModel).ToList();
}
public List<FurnitureViewModel> GetFilteredList(FurnitureSearchModel model)
{
using var context = new FurnitureAssemblyDatabase();
if (!string.IsNullOrEmpty(model.FurnitureName))
{
return context.Furnitures
.Include(x => x.User)
.Include(x => x.Materials)
.ThenInclude(x => x.Material)
.Where(x => x.Name.Contains(model.FurnitureName)).ToList()
.Select(x => x.GetViewModel).ToList();
}
else if (model.UserId.HasValue)
{
return context.Furnitures
.Include(x => x.User)
.Include(x => x.Materials)
.ThenInclude(x => x.Material)
.Where(x => x.UserId == model.UserId)
.Select(x => x.GetViewModel).ToList();
}
else
{
return new();
}
}
public FurnitureViewModel? GetElement(FurnitureSearchModel model)
{
if (string.IsNullOrEmpty(model.FurnitureName) &&
!model.Id.HasValue)
{
return null;
}
using var context = new FurnitureAssemblyDatabase();
return context.Furnitures.Include(x => x.User)
.Include(x => x.Materials).ThenInclude(x => x.Material)
.FirstOrDefault(x => (!string.IsNullOrEmpty(model.FurnitureName) && x.Name == model.FurnitureName) || (model.Id.HasValue && x.Id == model.Id))?.GetViewModel;
}
public FurnitureViewModel? Insert(FurnitureBindingModel model)
{
using var context = new FurnitureAssemblyDatabase();
var newFurniture = Furniture.Create(context, model);
if (newFurniture == null)
{
return null;
}
context.Furnitures.Add(newFurniture);
context.SaveChanges();
return newFurniture.GetViewModel;
}
public FurnitureViewModel? Update(FurnitureBindingModel model)
{
using var context = new FurnitureAssemblyDatabase();
using var transaction = context.Database.BeginTransaction();
try
{
var furniture = context.Furnitures
.Include(x => x.User)
.FirstOrDefault(rec => rec.Id == model.Id);
if (furniture == null)
{
return null;
}
furniture.Update(model);
context.SaveChanges();
furniture.UpdateMaterials(context, model);
transaction.Commit();
return furniture.GetViewModel;
}
catch
{
transaction.Rollback();
throw;
}
}
public FurnitureViewModel? Delete(FurnitureBindingModel model)
{
using var context = new FurnitureAssemblyDatabase();
var element = context.Furnitures
.Include(x => x.User)
.Include(x => x.Materials)
.FirstOrDefault(rec => rec.Id == model.Id);
if (element != null)
{
context.Furnitures.Remove(element);
context.SaveChanges();
return element.GetViewModel;
}
return null;
}
}
}

View File

@ -0,0 +1,99 @@
using FurnitureAssembly_Storekeeper_Contracts.BindingModels;
using FurnitureAssembly_Storekeeper_Contracts.SearchModels;
using FurnitureAssembly_Storekeeper_Contracts.StoragesContracts;
using FurnitureAssembly_Storekeeper_Contracts.ViewModels;
using FurnitureAssemblyStorekeeperDatabaseImplement.Models;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Implements
{
public class MaterialStorage : IMaterialStorage
{
public List<MaterialViewModel> GetFullList()
{
using var context = new FurnitureAssemblyDatabase();
return context.Materials
.Include(x => x.User)
.Include(x => x.Scope)
.Select(x => x.GetViewModel)
.ToList();
}
public List<MaterialViewModel> GetFilteredList(MaterialSearchModel model)
{
using var context = new FurnitureAssemblyDatabase();
if (!string.IsNullOrEmpty(model.MaterialName))
{
return context.Materials
.Include(x => x.User)
.Include(x => x.Scope)
.Where(x => x.Name.Contains(model.MaterialName))
.Select(x => x.GetViewModel).ToList();
}
else
{
return new();
}
}
public MaterialViewModel? GetElement(MaterialSearchModel model)
{
if (string.IsNullOrEmpty(model.MaterialName) && !model.Id.HasValue)
{
return null;
}
using var context = new FurnitureAssemblyDatabase();
return context.Materials
.Include(x => x.User)
.Include(x => x.Scope)
.FirstOrDefault(x => (!string.IsNullOrEmpty(model.MaterialName) && x.Name == model.MaterialName) ||
(model.Id.HasValue && x.Id == model.Id))
?.GetViewModel;
}
public MaterialViewModel? Insert(MaterialBindingModel model)
{
var newMaterial = Material.Create(model);
if (newMaterial == null)
{
return null;
}
using var context = new FurnitureAssemblyDatabase();
context.Materials.Add(newMaterial);
context.SaveChanges();
return newMaterial.GetViewModel;
}
public MaterialViewModel? Update(MaterialBindingModel model)
{
using var context = new FurnitureAssemblyDatabase();
var material = context.Materials
.Include(x => x.User)
.FirstOrDefault(x => x.Id == model.Id);
if (material == null)
{
return null;
}
material.Update(model);
context.SaveChanges();
return material.GetViewModel;
}
public MaterialViewModel? Delete(MaterialBindingModel model)
{
using var context = new FurnitureAssemblyDatabase();
var element = context.Materials
.Include(x => x.User)
.FirstOrDefault(rec => rec.Id == model.Id);
if (element != null)
{
context.Materials.Remove(element);
context.SaveChanges();
return element.GetViewModel;
}
return null;
}
}
}

View File

@ -0,0 +1,99 @@
using FurnitureAssembly_Storekeeper_Contracts.BindingModels;
using FurnitureAssembly_Storekeeper_Contracts.SearchModels;
using FurnitureAssembly_Storekeeper_Contracts.StoragesContracts;
using FurnitureAssembly_Storekeeper_Contracts.ViewModels;
using FurnitureAssemblyStorekeeperDatabaseImplement.Models;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Implements
{
public class ScopeStorage : IScopeStorage
{
public List<ScopeViewModel> GetFullList()
{
using var context = new FurnitureAssemblyDatabase();
return context.Scopes
.Include(x => x.Materials)
.Select(x => x.GetViewModel)
.ToList();
}
public List<ScopeViewModel> GetFilteredList(ScopeSearchModel model)
{
if (model == null)
{
return new();
}
if (!string.IsNullOrEmpty(model.ScopeName))
{
using var context = new FurnitureAssemblyDatabase();
return context.Scopes
.Include(x => x.Materials)
.Where(x => x.Name.Contains(model.ScopeName))
.Select(x => x.GetViewModel)
.ToList();
}
return new();
}
public ScopeViewModel? GetElement(ScopeSearchModel model)
{
using var context = new FurnitureAssemblyDatabase();
if (model.Id.HasValue)
{
return context.Scopes
.FirstOrDefault(x => (x.Id == model.Id))
?.GetViewModel;
}
else if (!string.IsNullOrEmpty(model.ScopeName))
{
return context.Scopes
.FirstOrDefault(x => (x.Name == model.ScopeName))
?.GetViewModel;
}
return new();
}
public ScopeViewModel? Insert(ScopeBindingModel model)
{
var newScope = Scope.Create(model);
if (newScope == null)
{
return null;
}
using var context = new FurnitureAssemblyDatabase();
context.Scopes.Add(newScope);
context.SaveChanges();
return newScope.GetViewModel;
}
public ScopeViewModel? Update(ScopeBindingModel model)
{
using var context = new FurnitureAssemblyDatabase();
var scope = context.Scopes
.FirstOrDefault(x => x.Id == model.Id);
if (scope == null)
{
return null;
}
scope.Update(model);
context.SaveChanges();
return scope.GetViewModel;
}
public ScopeViewModel? Delete(ScopeBindingModel model)
{
using var context = new FurnitureAssemblyDatabase();
var element = context.Scopes
.Include(x => x.Materials)
.FirstOrDefault(rec => rec.Id == model.Id);
if (element != null)
{
context.Scopes.Remove(element);
context.SaveChanges();
return element.GetViewModel;
}
return null;
}
}
}

View File

@ -0,0 +1,123 @@
using FurnitureAssembly_Storekeeper_Contracts.BindingModels;
using FurnitureAssembly_Storekeeper_Contracts.SearchModels;
using FurnitureAssembly_Storekeeper_Contracts.StoragesContracts;
using FurnitureAssembly_Storekeeper_Contracts.ViewModels;
using FurnitureAssemblyStorekeeperDatabaseImplement.Models;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Implements
{
public class UserStorage : IUserStorage
{
public UserViewModel? Delete(UserBindingModel model)
{
using var context = new FurnitureAssemblyDatabase();
var element = context
.Users.FirstOrDefault(rec => rec.Id == model.Id);
if (element != null)
{
var deletedElement = context.Users
.Include(x => x.Orders)
.Include(x => x.Furnitures)
.Include(x => x.Materials)
.FirstOrDefault(x => x.Id == model.Id)
?.GetViewModel;
context.Users.Remove(element);
context.SaveChanges();
return deletedElement;
}
return null;
}
public UserViewModel? GetElement(UserSearchModel model)
{
if (!model.Id.HasValue)
{
return null;
}
using var context = new FurnitureAssemblyDatabase();
return context.Users
.Include(x => x.Orders)
.Include(x => x.Furnitures)
.Include(x => x.Materials)
.FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id)
?.GetViewModel;
}
public List<UserViewModel> GetFilteredList(UserSearchModel model)
{
using var context = new FurnitureAssemblyDatabase();
if (model.Id.HasValue)
{
return context.Users
.Include(x => x.Orders)
.Include(x => x.Furnitures)
.Include(x => x.Materials)
.Where(x => x.Id == model.Id)
.Select(x => x.GetViewModel)
.ToList();
}
else if (model.RoleId.HasValue)
{
return context.Users
.Include(x => x.Orders)
.Include(x => x.Furnitures)
.Include(x => x.Materials)
.Where(x => x.RoleId == model.RoleId)
.Select(x => x.GetViewModel)
.ToList();
}
else
{
return new();
}
}
public List<UserViewModel> GetFullList()
{
using var context = new FurnitureAssemblyDatabase();
return context.Users
.Include(x => x.Orders)
.Include(x => x.Furnitures)
.Include(x => x.Materials)
.Select(x => x.GetViewModel)
.ToList();
}
public UserViewModel? Insert(UserBindingModel model)
{
var newUser = User.Create(model);
if (newUser == null)
{
return null;
}
using var context = new FurnitureAssemblyDatabase();
context.Users.Add(newUser);
context.SaveChanges();
return context.Users
.Include(x => x.Orders)
.Include(x => x.Furnitures)
.Include(x => x.Materials)
.FirstOrDefault(x => x.Id == newUser.Id)
?.GetViewModel;
}
public UserViewModel? Update(UserBindingModel model)
{
using var context = new FurnitureAssemblyDatabase();
var user = context.Users.FirstOrDefault(x => x.Id == model.Id);
if (user == null)
{
return null;
}
user.Update(model);
context.SaveChanges();
return context.Users
.Include(x => x.Orders)
.Include(x => x.Furnitures)
.Include(x => x.Materials)
.FirstOrDefault(x => x.Id == model.Id)
?.GetViewModel;
}
}
}

View File

@ -0,0 +1,115 @@
using FurnitureAssembly_Storekeeper_Contracts.BindingModels;
using FurnitureAssembly_Storekeeper_Contracts.ViewModels;
using FurnitureAssembly_Storekeeper_DataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Models
{
public class Furniture : IFurniture
{
public int Id { get; set; }
[Required]
public string Name { get; set; } = string.Empty;
[Required]
public double Cost { get; set; }
[Required]
public DateTime DateCreate { get; set; } = DateTime.Now;
[Required]
public int UserId { get; set; }
public virtual IUser User{ get; set; }
public Dictionary<int, (IMaterial, int)>? _furnitureMaterials = null;
[NotMapped]
public Dictionary<int, (IMaterial, int)> FurnitureMaterials
{
get
{
if (_furnitureMaterials == null)
{
_furnitureMaterials = Materials
.ToDictionary(recPC => recPC.MaterialId, recPC =>
(recPC.Material as IMaterial, recPC.Count));
}
return _furnitureMaterials;
}
}
[ForeignKey("FurnitureId")]
public virtual List<FurnitureMaterial> Materials { get; set; } = new();
public static Furniture Create(FurnitureAssemblyDatabase context, FurnitureBindingModel model)
{
return new Furniture()
{
Id = model.Id,
Name = model.Name,
Cost = model.Cost,
UserId = model.User.Id,
DateCreate = model.DateCreate,
Materials = model.FurnitureMaterials.Select(x => new FurnitureMaterial
{
Material = context.Materials.First(y => y.Id == x.Key),
Count = x.Value.Item2
}).ToList()
};
}
public void Update(FurnitureBindingModel model)
{
if (model == null)
{
return;
}
Name = model.Name;
Cost = model.Cost;
}
public FurnitureViewModel GetViewModel => new()
{
Id = Id,
Name = Name,
Cost = Cost,
User = User,
DateCreate = DateCreate,
FurnitureMaterials = FurnitureMaterials
};
Dictionary<int, (IMaterial, int)> IFurniture.FurnitureMaterials => throw new NotImplementedException();
IUser IFurniture.User => throw new NotImplementedException();
public void UpdateMaterials(FurnitureAssemblyDatabase context, FurnitureBindingModel model)
{
var furnitureMaterials = context.FurnitureMaterials.Where(rec =>
rec.FurnitureId == model.Id).ToList();
if (furnitureMaterials != null && furnitureMaterials.Count > 0)
{ // удалили те, которых нет в модели
context.FurnitureMaterials.RemoveRange(furnitureMaterials.Where(rec
=> !model.FurnitureMaterials.ContainsKey(rec.MaterialId)));
context.SaveChanges();
// обновили количество у существующих записей
foreach (var updateMaterial in furnitureMaterials)
{
updateMaterial.Count = model.FurnitureMaterials[updateMaterial.MaterialId].Item2;
model.FurnitureMaterials.Remove(updateMaterial.MaterialId);
}
context.SaveChanges();
}
var furniture = context.Furnitures.First(x => x.Id == Id);
foreach (var pc in model.FurnitureMaterials)
{
context.FurnitureMaterials.Add(new FurnitureMaterial
{
Furniture = furniture,
Material = context.Materials.First(x => x.Id == pc.Key),
Count = pc.Value.Item2
});
context.SaveChanges();
}
_furnitureMaterials = null;
}
}
}

View File

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Models
{
public class FurnitureMaterial
{
public int Id { get; set; }
[Required]
public int FurnitureId { get; set; }
[Required]
public int MaterialId { get; set; }
[Required]
public int Count { get; set; }
public virtual Furniture Furniture { get; set; } = new();
public virtual Material Material { get; set; } = new();
}
}

View File

@ -0,0 +1,64 @@
using FurnitureAssembly_Storekeeper_Contracts.BindingModels;
using FurnitureAssembly_Storekeeper_Contracts.ViewModels;
using FurnitureAssembly_Storekeeper_DataModels.Models;
using FurnitureAssemblyStorekeeperDatabaseImplement.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Models
{
public class Material : IMaterial
{
public int Id { get; set; }
[Required]
public string Name { get; set; } = string.Empty;
[Required]
public double Cost { get; set; }
[Required]
public int ScopeId { get; set; }
public virtual IScope Scope { get; set; }
[Required]
public int UserId { get; set; }
public virtual User User { get; set; }
[ForeignKey("MaterialId")]
public virtual List<FurnitureMaterial> FurnitureMaterials { get; set; } = new();
public static Material? Create(MaterialBindingModel model)
{
if (model == null)
{
return null;
}
return new Material()
{
Id = model.Id,
Name = model.Name,
Cost = model.Cost,
ScopeId = model.Scope.Id
};
}
public void Update(MaterialBindingModel model)
{
if (model == null)
{
return;
}
Name = model.Name;
Cost = model.Cost;
ScopeId = model.Scope.Id;
}
public MaterialViewModel GetViewModel => new()
{
Id = Id,
Name = Name,
Cost = Cost,
Scope = Scope
};
}
}

View File

@ -0,0 +1,48 @@
using FurnitureAssembly_Storekeeper_Contracts.BindingModels;
using FurnitureAssembly_Storekeeper_Contracts.ViewModels;
using FurnitureAssembly_Storekeeper_DataModels.Models;
using FurnitureAssembly_WorkerDatabaseImplement.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Models
{
public class Role : IRole
{
public int Id { get; set; }
[Required]
public string Name { get; set; } = string.Empty;
[ForeignKey("RoleId")]
public virtual List<User> Users { get; set; } = new();
public static Role? Create(RoleBindingModel? model)
{
if (model == null)
{
return null;
}
return new Role()
{
Id = model.Id,
Name = model.Name
};
}
public void Update(RoleBindingModel? model)
{
if (model == null)
{
return;
}
Name = model.Name;
}
public RoleViewModel GetViewModel => new()
{
Id = Id,
Name = Name
};
}
}

View File

@ -0,0 +1,47 @@
using FurnitureAssembly_Storekeeper_Contracts.BindingModels;
using FurnitureAssembly_Storekeeper_Contracts.ViewModels;
using FurnitureAssembly_Storekeeper_DataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Models
{
public class Scope : IScope
{
public int Id { get; set; }
[Required]
public string Name { get; set; } = string.Empty;
[ForeignKey("ScopeId")]
public virtual List<Material> Materials { get; set; } = new();
public static Scope? Create(ScopeBindingModel? model)
{
if (model == null)
{
return null;
}
return new Scope()
{
Id = model.Id,
Name = model.Name
};
}
public void Update(ScopeBindingModel? model)
{
if (model == null)
{
return;
}
Name = model.Name;
}
public ScopeViewModel GetViewModel => new()
{
Id = Id,
Name = Name
};
}
}

View File

@ -0,0 +1,67 @@
using FurnitureAssembly_Storekeeper_Contracts.BindingModels;
using FurnitureAssembly_Storekeeper_Contracts.ViewModels;
using FurnitureAssembly_Storekeeper_DataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Models
{
public class User : IUser
{
public int Id { get; set; }
[Required]
public string Login { get; set; } = string.Empty;
[Required]
public string Password { get; set; } = string.Empty;
[Required]
public string UserName { get; set; } = string.Empty;
[Required]
public int RoleId { get; set; }
public virtual IRole Role { get; set; }
[ForeignKey("UserId")]
public virtual List<Order> Orders { get; set; } = new();
[ForeignKey("FurnitureId")]
public virtual List<Furniture> Furnitures { get; set; } = new();
[ForeignKey("MaterialId")]
public virtual List<Material> Materials { get; set; } = new();
public static User? Create(UserBindingModel? model)
{
if (model == null)
{
return null;
}
return new User()
{
Id = model.Id,
Login = model.Login,
Password = model.Password,
UserName = model.UserName,
RoleId = model.Role.Id
};
}
public void Update(UserBindingModel? model)
{
if (model == null)
{
return;
}
Login = model.Login;
Password = model.Password;
UserName = model.UserName;
RoleId = model.Role.Id;
}
public UserViewModel GetViewModel => new()
{
Id = Id,
Password = Password,
Login = Login,
UserName = UserName,
Role = Role
};
}
}

View File

@ -7,9 +7,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FurnitureAssembly_Storekeep
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FurnitureAssembly_Storekeeper_DataModels", "FurnitureAssembly_Storekeeper_Models\FurnitureAssembly_Storekeeper_DataModels.csproj", "{30209964-F5C9-441D-A83D-7462ECE07B06}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FurnitureAssembly_Storekeeper_Contracts", "FurnitureAssembly_Storekeeper_Contracts\FurnitureAssembly_Storekeeper_Contracts.csproj", "{487F90DA-C4AC-4407-A382-953DA3689C2A}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FurnitureAssembly_Storekeeper_Contracts", "FurnitureAssembly_Storekeeper_Contracts\FurnitureAssembly_Storekeeper_Contracts.csproj", "{487F90DA-C4AC-4407-A382-953DA3689C2A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FurnitureAssembly_Storekeeper_BusinessLogic", "FurnitureAssembly_Storekeeper_BusinessLogic\FurnitureAssembly_Storekeeper_BusinessLogic.csproj", "{EC0BAC5C-D13B-4BB1-9E88-68FC69995BC6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FurnitureAssembly_Storekeeper_BusinessLogic", "FurnitureAssembly_Storekeeper_BusinessLogic\FurnitureAssembly_Storekeeper_BusinessLogic.csproj", "{EC0BAC5C-D13B-4BB1-9E88-68FC69995BC6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FurnitureAssemblyStorekeeperDatabaseImplement", "FurnitureAssemblyStorekeeperDatabaseImplement\FurnitureAssemblyStorekeeperDatabaseImplement.csproj", "{3FE1A0A6-FA67-4F4C-9167-97164498D927}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -33,6 +35,10 @@ Global
{EC0BAC5C-D13B-4BB1-9E88-68FC69995BC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EC0BAC5C-D13B-4BB1-9E88-68FC69995BC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EC0BAC5C-D13B-4BB1-9E88-68FC69995BC6}.Release|Any CPU.Build.0 = Release|Any CPU
{3FE1A0A6-FA67-4F4C-9167-97164498D927}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3FE1A0A6-FA67-4F4C-9167-97164498D927}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3FE1A0A6-FA67-4F4C-9167-97164498D927}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3FE1A0A6-FA67-4F4C-9167-97164498D927}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -92,18 +92,18 @@ namespace FurnitureAssembly_Storekeeper_BusinessLogic.BusinessLogics
{
return;
}
if (string.IsNullOrEmpty(model.FurnitureName))
if (string.IsNullOrEmpty(model.Name))
{
throw new ArgumentNullException("Нет названия продукта",nameof(model.FurnitureName));
throw new ArgumentNullException("Нет названия продукта",nameof(model.Name));
}
if (model.FurnitureCost <= 0)
if (model.Cost <= 0)
{
throw new ArgumentNullException("Цена компонента должна быть больше 0", nameof(model.FurnitureCost));
throw new ArgumentNullException("Цена компонента должна быть больше 0", nameof(model.Cost));
}
_logger.LogInformation("Furniture. FurnitureName:{FurnitureName}. Cost:{Cost}. Id: {Id}", model.FurnitureName, model.FurnitureCost, model.Id);
_logger.LogInformation("Furniture. FurnitureName:{FurnitureName}. Cost:{Cost}. Id: {Id}", model.Name, model.Cost, model.Id);
var element = _FurnitureStorage.GetElement(new FurnitureSearchModel
{
FurnitureName = model.FurnitureName
FurnitureName = model.Name
});
if (element != null && element.Id != model.Id)
{

View File

@ -90,19 +90,19 @@ namespace FurnitureAssembly_Storekeeper_BusinessLogic.BusinessLogics
{
return;
}
if (string.IsNullOrEmpty(model.MaterialName))
if (string.IsNullOrEmpty(model.Name))
{
throw new ArgumentNullException("Нет названия компонента",
nameof(model.MaterialName));
nameof(model.Name));
}
if (model.Cost <= 0)
{
throw new ArgumentNullException("Цена компонента должна быть больше 0", nameof(model.Cost));
}
_logger.LogInformation("Material. MaterialName:{MaterialName}. Cost:{ Cost}. Id: {Id}", model.MaterialName, model.Cost, model.Id);
_logger.LogInformation("Material. MaterialName:{MaterialName}. Cost:{ Cost}. Id: {Id}", model.Name, model.Cost, model.Id);
var element = _MaterialStorage.GetElement(new MaterialSearchModel
{
MaterialName = model.MaterialName
MaterialName = model.Name
});
if (element != null && element.Id != model.Id)
{

View File

@ -90,16 +90,16 @@ namespace FurnitureAssembly_Storekeeper_BusinessLogic.BusinessLogics
{
return;
}
if (string.IsNullOrEmpty(model.RoleName))
if (string.IsNullOrEmpty(model.Name))
{
throw new ArgumentNullException("Нет названия роли",
nameof(model.RoleName));
nameof(model.Name));
}
_logger.LogInformation("Role. RoleName:{RoleName}. Id: {Id}", model.RoleName, model.Id);
_logger.LogInformation("Role. RoleName:{RoleName}. Id: {Id}", model.Name, model.Id);
var element = _RoleStorage.GetElement(new RoleSearchModel
{
RoleName = model.RoleName
RoleName = model.Name
});
if (element != null && element.Id != model.Id)
{

View File

@ -90,15 +90,15 @@ namespace FurnitureAssembly_Storekeeper_BusinessLogic.BusinessLogics
{
return;
}
if (string.IsNullOrEmpty(model.ScopeName))
if (string.IsNullOrEmpty(model.Name))
{
throw new ArgumentNullException("Нет названия области использования",
nameof(model.ScopeName));
nameof(model.Name));
}
_logger.LogInformation("Scope. ScopeName:{ScopeName}. Id: {Id}", model.ScopeName,model.Id);
_logger.LogInformation("Scope. ScopeName:{ScopeName}. Id: {Id}", model.Name,model.Id);
var element = _ScopeStorage.GetElement(new ScopeSearchModel
{
ScopeName = model.ScopeName
ScopeName = model.Name
});
if (element != null && element.Id != model.Id)
{

View File

@ -9,9 +9,9 @@ namespace FurnitureAssembly_Storekeeper_Contracts.BindingModels
{
public class FurnitureBindingModel : IFurniture
{
public string FurnitureName { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public double FurnitureCost {get; set; }
public double Cost {get; set; }
public DateTime DateCreate { get; set; } = DateTime.Now;

View File

@ -9,11 +9,11 @@ namespace FurnitureAssembly_Storekeeper_Contracts.BindingModels
{
public class MaterialBindingModel : IMaterial
{
public string MaterialName { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public double Cost { get; set; }
public IScope scope { get; set; } = new ScopeBindingModel();
public IScope Scope { get; set; } = new ScopeBindingModel();
public int Id { get; set; }
}

View File

@ -9,7 +9,7 @@ namespace FurnitureAssembly_Storekeeper_Contracts.BindingModels
{
public class RoleBindingModel : IRole
{
public string RoleName { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public int Id {get; set;}
}

View File

@ -9,7 +9,7 @@ namespace FurnitureAssembly_Storekeeper_Contracts.BindingModels
{
public class ScopeBindingModel : IScope
{
public string ScopeName { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public int Id { get; set; }
}

View File

@ -10,5 +10,6 @@ namespace FurnitureAssembly_Storekeeper_Contracts.SearchModels
{
public int? Id { get; set; }
public string? FurnitureName { get; set; }
public int? UserId { get; set; }
}
}

View File

@ -12,5 +12,6 @@ namespace FurnitureAssembly_Storekeeper_Contracts.SearchModels
public string? Login { get; set; }
public string? Password { get; set; }
public int? RoleId { get; set; }
}
}

View File

@ -11,9 +11,9 @@ namespace FurnitureAssembly_Storekeeper_Contracts.ViewModels
public class FurnitureViewModel : IFurniture
{
[DisplayName("Название изделия")]
public string FurnitureName { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
[DisplayName("Цена изделия")]
public double FurnitureCost { get; set; }
public double Cost { get; set; }
[DisplayName("Дата создания")]
public DateTime DateCreate { get; set; }

View File

@ -9,11 +9,11 @@ namespace FurnitureAssembly_Storekeeper_Contracts.ViewModels
{
public class MaterialViewModel : IMaterial
{
public string MaterialName { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public double Cost { get; set; }
public IScope scope { get; set; } = new ScopeViewModel();
public IScope Scope { get; set; } = new ScopeViewModel();
public int Id { get; set; }
}

View File

@ -9,7 +9,7 @@ namespace FurnitureAssembly_Storekeeper_Contracts.ViewModels
{
public class RoleViewModel : IRole
{
public string RoleName { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public int Id { get; set; }
}

View File

@ -9,7 +9,7 @@ namespace FurnitureAssembly_Storekeeper_Contracts.ViewModels
{
public class ScopeViewModel : IScope
{
public string ScopeName { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public int Id { get; set; }
}

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnitureAssemblyStorekeeperDatabaseImplement.Enums
{
public enum PaymentType
{
Неизвестен = -1,
Наличными = 0,
Картой = 1,
Смешанный = 2
}
}

View File

@ -8,8 +8,8 @@ namespace FurnitureAssembly_Storekeeper_DataModels.Models
{
public interface IFurniture : IId
{
string FurnitureName { get; }
double FurnitureCost { get; }
string Name { get; }
double Cost { get; }
DateTime DateCreate { get; }
Dictionary<int, (IMaterial, int)> FurnitureMaterials { get; }
IUser User { get; }

View File

@ -8,8 +8,8 @@ namespace FurnitureAssembly_Storekeeper_DataModels.Models
{
public interface IMaterial : IId
{
string MaterialName { get; }
string Name { get; }
double Cost { get; }
IScope scope { get; }
IScope Scope { get; }
}
}

View File

@ -8,6 +8,6 @@ namespace FurnitureAssembly_Storekeeper_DataModels.Models
{
public interface IRole : IId
{
string RoleName { get; }
string Name { get; }
}
}

View File

@ -8,6 +8,6 @@ namespace FurnitureAssembly_Storekeeper_DataModels.Models
{
public interface IScope : IId
{
string ScopeName { get; }
string Name { get; }
}
}

View File

@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace FurnitureAssembly_Storekeeper_DataModels.Models
{
public interface IUser
public interface IUser : IId
{
string Login { get;}
string Password { get;}