Add logic
This commit is contained in:
parent
983edf0994
commit
767ea158e8
@ -0,0 +1,78 @@
|
|||||||
|
using HotelContracts.BindingModels;
|
||||||
|
using HotelContracts.BusinessLogicsContracts;
|
||||||
|
using HotelContracts.SearchModels;
|
||||||
|
using HotelContracts.StoragesContracts;
|
||||||
|
using HotelContracts.ViewModels;
|
||||||
|
using HotelDataModels.Models;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace HotelBusinessLogic.BusinessLogics;
|
||||||
|
|
||||||
|
public class CleaningInstrumentsLogic : ICleaningInstrumentsLogic
|
||||||
|
{
|
||||||
|
private readonly ICleaningInstrumentsStorage _cleaningInstruments;
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
|
||||||
|
public CleaningInstrumentsLogic(ICleaningInstrumentsStorage cleaningInstruments, ILogger logger)
|
||||||
|
{
|
||||||
|
_cleaningInstruments = cleaningInstruments;
|
||||||
|
_logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<CleaningInstrumentsViewModel>? ReadList(CleaningInstrumentsSearchModel? model)
|
||||||
|
{
|
||||||
|
var list = model == null ? _cleaningInstruments.GetFullList() : _cleaningInstruments.GetFilteredList(model);
|
||||||
|
_logger.LogInformation("ReadList .Count:{Count}", list.Count);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CleaningInstrumentsViewModel? ReadElement(CleaningInstrumentsSearchModel model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
_logger.LogInformation("ReadElement .Id:{Id}", model.Id);
|
||||||
|
var element = _cleaningInstruments.GetElement(model);
|
||||||
|
if (element == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("ReadElement element not found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("ReadElement find .Id:{Id}", element.Id);
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Create(CleaningInstrumentsBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_cleaningInstruments.Insert(model) != null) return true;
|
||||||
|
_logger.LogWarning("Insert operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Update(CleaningInstrumentsBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_cleaningInstruments.Update(model) != null) return true;
|
||||||
|
_logger.LogWarning("Update operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Delete(CleaningInstrumentsBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model, false);
|
||||||
|
_logger.LogInformation("Delete .Id:{Id}", model.Id);
|
||||||
|
if (_cleaningInstruments.Delete(model) != null) return true;
|
||||||
|
_logger.LogWarning("Delete operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckModel(CleaningInstrumentsBindingModel? model, bool withParams = true)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
if (!withParams)
|
||||||
|
return;
|
||||||
|
if (string.IsNullOrEmpty(model.Type))
|
||||||
|
throw new ArgumentException("Type must be not null");
|
||||||
|
}
|
||||||
|
}
|
77
Hotel/HotelBusinessLogic/BusinessLogics/CleaningLogic.cs
Normal file
77
Hotel/HotelBusinessLogic/BusinessLogics/CleaningLogic.cs
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
using HotelContracts.BindingModels;
|
||||||
|
using HotelContracts.BusinessLogicsContracts;
|
||||||
|
using HotelContracts.SearchModels;
|
||||||
|
using HotelContracts.StoragesContracts;
|
||||||
|
using HotelContracts.ViewModels;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace HotelBusinessLogic.BusinessLogics;
|
||||||
|
|
||||||
|
public class CleaningLogic : ICleaningLogic
|
||||||
|
{
|
||||||
|
private readonly ICleaningStorage _cleaningStorage;
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
|
||||||
|
public CleaningLogic(ICleaningStorage cleaningStorage, ILogger<MaitreLogic> logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_cleaningStorage = cleaningStorage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<CleaningViewModel>? ReadList(CleaningSearchModel? model)
|
||||||
|
{
|
||||||
|
var list = model == null ? _cleaningStorage.GetFullList() : _cleaningStorage.GetFilteredList(model);
|
||||||
|
_logger.LogInformation("ReadList .Count:{Count}", list.Count);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CleaningViewModel? ReadElement(CleaningSearchModel model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
_logger.LogInformation("ReadElement .Id:{Id}", model.Id);
|
||||||
|
var element = _cleaningStorage.GetElement(model);
|
||||||
|
if (element == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("ReadElement element not found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("ReadElement find .Id:{Id}", element.Id);
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Create(CleaningBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_cleaningStorage.Insert(model) != null) return true;
|
||||||
|
_logger.LogWarning("Insert operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Update(CleaningBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_cleaningStorage.Update(model) != null) return true;
|
||||||
|
_logger.LogWarning("Update operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Delete(CleaningBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model, false);
|
||||||
|
_logger.LogInformation("Delete .Id:{Id}", model.Id);
|
||||||
|
if (_cleaningStorage.Delete(model) != null) return true;
|
||||||
|
_logger.LogWarning("Delete operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckModel(CleaningBindingModel? model, bool withParams = true)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
if (!withParams)
|
||||||
|
return;
|
||||||
|
if (model.RoomId < 0)
|
||||||
|
throw new ArgumentException("RoomId must be more then 0");
|
||||||
|
}
|
||||||
|
}
|
81
Hotel/HotelBusinessLogic/BusinessLogics/GuestLogic.cs
Normal file
81
Hotel/HotelBusinessLogic/BusinessLogics/GuestLogic.cs
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
using HotelContracts.BindingModels;
|
||||||
|
using HotelContracts.BusinessLogicsContracts;
|
||||||
|
using HotelContracts.SearchModels;
|
||||||
|
using HotelContracts.StoragesContracts;
|
||||||
|
using HotelContracts.ViewModels;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace HotelBusinessLogic.BusinessLogics;
|
||||||
|
|
||||||
|
public class GuestLogic : IGuestLogic
|
||||||
|
{
|
||||||
|
private readonly IGuestStorage _guestStorage;
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
|
||||||
|
public GuestLogic(IGuestStorage guestStorage, ILogger<GuestLogic> logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_guestStorage = guestStorage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GuestViewModel>? ReadList(GuestSearchModel? model)
|
||||||
|
{
|
||||||
|
var list = model == null ? _guestStorage.GetFullList() : _guestStorage.GetFilteredList(model);
|
||||||
|
_logger.LogInformation("ReadList .Count:{Count}", list.Count);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GuestViewModel? ReadElement(GuestSearchModel model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
_logger.LogInformation("ReadElement .Id:{Id}", model.Id);
|
||||||
|
var element = _guestStorage.GetElement(model);
|
||||||
|
if (element == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("ReadElement element not found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("ReadElement find .Id:{Id}", element.Id);
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Create(GuestBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_guestStorage.Insert(model) != null) return true;
|
||||||
|
_logger.LogWarning("Insert operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Update(GuestBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_guestStorage.Update(model) != null) return true;
|
||||||
|
_logger.LogWarning("Update operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Delete(GuestBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model, false);
|
||||||
|
_logger.LogInformation("Delete .Id:{Id}", model.Id);
|
||||||
|
if (_guestStorage.Delete(model) != null) return true;
|
||||||
|
_logger.LogWarning("Delete operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckModel(GuestBindingModel? model, bool withParams = true)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
if (!withParams)
|
||||||
|
return;
|
||||||
|
if (string.IsNullOrEmpty(model.Name))
|
||||||
|
throw new ArgumentException("Name must be not null");
|
||||||
|
if (string.IsNullOrEmpty(model.SecondName))
|
||||||
|
throw new ArgumentException("Second name must be not null");
|
||||||
|
if (string.IsNullOrEmpty(model.LastName))
|
||||||
|
throw new ArgumentException("Last name must be not null");
|
||||||
|
}
|
||||||
|
}
|
88
Hotel/HotelBusinessLogic/BusinessLogics/MaitreLogic.cs
Normal file
88
Hotel/HotelBusinessLogic/BusinessLogics/MaitreLogic.cs
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
using HotelContracts.BindingModels;
|
||||||
|
using HotelContracts.BusinessLogicsContracts;
|
||||||
|
using HotelContracts.SearchModels;
|
||||||
|
using HotelContracts.StoragesContracts;
|
||||||
|
using HotelContracts.ViewModels;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace HotelBusinessLogic.BusinessLogics;
|
||||||
|
|
||||||
|
public class MaitreLogic : IMaitreLogic
|
||||||
|
{
|
||||||
|
private readonly IMaitreStorage _maitreStorage;
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
|
||||||
|
public MaitreLogic(IMaitreStorage maitreLogic, ILogger<MaitreLogic> logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_maitreStorage = maitreLogic;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MaitreViewModel>? ReadList(MaitreSearchModel? model)
|
||||||
|
{
|
||||||
|
var list = model == null ? _maitreStorage.GetFullList() : _maitreStorage.GetFilteredList(model);
|
||||||
|
_logger.LogInformation("ReadList .Count:{Count}", list.Count);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MaitreViewModel? ReadElement(MaitreSearchModel model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
_logger.LogInformation("ReadElement .Id:{Id}", model.Id);
|
||||||
|
var element = _maitreStorage.GetElement(model);
|
||||||
|
if (element == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("ReadElement element not found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("ReadElement find .Id:{Id}", element.Id);
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Create(MaitreBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_maitreStorage.Insert(model) != null) return true;
|
||||||
|
_logger.LogWarning("Insert operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Update(MaitreBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_maitreStorage.Update(model) != null) return true;
|
||||||
|
_logger.LogWarning("Update operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Delete(MaitreBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model, false);
|
||||||
|
_logger.LogInformation("Delete .Id:{Id}", model.Id);
|
||||||
|
if (_maitreStorage.Delete(model) != null) return true;
|
||||||
|
_logger.LogWarning("Delete operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckModel(MaitreBindingModel? model, bool withParams = true)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
if (!withParams)
|
||||||
|
return;
|
||||||
|
if (string.IsNullOrEmpty(model.Name))
|
||||||
|
throw new ArgumentException("Name must be not null");
|
||||||
|
if (string.IsNullOrEmpty(model.SecondName))
|
||||||
|
throw new ArgumentException("Second name must be not null");
|
||||||
|
if (string.IsNullOrEmpty(model.LastName))
|
||||||
|
throw new ArgumentException("Last name must be not null");
|
||||||
|
var Maitre = _maitreStorage.GetElement(new MaitreSearchModel {
|
||||||
|
Login = model.Login
|
||||||
|
});
|
||||||
|
if (Maitre != null && Maitre.Id != model.Id)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("Login is already exists");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
76
Hotel/HotelBusinessLogic/BusinessLogics/ReservationLogic.cs
Normal file
76
Hotel/HotelBusinessLogic/BusinessLogics/ReservationLogic.cs
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
using HotelContracts.BindingModels;
|
||||||
|
using HotelContracts.BusinessLogicsContracts;
|
||||||
|
using HotelContracts.SearchModels;
|
||||||
|
using HotelContracts.StoragesContracts;
|
||||||
|
using HotelContracts.ViewModels;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace HotelBusinessLogic.BusinessLogics;
|
||||||
|
|
||||||
|
public class ReservationLogic : IReservationLogic
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IReservationStorage _reservationStorage;
|
||||||
|
|
||||||
|
public ReservationLogic(IReservationStorage reservationStorage, ILogger<ReservationLogic> logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_reservationStorage = reservationStorage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ReservationViewModel>? ReadList(ReservationSearchModel? model)
|
||||||
|
{
|
||||||
|
var list = model == null ? _reservationStorage.GetFullList() : _reservationStorage.GetFilteredList(model);
|
||||||
|
_logger.LogInformation("ReadList .Count:{Count}", list.Count);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReservationViewModel? ReadElement(ReservationSearchModel model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
_logger.LogInformation("ReadElement .Id:{Id}", model.Id);
|
||||||
|
var element = _reservationStorage.GetElement(model);
|
||||||
|
if (element == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("ReadElement element not found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("ReadElement find .Id:{Id}", element.Id);
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Create(ReservationBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_reservationStorage.Insert(model) != null) return true;
|
||||||
|
_logger.LogWarning("Insert operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Update(ReservationBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_reservationStorage.Update(model) != null) return true;
|
||||||
|
_logger.LogWarning("Update operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Delete(ReservationBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
_logger.LogInformation("Delete .Id:{Id}", model.Id);
|
||||||
|
if (_reservationStorage.Delete(model) != null) return true;
|
||||||
|
_logger.LogWarning("Delete operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckModel(ReservationBindingModel? model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
if (model.StartDate > model.EndDate)
|
||||||
|
throw new ArgumentException("Start date must be early then end date");
|
||||||
|
_logger.LogInformation("Reservation .Id:{Id}", model.Id);
|
||||||
|
}
|
||||||
|
}
|
80
Hotel/HotelBusinessLogic/BusinessLogics/RoomLogic.cs
Normal file
80
Hotel/HotelBusinessLogic/BusinessLogics/RoomLogic.cs
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
using HotelContracts.BindingModels;
|
||||||
|
using HotelContracts.BusinessLogicsContracts;
|
||||||
|
using HotelContracts.SearchModels;
|
||||||
|
using HotelContracts.StoragesContracts;
|
||||||
|
using HotelContracts.ViewModels;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace HotelBusinessLogic.BusinessLogics;
|
||||||
|
|
||||||
|
public class RoomLogic : IRoomLogic
|
||||||
|
{
|
||||||
|
private readonly IRoomStorage _roomStorage;
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
|
||||||
|
public RoomLogic(IRoomStorage roomStorage, ILogger<RoomLogic> logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_roomStorage = roomStorage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<RoomViewModel>? ReadList(RoomSearchModel? model)
|
||||||
|
{
|
||||||
|
var list = model == null ? _roomStorage.GetFullList() : _roomStorage.GetFilteredList(model);
|
||||||
|
_logger.LogInformation("ReadList .Count:{Count}", list.Count);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RoomViewModel? ReadElement(RoomSearchModel model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
_logger.LogInformation("ReadElement .Id:{Id} .Type:{Type} .Cost:{Cost}",
|
||||||
|
model.Id, model.Type, model.Cost);
|
||||||
|
var element = _roomStorage.GetElement(model);
|
||||||
|
if (element == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("ReadElement element not found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("ReadElement find .Id:{Id}", element.Id);
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Create(RoomBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_roomStorage.Insert(model) != null) return true;
|
||||||
|
_logger.LogWarning("Insert operation failed");
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Update(RoomBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
if (_roomStorage.Update(model) != null) return true;
|
||||||
|
_logger.LogWarning("Update operation failed");
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Delete(RoomBindingModel model)
|
||||||
|
{
|
||||||
|
CheckModel(model);
|
||||||
|
_logger.LogInformation("Delete .Id:{Id}", model.Id);
|
||||||
|
if (_roomStorage.Delete(model) != null) return true;
|
||||||
|
_logger.LogWarning("Delete operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckModel(RoomBindingModel? model)
|
||||||
|
{
|
||||||
|
if (model == null)
|
||||||
|
throw new ArgumentNullException(nameof(model));
|
||||||
|
if (string.IsNullOrEmpty(model.Type))
|
||||||
|
throw new ArgumentException("Type must be not null");
|
||||||
|
_logger.LogInformation("Room .Id:{Id} .Type:{Type} .Cost:{Cost}",
|
||||||
|
model.Id, model.Type, model.Cost);
|
||||||
|
}
|
||||||
|
}
|
@ -6,4 +6,12 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\HotelContracts\HotelContracts.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0-preview.2.23128.3" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -6,4 +6,8 @@
|
|||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0-preview.2.23128.3" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user