Промежуточное сохранение. Надеюсь, что на верном пути
This commit is contained in:
parent
6cbdc42514
commit
5a3410d86c
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using MongoDB.Driver;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@ -8,5 +9,16 @@ namespace TransportCompamyMongoDBImplementer
|
|||||||
{
|
{
|
||||||
public class DBMSContext
|
public class DBMSContext
|
||||||
{
|
{
|
||||||
|
private const string ConnectionString = "mongodb://192.168.1.135:27017";
|
||||||
|
|
||||||
|
private const string DatabaseName = "transportcompany";
|
||||||
|
|
||||||
|
public IMongoCollection<T> ConnectToMongo<T>(in string collection)
|
||||||
|
{
|
||||||
|
var client = new MongoClient(ConnectionString);
|
||||||
|
var db = client.GetDatabase(DatabaseName);
|
||||||
|
|
||||||
|
return db.GetCollection<T>(collection);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
using MongoDB.Bson.Serialization.Attributes;
|
||||||
|
using MongoDB.Bson;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using TransportCompanyContracts.BindingModels;
|
||||||
|
using TransportCompanyContracts.ViewModels;
|
||||||
|
|
||||||
|
namespace TransportCompamyMongoDBImplementer.Models
|
||||||
|
{
|
||||||
|
public class Cargo
|
||||||
|
{
|
||||||
|
[BsonId]
|
||||||
|
[BsonRepresentation(BsonType.ObjectId)]
|
||||||
|
public string Id { get; set; }
|
||||||
|
|
||||||
|
public string TypeCargo { get; set; } = null!;
|
||||||
|
|
||||||
|
//public virtual ICollection<Trucking> Truckings { get; set; } = new List<Trucking>();
|
||||||
|
|
||||||
|
public static Cargo Create(CargoBindingModel model)
|
||||||
|
{
|
||||||
|
return new Cargo()
|
||||||
|
{
|
||||||
|
Id = model.MongoId,
|
||||||
|
TypeCargo = model.TypeCargo
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Update(CargoBindingModel model)
|
||||||
|
{
|
||||||
|
TypeCargo = model.TypeCargo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CargoViewModel GetViewModel => new()
|
||||||
|
{
|
||||||
|
MongoId = Id,
|
||||||
|
TypeCargo = TypeCargo
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
using MongoDB.Bson.Serialization.Attributes;
|
||||||
|
using MongoDB.Bson;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using TransportCompanyContracts.BindingModels;
|
||||||
|
using TransportCompanyContracts.ViewModels;
|
||||||
|
|
||||||
|
namespace TransportCompamyMongoDBImplementer.Models
|
||||||
|
{
|
||||||
|
public class Client
|
||||||
|
{
|
||||||
|
[BsonId]
|
||||||
|
[BsonRepresentation(BsonType.ObjectId)]
|
||||||
|
public string Id { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
|
public string Surname { get; set; } = null!;
|
||||||
|
|
||||||
|
public string Patronymic { get; set; } = null!;
|
||||||
|
|
||||||
|
public string Telephone { get; set; } = null!;
|
||||||
|
|
||||||
|
public string Email { get; set; } = null!;
|
||||||
|
|
||||||
|
//public virtual ICollection<Trucking> Truckings { get; set; } = new List<Trucking>();
|
||||||
|
|
||||||
|
public static Client Create(ClientBindingModel model)
|
||||||
|
{
|
||||||
|
return new Client()
|
||||||
|
{
|
||||||
|
Id = model.MongoId,
|
||||||
|
Name = model.Name,
|
||||||
|
Surname = model.Surname,
|
||||||
|
Patronymic = model.Patronymic,
|
||||||
|
Telephone = model.Telephone,
|
||||||
|
Email = model.Email,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Update(ClientBindingModel model)
|
||||||
|
{
|
||||||
|
Name = model.Name;
|
||||||
|
Surname = model.Surname;
|
||||||
|
Patronymic = model.Patronymic;
|
||||||
|
Telephone = model.Telephone;
|
||||||
|
Email = model.Email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ClientViewModel GetViewModel => new()
|
||||||
|
{
|
||||||
|
MongoId = Id,
|
||||||
|
Name = Name,
|
||||||
|
Surname = Surname,
|
||||||
|
Patronymic = Patronymic,
|
||||||
|
Telephone = Telephone,
|
||||||
|
Email = Email
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
using MongoDB.Bson.Serialization.Attributes;
|
||||||
|
using MongoDB.Bson;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using TransportCompanyContracts.BindingModels;
|
||||||
|
using TransportCompanyContracts.ViewModels;
|
||||||
|
|
||||||
|
namespace TransportCompamyMongoDBImplementer.Models
|
||||||
|
{
|
||||||
|
public class Transport
|
||||||
|
{
|
||||||
|
|
||||||
|
[BsonId]
|
||||||
|
[BsonRepresentation(BsonType.ObjectId)]
|
||||||
|
public string Id { get; set; }
|
||||||
|
|
||||||
|
public string TransportType { get; set; } = null!;
|
||||||
|
|
||||||
|
//public virtual ICollection<Trucking> Truckings { get; set; } = new List<Trucking>();
|
||||||
|
|
||||||
|
public static Transport Create(TransportBindingModel model)
|
||||||
|
{
|
||||||
|
return new Transport()
|
||||||
|
{
|
||||||
|
Id = model.MongoId,
|
||||||
|
TransportType = model.Tranport
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Update(TransportBindingModel model)
|
||||||
|
{
|
||||||
|
Id = model.MongoId;
|
||||||
|
TransportType = model.Tranport;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransportViewModel GetViewModel => new()
|
||||||
|
{
|
||||||
|
MongoId = Id,
|
||||||
|
Tranport = TransportType
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,76 @@
|
|||||||
|
using MongoDB.Bson.Serialization.Attributes;
|
||||||
|
using MongoDB.Bson;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using TransportCompanyContracts.BindingModels;
|
||||||
|
using TransportCompanyContracts.ViewModels;
|
||||||
|
using MongoDB.Driver;
|
||||||
|
|
||||||
|
namespace TransportCompamyMongoDBImplementer.Models
|
||||||
|
{
|
||||||
|
public class Trucking
|
||||||
|
{
|
||||||
|
[BsonId]
|
||||||
|
[BsonRepresentation(BsonType.ObjectId)]
|
||||||
|
public string Id { get; set; }
|
||||||
|
|
||||||
|
public double Price { get; set; }
|
||||||
|
|
||||||
|
public DateTime DateStart { get; set; }
|
||||||
|
|
||||||
|
public DateTime DateEnd { get; set; }
|
||||||
|
|
||||||
|
public virtual Cargo Cargo { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Client Client { get; set; } = null!;
|
||||||
|
|
||||||
|
public virtual Transport Transport { get; set; } = null!;
|
||||||
|
|
||||||
|
public static Trucking? Create( DBMSContext context, TruckingBindingModel model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Trucking()
|
||||||
|
{
|
||||||
|
Id = model.MongoId,
|
||||||
|
Price = model.Price,
|
||||||
|
DateStart = model.DateStart,
|
||||||
|
DateEnd = model.DateEnd,
|
||||||
|
Cargo = context.ConnectToMongo<Cargo>("cargo").Find(x => x.Id == model.Cargo).FirstOrDefault(),
|
||||||
|
Client = context.ConnectToMongo<Client>("client").Find(x => x.Id == model.Client).FirstOrDefault(),
|
||||||
|
Transport = context.ConnectToMongo<Transport>("transport").Find(x => x.Id == model.Transport).FirstOrDefault()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Update(TruckingBindingModel model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Price = model.Price;
|
||||||
|
DateStart = model.DateStart;
|
||||||
|
DateEnd = model.DateEnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TruckingViewModel GetViewModel => new()
|
||||||
|
{
|
||||||
|
MongoId = Id,
|
||||||
|
Price = Price,
|
||||||
|
DateStart = DateStart,
|
||||||
|
DateEnd = DateEnd,
|
||||||
|
ClientName = Client == null ? string.Empty : Client.Name,
|
||||||
|
ClientSurname = Client == null ? string.Empty : Client.Surname,
|
||||||
|
ClientPatronymic = Client == null ? string.Empty : Client.Patronymic,
|
||||||
|
TransportName = Transport == null ? string.Empty : Transport.TransportType,
|
||||||
|
Cargo = Cargo == null ? string.Empty : Cargo.TypeCargo
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
@ -14,6 +14,8 @@ namespace TransportCompany
|
|||||||
|
|
||||||
public static ServiceProvider? ServiceProvider => _serviceProvider;
|
public static ServiceProvider? ServiceProvider => _serviceProvider;
|
||||||
|
|
||||||
|
public static ServiceCollection _serviseCollection;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The main entry point for the application.
|
/// The main entry point for the application.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -23,9 +25,9 @@ namespace TransportCompany
|
|||||||
// To customize application configuration such as set high DPI settings or default font;
|
// To customize application configuration such as set high DPI settings or default font;
|
||||||
// see https://aka.ms/applicationconfiguration.
|
// see https://aka.ms/applicationconfiguration.
|
||||||
ApplicationConfiguration.Initialize();
|
ApplicationConfiguration.Initialize();
|
||||||
var services = new ServiceCollection();
|
_serviseCollection = new ServiceCollection();
|
||||||
ConfigureServices(services);
|
ConfigureServices(_serviseCollection);
|
||||||
_serviceProvider = services.BuildServiceProvider();
|
_serviceProvider = _serviseCollection.BuildServiceProvider();
|
||||||
Application.Run(_serviceProvider.GetRequiredService<FormTrucking>());
|
Application.Run(_serviceProvider.GetRequiredService<FormTrucking>());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,5 +66,39 @@ namespace TransportCompany
|
|||||||
services.AddTransient<FormTimeCheck>();
|
services.AddTransient<FormTimeCheck>();
|
||||||
services.AddTransient<FormCheckTimeJoin>();
|
services.AddTransient<FormCheckTimeJoin>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void ConnectPostgres()
|
||||||
|
{
|
||||||
|
_serviseCollection.Remove(_serviseCollection.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(ICargoStorage)));
|
||||||
|
_serviseCollection.Remove(_serviseCollection.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(IClientStorage)));
|
||||||
|
_serviseCollection.Remove(_serviseCollection.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(ITruckingStorage)));
|
||||||
|
_serviseCollection.Remove(_serviseCollection.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(ITransportStorage)));
|
||||||
|
_serviseCollection.Remove(_serviseCollection.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(ITransportationStorage)));
|
||||||
|
|
||||||
|
_serviseCollection.AddTransient<ICargoStorage, CargoStorage>();
|
||||||
|
_serviseCollection.AddTransient<IClientStorage, ClientStorage>();
|
||||||
|
_serviseCollection.AddTransient<ITruckingStorage, TruckingStorage>();
|
||||||
|
_serviseCollection.AddTransient<ITransportationStorage, TransportationStorage>();
|
||||||
|
_serviseCollection.AddTransient<ITransportStorage, TransportStorage>();
|
||||||
|
|
||||||
|
_serviceProvider = _serviseCollection.BuildServiceProvider();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*public static void ConnectMongo()
|
||||||
|
{
|
||||||
|
_serviseCollection.Remove(_serviseCollection.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(ICargoStorage)));
|
||||||
|
_serviseCollection.Remove(_serviseCollection.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(IClientStorage)));
|
||||||
|
_serviseCollection.Remove(_serviseCollection.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(ITruckingStorage)));
|
||||||
|
_serviseCollection.Remove(_serviseCollection.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(ITransportStorage)));
|
||||||
|
_serviseCollection.Remove(_serviseCollection.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(ITransportationStorage)));
|
||||||
|
|
||||||
|
_serviseCollection.AddTransient<ICargoStorage, CargoStorage>();
|
||||||
|
_serviseCollection.AddTransient<IClientStorage, ClientStorage>();
|
||||||
|
_serviseCollection.AddTransient<ITruckingStorage, TruckingStorage>();
|
||||||
|
_serviseCollection.AddTransient<ITransportationStorage, TransportationStorage>();
|
||||||
|
_serviseCollection.AddTransient<ITransportStorage, TransportStorage>();
|
||||||
|
|
||||||
|
_serviceProvider = _serviseCollection.BuildServiceProvider();
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -11,7 +11,7 @@ namespace TransportCompanyContracts.BindingModels
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string? MongoID { get; set; }
|
public string? MongoId { get; set; }
|
||||||
|
|
||||||
public string TypeCargo { get; set; } = string.Empty;
|
public string TypeCargo { get; set; } = string.Empty;
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,9 @@ namespace TransportCompanyContracts.BindingModels
|
|||||||
|
|
||||||
public string? MongoId { get; set; }
|
public string? MongoId { get; set; }
|
||||||
|
|
||||||
|
//для MongoDB
|
||||||
|
public string? TransportationType { get; set; }
|
||||||
|
|
||||||
public string Tranport { get; set; } = string.Empty;
|
public string Tranport { get; set; } = string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,5 +26,11 @@ namespace TransportCompanyContracts.BindingModels
|
|||||||
public int TransportationId { get; set; }
|
public int TransportationId { get; set; }
|
||||||
|
|
||||||
public int TransportId { get; set; }
|
public int TransportId { get; set; }
|
||||||
|
|
||||||
|
public string Client { get; set; }
|
||||||
|
|
||||||
|
public string Cargo { get; set; }
|
||||||
|
|
||||||
|
public string Transport { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user