diff --git a/LawFirm/LawFirmBusinessLogic/BusinessLogics/CaseLogic.cs b/LawFirm/LawFirmBusinessLogic/BusinessLogics/CaseLogic.cs
index 8beac07..5206c6c 100644
--- a/LawFirm/LawFirmBusinessLogic/BusinessLogics/CaseLogic.cs
+++ b/LawFirm/LawFirmBusinessLogic/BusinessLogics/CaseLogic.cs
@@ -127,7 +127,10 @@ namespace LawFirmBusinessLogic.BusinessLogics
return false;
}
-
+ if(element.CaseClients.ContainsKey(client.Id))
+ {
+ return false;
+ }
element.CaseClients[client.Id] = client;
_caseStorage.Update(new()
diff --git a/LawFirm/LawFirmClientApp/Views/Home/Cases.cshtml b/LawFirm/LawFirmClientApp/Views/Home/Cases.cshtml
index 89594da..7b61ce9 100644
--- a/LawFirm/LawFirmClientApp/Views/Home/Cases.cshtml
+++ b/LawFirm/LawFirmClientApp/Views/Home/Cases.cshtml
@@ -20,10 +20,6 @@
Добавить клиентов к делам
-
-
- Добавить клиентов к делам
-
diff --git a/LawFirm/LawFirmContracts/ViewModels/ConsultationViewModel.cs b/LawFirm/LawFirmContracts/ViewModels/ConsultationViewModel.cs
index 7f3207c..fbb033d 100644
--- a/LawFirm/LawFirmContracts/ViewModels/ConsultationViewModel.cs
+++ b/LawFirm/LawFirmContracts/ViewModels/ConsultationViewModel.cs
@@ -1,4 +1,5 @@
using LawFirmDataModels.Models;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -15,5 +16,12 @@ namespace LawFirmContracts.ViewModels
public double Cost { get; set; }
public int Id { get; set; }
public int? CompanyId { get; set; }
+ public ConsultationViewModel() { }
+
+ [JsonConstructor]
+ public ConsultationViewModel(Dictionary ConsultationLawyers)
+ {
+ this.ConsultationLawyers = ConsultationLawyers.ToDictionary(x => x.Key, x => x.Value as ILawyerModel);
+ }
}
}
diff --git a/LawFirm/LawFirmDatabaseImplement/Implements/ConsultationStorage.cs b/LawFirm/LawFirmDatabaseImplement/Implements/ConsultationStorage.cs
index c3190aa..00f10b1 100644
--- a/LawFirm/LawFirmDatabaseImplement/Implements/ConsultationStorage.cs
+++ b/LawFirm/LawFirmDatabaseImplement/Implements/ConsultationStorage.cs
@@ -98,7 +98,7 @@ namespace LawFirmDatabaseImplement.Implements
}
catch
{
- transaction.Rollback();
+
throw;
}
}
diff --git a/LawFirm/LawFirmDatabaseImplement/LawFirmDatabase.cs b/LawFirm/LawFirmDatabaseImplement/LawFirmDatabase.cs
index 36d9107..57b0036 100644
--- a/LawFirm/LawFirmDatabaseImplement/LawFirmDatabase.cs
+++ b/LawFirm/LawFirmDatabaseImplement/LawFirmDatabase.cs
@@ -17,11 +17,11 @@ namespace LawFirmDatabaseImplement
if (optionsBuilder.IsConfigured == false)
{
- // optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-ON2V3BB\SQLEXPRESS;Initial Catalog=LawFirmDatabase;
- //Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
+ optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-ON2V3BB\SQLEXPRESS;Initial Catalog=LawFirmDatabase;
+ Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
- optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-7A1PHA0\SQLEXPRESS;Initial Catalog=LawFirmDatabase;
- Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
+ /* optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-7A1PHA0\SQLEXPRESS;Initial Catalog=LawFirmDatabase;
+ Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");*/
}
base.OnConfiguring(optionsBuilder);
}
diff --git a/LawFirm/LawFirmDatabaseImplement/Models/Case.cs b/LawFirm/LawFirmDatabaseImplement/Models/Case.cs
index d2c7950..eff1d1e 100644
--- a/LawFirm/LawFirmDatabaseImplement/Models/Case.cs
+++ b/LawFirm/LawFirmDatabaseImplement/Models/Case.cs
@@ -111,16 +111,18 @@ namespace LawFirmDatabaseImplement.Models
var _case = context.Cases.First(x => x.Id == Id);
foreach (var pc in model.CaseClients)
{
- context.CaseClients.Add(new CaseClient
+ if (!CaseClients.ContainsKey(pc.Key))
{
- Case = _case,
- Client = context.Clients.First(x => x.Id == pc.Key),
-
-
- });
-
- context.SaveChanges();
-
+ context.CaseClients.Add(new CaseClient
+ {
+ Case = _case,
+ Client = context.Clients.First(x => x.Id == pc.Key),
+
+
+ });
+ }
+ context.SaveChanges();
+
}
diff --git a/LawFirm/LawFirmDatabaseImplement/Models/Consultation.cs b/LawFirm/LawFirmDatabaseImplement/Models/Consultation.cs
index 9b01c9d..e6d4ecd 100644
--- a/LawFirm/LawFirmDatabaseImplement/Models/Consultation.cs
+++ b/LawFirm/LawFirmDatabaseImplement/Models/Consultation.cs
@@ -26,9 +26,11 @@ namespace LawFirmDatabaseImplement.Models
{
if (_consultationLawyers == null)
{
- _consultationLawyers = Lawyers
- .ToDictionary(recPC => recPC.LawyerId, recPC => recPC.Lawyer as ILawyerModel);
- }
+ using var context = new LawFirmDatabase();
+ _consultationLawyers = Lawyers
+ .ToDictionary(x => x.LawyerId, x => (context.Lawyers
+ .FirstOrDefault(y => y.Id == x.LawyerId) as ILawyerModel));
+ }
return _consultationLawyers;
}
}
@@ -66,7 +68,8 @@ namespace LawFirmDatabaseImplement.Models
{
Id = Id,
Cost = Cost,
- CompanyId = CompanyId
+ CompanyId = CompanyId,
+ ConsultationLawyers = ConsultationLawyers
};
public void UpdateLawyers(LawFirmDatabase context,
ConsultationBindingModel model)
@@ -82,11 +85,14 @@ namespace LawFirmDatabaseImplement.Models
var _consult = context.Consultations.First(x => x.Id == Id);
foreach (var pc in model.ConsultationLawyers)
{
- context.ConsultationLawyers.Add(new ConsultationLawyer
+ if (!ConsultationLawyers.ContainsKey(pc.Key))
{
- Consultation = _consult,
- Lawyer = context.Lawyers.First(x => x.Id == pc.Key),
- });
+ context.ConsultationLawyers.Add(new ConsultationLawyer
+ {
+ Consultation = _consult,
+ Lawyer = context.Lawyers.First(x => x.Id == pc.Key),
+ });
+ }
context.SaveChanges();
}
_consult = null;
diff --git a/LawFirm/LawFirmDatabaseImplement/Models/Hearing.cs b/LawFirm/LawFirmDatabaseImplement/Models/Hearing.cs
index 7bc9e3a..b42246e 100644
--- a/LawFirm/LawFirmDatabaseImplement/Models/Hearing.cs
+++ b/LawFirm/LawFirmDatabaseImplement/Models/Hearing.cs
@@ -81,7 +81,9 @@ namespace LawFirmDatabaseImplement.Models
HearingDate = HearingDate,
Court = Court,
Judge = Judge,
- CompanyId = CompanyId
+ CompanyId = CompanyId,
+ HearingLawyers = HearingLawyers
+
};
public void UpdateLawyers(LawFirmDatabase context,
HearingBindingModel model)
@@ -97,11 +99,14 @@ namespace LawFirmDatabaseImplement.Models
var _hear = context.Hearings.First(x => x.Id == Id);
foreach (var pc in model.HearingLawyers)
{
- context.HearingLawyers.Add(new HearingLawyer
+ if (!HearingLawyers.ContainsKey(pc.Key))
{
- Hearing = _hear,
- Lawyer = context.Lawyers.First(x => x.Id == pc.Key),
- });
+ context.HearingLawyers.Add(new HearingLawyer
+ {
+ Hearing = _hear,
+ Lawyer = context.Lawyers.First(x => x.Id == pc.Key),
+ });
+ }
context.SaveChanges();
}
_hearingLawyers = null;
diff --git a/LawFirm/LawFirmDatabaseImplement/Models/Visit.cs b/LawFirm/LawFirmDatabaseImplement/Models/Visit.cs
index af9d21d..5eeb63a 100644
--- a/LawFirm/LawFirmDatabaseImplement/Models/Visit.cs
+++ b/LawFirm/LawFirmDatabaseImplement/Models/Visit.cs
@@ -100,12 +100,14 @@ namespace LawFirmDatabaseImplement.Models
var _visit = context.Visits.First(x => x.Id == Id);
foreach (var pc in model.VisitClients)
{
- context.VisitClients.Add(new VisitClient
+ if (!VisitClients.ContainsKey(pc.Key))
{
- Visit = _visit,
- Client = context.Clients.First(x => x.Id == pc.Key),
- });
- VisitClients.Add(model.Id, context.Clients.First(x => x.Id == pc.Key));
+ context.VisitClients.Add(new VisitClient
+ {
+ Visit = _visit,
+ Client = context.Clients.First(x => x.Id == pc.Key),
+ });
+ }
context.SaveChanges();
}
_visitClients = null;
diff --git a/LawFirm/LawFirmRestApi/Program.cs b/LawFirm/LawFirmRestApi/Program.cs
index 4552a90..51e54b2 100644
--- a/LawFirm/LawFirmRestApi/Program.cs
+++ b/LawFirm/LawFirmRestApi/Program.cs
@@ -26,7 +26,7 @@ builder.Services.AddTransient();
builder.Services.AddTransient();
builder.Services.AddTransient();
-builder.Services.AddTransient();
+
builder.Services.AddTransient();
builder.Services.AddTransient();
builder.Services.AddTransient();