Merge pull request 'Третий Task, реализация бизнес логики' (#4) from Task_3_BusinessLogic into main

Reviewed-on: #4
This commit was merged in pull request #4.
This commit is contained in:
2025-04-24 18:45:52 +04:00
20 changed files with 770 additions and 7 deletions

View File

@@ -6,4 +6,8 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\BankContracts\BankContracts.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,70 @@
using System.Text.Json;
using System.Text.RegularExpressions;
using BankContracts.BusinessLogicContracts;
using BankContracts.DataModels;
using BankContracts.Exceptions;
using BankContracts.Extensions;
using BankContracts.StorageContracts;
using Microsoft.Extensions.Logging;
namespace BankBusinessLogic.Implementations;
/// <summary>
/// реализация бизнес логики для клерка
/// </summary>
/// <param name="clerkStorageContract">контракт хранилища</param>
/// <param name="logger">логгер</param>
internal class ClerkBusinessLogicContract(
IClerkStorageContract clerkStorageContract,
ILogger logger
) : IClerkBusinessLogicContract
{
private readonly IClerkStorageContract _clerkStorageContract = clerkStorageContract;
private readonly ILogger _logger = logger;
public List<ClerkDataModel> GetAllClerks()
{
_logger.LogInformation("get all clerks");
return _clerkStorageContract.GetList();
}
public ClerkDataModel GetClerkByData(string data)
{
_logger.LogInformation($"Get clerk by data: {data}");
if (data.IsEmpty())
{
throw new ArgumentNullException(nameof(data));
}
if (data.IsGuid())
{
return _clerkStorageContract.GetElementById(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
if (Regex.IsMatch(data, @"^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$"))
{
return _clerkStorageContract.GetElementByPhoneNumber(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
return _clerkStorageContract.GetElementByLogin(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
public void InsertClerk(ClerkDataModel clerkDataModel)
{
_logger.LogInformation(
"Insert storekeeper: {storekeeper}",
JsonSerializer.Serialize(clerkDataModel)
);
ArgumentNullException.ThrowIfNull(clerkDataModel);
clerkDataModel.Validate();
_clerkStorageContract.AddElement(clerkDataModel);
}
public void UpdateClerk(ClerkDataModel clerkDataModel)
{
_logger.LogInformation("Update clerk: {clerk}", JsonSerializer.Serialize(clerkDataModel));
ArgumentNullException.ThrowIfNull(clerkDataModel);
clerkDataModel.Validate();
_clerkStorageContract.UpdElement(clerkDataModel);
}
}

View File

@@ -0,0 +1,86 @@
using System.Text.Json;
using BankContracts.BusinessLogicContracts;
using BankContracts.DataModels;
using BankContracts.Exceptions;
using BankContracts.Extensions;
using BankContracts.StorageContracts;
using Microsoft.Extensions.Logging;
namespace BankBusinessLogic.Implementations;
/// <summary>
/// реализация бизнес логики для клиента
/// </summary>
/// <param name="clientStorageContract">контракт клиента</param>
/// <param name="clerkStorageContract">контракт клерка</param>
/// <param name="logger">логгер</param>
internal class ClientBusinessLogicContract(
IClientStorageContract clientStorageContract,
IClerkStorageContract clerkStorageContract,
ILogger logger
) : IClientBusinessLogicContract
{
private readonly IClientStorageContract _clientStorageContract = clientStorageContract;
private readonly IClerkStorageContract _clerkStorageContract = clerkStorageContract;
private readonly ILogger _logger = logger;
public List<ClientDataModel> GetAllClients()
{
_logger.LogInformation("get all clients");
return _clientStorageContract.GetList();
}
public List<ClientDataModel> GetClientByClerk(string clerkId)
{
_logger.LogInformation("GetClientByClerk params: {clerkId}", clerkId);
if (clerkId.IsEmpty())
{
throw new ArgumentNullException(nameof(clerkId));
}
if (!clerkId.IsGuid())
{
throw new ValidationException(
"The value in the field clerkId is not a unique identifier."
);
}
return _clientStorageContract.GetList(clerkId: clerkId)
?? throw new NullListException($"{clerkId}");
}
public ClientDataModel GetClientByData(string data)
{
_logger.LogInformation("Get client by data: {data}", data);
if (data.IsEmpty())
{
throw new ArgumentNullException(nameof(data));
}
if (data.IsGuid())
{
return _clientStorageContract.GetElementById(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
throw new ElementNotFoundException($"element not found: {data}");
}
public void InsertClient(ClientDataModel clientDataModel)
{
_logger.LogInformation(
"Insert client: {client}",
JsonSerializer.Serialize(clientDataModel)
);
ArgumentNullException.ThrowIfNull(clientDataModel);
clientDataModel.Validate();
_clientStorageContract.AddElement(clientDataModel);
}
public void UpdateClient(ClientDataModel clientDataModel)
{
_logger.LogInformation(
"Update client: {client}",
JsonSerializer.Serialize(clientDataModel)
);
ArgumentNullException.ThrowIfNull(clientDataModel);
clientDataModel.Validate();
_clientStorageContract.UpdElement(clientDataModel);
}
}

View File

@@ -0,0 +1,105 @@
using System.Text.Json;
using BankContracts.BusinessLogicContracts;
using BankContracts.DataModels;
using BankContracts.Exceptions;
using BankContracts.Extensions;
using BankContracts.StorageContracts;
using Microsoft.Extensions.Logging;
namespace BankBusinessLogic.Implementations;
/// <summary>
/// реализация бизнес логики для кредитной программы
/// </summary>
/// <param name="cpStorageContract">контракт хранилища кредитной программы</param>
/// <param name="logger">логгер</param>
internal class CreditProgramBusinessLogicContract(
ICreditProgramStorageContract cpStorageContract,
ILogger logger
) : ICreditProgramBusinessLogicContract
{
private readonly ICreditProgramStorageContract _creditProgramStorageContract =
cpStorageContract;
private readonly ILogger _logger = logger;
public List<CreditProgramDataModel> GetAllCreditPrograms()
{
_logger.LogInformation("get all credit programs");
return _creditProgramStorageContract.GetList();
}
public CreditProgramDataModel GetCreditProgramByData(string data)
{
_logger.LogInformation($"Get creadit program by data: {data}");
if (data.IsEmpty())
{
throw new ArgumentNullException(nameof(data));
}
if (data.IsGuid())
{
return _creditProgramStorageContract.GetElementById(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
throw new ElementNotFoundException($"element not found: {data}");
}
public List<CreditProgramDataModel> GetCreditProgramByPeriod(string periodId)
{
_logger.LogInformation("GetCreditProgramByPeriod params: {periodId}", periodId);
if (periodId.IsEmpty())
{
throw new ArgumentNullException(nameof(periodId));
}
if (!periodId.IsGuid())
{
throw new ValidationException(
"The value in the field periodId is not a unique identifier."
);
}
return _creditProgramStorageContract.GetList(periodId: periodId)
?? throw new NullListException($"{periodId}");
}
public List<CreditProgramDataModel> GetCreditProgramByStorekeeper(string storekeeperId)
{
_logger.LogInformation(
"GetCreditProgramByStorekeeper params: {storekeeperId}",
storekeeperId
);
if (storekeeperId.IsEmpty())
{
throw new ArgumentNullException(nameof(storekeeperId));
}
if (!storekeeperId.IsGuid())
{
throw new ValidationException(
"The value in the field clerkId is not a unique identifier."
);
}
return _creditProgramStorageContract.GetList(storekeeperId: storekeeperId)
?? throw new NullListException($"{storekeeperId}");
}
public void InsertCreditProgram(CreditProgramDataModel creditProgramDataModel)
{
_logger.LogInformation(
"Insert credit program: {credit program}",
JsonSerializer.Serialize(creditProgramDataModel)
);
ArgumentNullException.ThrowIfNull(creditProgramDataModel);
creditProgramDataModel.Validate();
_creditProgramStorageContract.AddElement(creditProgramDataModel);
}
public void UpdateCreditProgram(CreditProgramDataModel creditProgramDataModel)
{
_logger.LogInformation(
"Update credit program: {credit program}",
JsonSerializer.Serialize(creditProgramDataModel)
);
ArgumentNullException.ThrowIfNull(creditProgramDataModel);
creditProgramDataModel.Validate();
_creditProgramStorageContract.UpdElement(creditProgramDataModel);
}
}

View File

@@ -0,0 +1,85 @@
using System.Text.Json;
using BankContracts.BusinessLogicContracts;
using BankContracts.DataModels;
using BankContracts.Exceptions;
using BankContracts.Extensions;
using BankContracts.StorageContracts;
using Microsoft.Extensions.Logging;
namespace BankBusinessLogic.Implementations;
/// <summary>
/// реализация бизнес логики для валюты
/// </summary>
/// <param name="currencyStorageContract">контракт валюты</param>
/// <param name="logger">логгер</param>
internal class CurrencyBusinessLogicContract(
ICurrencyStorageContract currencyStorageContract,
ILogger logger
) : ICurrencyBusinessLogicContract
{
private readonly ICurrencyStorageContract _currencyStorageContract = currencyStorageContract;
private readonly ILogger _logger = logger;
public List<CurrencyDataModel> GetAllCurrencys()
{
_logger.LogInformation("get all currencys programs");
return _currencyStorageContract.GetList();
}
public CurrencyDataModel GetCurrencyByData(string data)
{
_logger.LogInformation($"Get currencys program by data: {data}");
if (data.IsEmpty())
{
throw new ArgumentNullException(nameof(data));
}
if (data.IsGuid())
{
return _currencyStorageContract.GetElementById(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
return _currencyStorageContract.GetElementByAbbreviation(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
public List<CurrencyDataModel> GetCurrencyByStorekeeper(string storekeeperId)
{
_logger.LogInformation("GetCurrencyByStorekeeper params: {storekeeperId}", storekeeperId);
if (storekeeperId.IsEmpty())
{
throw new ArgumentNullException(nameof(storekeeperId));
}
if (!storekeeperId.IsGuid())
{
throw new ValidationException(
"The value in the field storekeeperId is not a unique identifier."
);
}
return _currencyStorageContract.GetList(storekeeperId: storekeeperId)
?? throw new NullListException($"{storekeeperId}");
}
public void InsertCurrency(CurrencyDataModel currencyDataModel)
{
_logger.LogInformation(
"Insert currency: {currency}",
JsonSerializer.Serialize(currencyDataModel)
);
ArgumentNullException.ThrowIfNull(currencyDataModel);
currencyDataModel.Validate();
_currencyStorageContract.AddElement(currencyDataModel);
}
public void UpdateCurrency(CurrencyDataModel currencyDataModel)
{
_logger.LogInformation(
"Update currency: {currency}",
JsonSerializer.Serialize(currencyDataModel)
);
ArgumentNullException.ThrowIfNull(currencyDataModel);
currencyDataModel.Validate();
_currencyStorageContract.UpdElement(currencyDataModel);
}
}

View File

@@ -0,0 +1,85 @@
using System.Text.Json;
using BankContracts.BusinessLogicContracts;
using BankContracts.DataModels;
using BankContracts.Exceptions;
using BankContracts.Extensions;
using BankContracts.StorageContracts;
using Microsoft.Extensions.Logging;
namespace BankBusinessLogic.Implementations;
/// <summary>
/// реализация бизнес логики для вклада
/// </summary>
/// <param name="depositStorageContract">контракт вклада</param>
/// <param name="logger">логгер</param>
internal class DepositBusinessLogicContract(
IDepositStorageContract depositStorageContract,
ILogger logger
) : IDepositBusinessLogicContract
{
private readonly IDepositStorageContract _depositStorageContract = depositStorageContract;
private readonly ILogger _logger = logger;
public List<DepositDataModel> GetAllDeposits()
{
_logger.LogInformation("get all deposits");
return _depositStorageContract.GetList();
}
public List<DepositDataModel> GetDepositByClerk(string clerkId)
{
_logger.LogInformation("GetDepositByClerk params: {clerkId}", clerkId);
if (clerkId.IsEmpty())
{
throw new ArgumentNullException(nameof(clerkId));
}
if (!clerkId.IsGuid())
{
throw new ValidationException(
"The value in the field clerkId is not a unique identifier."
);
}
return _depositStorageContract.GetList(clerkId: clerkId)
?? throw new NullListException($"{clerkId}");
}
public DepositDataModel GetDepositByData(string data)
{
_logger.LogInformation($"GetDepositByData by data: {data}");
if (data.IsEmpty())
{
throw new ArgumentNullException(nameof(data));
}
if (data.IsGuid())
{
return _depositStorageContract.GetElementById(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
return _depositStorageContract.GetElementByName(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
public void InsertDeposit(DepositDataModel depositDataModel)
{
_logger.LogInformation(
"Insert credit program: {credit program}",
JsonSerializer.Serialize(depositDataModel)
);
ArgumentNullException.ThrowIfNull(depositDataModel);
depositDataModel.Validate();
_depositStorageContract.AddElement(depositDataModel);
}
public void UpdateDeposit(DepositDataModel depositDataModel)
{
_logger.LogInformation(
"Update credit program: {credit program}",
JsonSerializer.Serialize(depositDataModel)
);
ArgumentNullException.ThrowIfNull(depositDataModel);
depositDataModel.Validate();
_depositStorageContract.UpdElement(depositDataModel);
}
}

View File

@@ -0,0 +1,98 @@
using System.Text.Json;
using BankContracts.BusinessLogicContracts;
using BankContracts.DataModels;
using BankContracts.Exceptions;
using BankContracts.Extensions;
using BankContracts.StorageContracts;
using Microsoft.Extensions.Logging;
namespace BankBusinessLogic.Implementations;
/// <summary>
/// реализация бизнес логики для сроков
/// </summary>
/// <param name="periodStorageContract">контракт сроков</param>
/// <param name="logger">логгер</param>
internal class PeriodBusinessLogicContract(
IPeriodStorageContract periodStorageContract,
ILogger logger
) : IPeriodBusinessLogicContract
{
private readonly IPeriodStorageContract _periodStorageContract = periodStorageContract;
private readonly ILogger _logger = logger;
public List<PeriodDataModel> GetAllPeriods()
{
_logger.LogInformation("get all periods");
return _periodStorageContract.GetList();
}
public List<PeriodDataModel> GetAllPeriodsByEndTime(DateTime fromDate, DateTime toDate)
{
if (toDate.IsDateNotOlder(toDate))
{
throw new IncorrectDatesException(fromDate, toDate);
}
return _periodStorageContract.GetList(fromDate, toDate).OrderBy(x => x.EndTime).ToList()
?? throw new NullListException(nameof(PeriodDataModel));
}
public List<PeriodDataModel> GetAllPeriodsByStartTime(DateTime fromDate, DateTime toDate)
{
if (toDate.IsDateNotOlder(toDate))
{
throw new IncorrectDatesException(fromDate, toDate);
}
return _periodStorageContract.GetList(fromDate, toDate).OrderBy(x => x.StartTime).ToList()
?? throw new NullListException(nameof(PeriodDataModel));
}
public List<PeriodDataModel> GetAllPeriodsByStorekeeper(string storekeeperId)
{
_logger.LogInformation("GetAllPeriodsByStorekeeper params: {storekeeperId}", storekeeperId);
if (storekeeperId.IsEmpty())
{
throw new ArgumentNullException(nameof(storekeeperId));
}
if (!storekeeperId.IsGuid())
{
throw new ValidationException(
"The value in the field storekeeperId is not a unique identifier."
);
}
return _periodStorageContract.GetList(storekeeperId: storekeeperId)
?? throw new NullListException($"{storekeeperId}");
}
public PeriodDataModel GetPeriodByData(string data)
{
_logger.LogInformation($"GetPeriodByData by data: {data}");
if (data.IsEmpty())
{
throw new ArgumentNullException(nameof(data));
}
if (data.IsGuid())
{
return _periodStorageContract.GetElementById(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
throw new ElementNotFoundException($"element not found: {data}");
}
public void InsertPeriod(PeriodDataModel periodataModel)
{
_logger.LogInformation("Insert period: {period}", JsonSerializer.Serialize(periodataModel));
ArgumentNullException.ThrowIfNull(periodataModel);
periodataModel.Validate();
_periodStorageContract.AddElement(periodataModel);
}
public void UpdatePeriod(PeriodDataModel periodataModel)
{
_logger.LogInformation("Update period: {period}", JsonSerializer.Serialize(periodataModel));
ArgumentNullException.ThrowIfNull(periodataModel);
periodataModel.Validate();
_periodStorageContract.UpdElement(periodataModel);
}
}

View File

@@ -0,0 +1,115 @@
using System.Text.Json;
using BankContracts.BusinessLogicContracts;
using BankContracts.DataModels;
using BankContracts.Exceptions;
using BankContracts.Extensions;
using BankContracts.StorageContracts;
using Microsoft.Extensions.Logging;
namespace BankBusinessLogic.Implementations;
/// <summary>
/// реализация бизнес логики для пополнения
/// </summary>
/// <param name="replenishmentStorageContract">контракт пополнения</param>
/// <param name="logger">логгер</param>
internal class ReplenishmentBusinessLogicContract(
IReplenishmentStorageContract replenishmentStorageContract,
ILogger logger
) : IReplenishmentBusinessLogicContract
{
private readonly IReplenishmentStorageContract _replenishmentStorageContract =
replenishmentStorageContract;
private readonly ILogger _logger = logger;
public List<ReplenishmentDataModel> GetAllReplenishments()
{
_logger.LogInformation("get all replenishments");
return _replenishmentStorageContract.GetList();
}
public List<ReplenishmentDataModel> GetAllReplenishmentsByClerk(string clerkId)
{
_logger.LogInformation("GetAllReplenishmentsByClerk params: {clerkId}", clerkId);
if (clerkId.IsEmpty())
{
throw new ArgumentNullException(nameof(clerkId));
}
if (!clerkId.IsGuid())
{
throw new ValidationException(
"The value in the field clerkId is not a unique identifier."
);
}
return _replenishmentStorageContract.GetList(clerkId: clerkId)
?? throw new NullListException($"{clerkId}");
}
public List<ReplenishmentDataModel> GetAllReplenishmentsByDate(
DateTime fromDate,
DateTime toDate
)
{
if (toDate.IsDateNotOlder(fromDate))
{
throw new IncorrectDatesException(fromDate, toDate);
}
return _replenishmentStorageContract.GetList(fromDate, toDate).ToList()
?? throw new NullListException(nameof(PeriodDataModel));
}
public List<ReplenishmentDataModel> GetAllReplenishmentsByDeposit(string depositId)
{
_logger.LogInformation("GetAllReplenishmentsByClerk params: {depositId}", depositId);
if (depositId.IsEmpty())
{
throw new ArgumentNullException(nameof(depositId));
}
if (!depositId.IsGuid())
{
throw new ValidationException(
"The value in the field depositId is not a unique identifier."
);
}
return _replenishmentStorageContract.GetList(depositId: depositId)
?? throw new NullListException($"{depositId}");
}
public ReplenishmentDataModel GetReplenishmentByData(string data)
{
_logger.LogInformation($"GetReplenishmentByData by data: {data}");
if (data.IsEmpty())
{
throw new ArgumentNullException(nameof(data));
}
if (data.IsGuid())
{
return _replenishmentStorageContract.GetElementById(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
throw new ElementNotFoundException($"element not found: {data}");
}
public void InsertReplenishment(ReplenishmentDataModel replenishmentataModel)
{
_logger.LogInformation(
"Insert replenishment: {replenishment}",
JsonSerializer.Serialize(replenishmentataModel)
);
ArgumentNullException.ThrowIfNull(replenishmentataModel);
replenishmentataModel.Validate();
_replenishmentStorageContract.AddElement(replenishmentataModel);
}
public void UpdateReplenishment(ReplenishmentDataModel replenishmentataModel)
{
_logger.LogInformation(
"Update replenishment: {replenishment}",
JsonSerializer.Serialize(replenishmentataModel)
);
ArgumentNullException.ThrowIfNull(replenishmentataModel);
replenishmentataModel.Validate();
_replenishmentStorageContract.UpdElement(replenishmentataModel);
}
}

View File

@@ -0,0 +1,75 @@
using System.Text.Json;
using System.Text.RegularExpressions;
using BankContracts.BusinessLogicContracts;
using BankContracts.DataModels;
using BankContracts.Exceptions;
using BankContracts.Extensions;
using BankContracts.StorageContracts;
using Microsoft.Extensions.Logging;
namespace BankBusinessLogic.Implementations;
/// <summary>
/// реализация бизнес логики для кладовщика
/// </summary>
/// <param name="storekeeperStorageContract">контракт кладовщика</param>
/// <param name="logger">логгер</param>
internal class StorekeeperBusinessLogicContract(
IStorekeeperStorageContract storekeeperStorageContract,
ILogger logger
) : IStorekeeperBusinessLogicContract
{
private readonly IStorekeeperStorageContract _storekeeperStorageContract =
storekeeperStorageContract;
private readonly ILogger _logger = logger;
public List<StorekeeperDataModel> GetAllStorekeepers()
{
_logger.LogInformation("get all storekeepers");
return _storekeeperStorageContract.GetList();
}
public StorekeeperDataModel GetStorekeeperByData(string data)
{
_logger.LogInformation($"Get storekeeper by data: {data}");
if (data.IsEmpty())
{
throw new ArgumentNullException(nameof(data));
}
if (data.IsGuid())
{
return _storekeeperStorageContract.GetElementById(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
if (Regex.IsMatch(data, @"^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$"))
{
return _storekeeperStorageContract.GetElementByPhoneNumber(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
return _storekeeperStorageContract.GetElementByLogin(data)
?? throw new ElementNotFoundException($"element not found: {data}");
}
public void InsertStorekeeper(StorekeeperDataModel storekeeperDataModel)
{
_logger.LogInformation(
"Insert storekeeper: {storekeeper}",
JsonSerializer.Serialize(storekeeperDataModel)
);
ArgumentNullException.ThrowIfNull(storekeeperDataModel);
storekeeperDataModel.Validate();
_storekeeperStorageContract.AddElement(storekeeperDataModel);
}
public void UpdateStorekeeper(StorekeeperDataModel storekeeperDataModel)
{
_logger.LogInformation(
"Update storekeeper: {storekeeper}",
JsonSerializer.Serialize(storekeeperDataModel)
);
ArgumentNullException.ThrowIfNull(storekeeperDataModel);
storekeeperDataModel.Validate();
_storekeeperStorageContract.UpdElement(storekeeperDataModel);
}
}

View File

@@ -0,0 +1,7 @@
namespace BankContracts.Exceptions;
/// <summary>
/// Исключение для не найденного элемента в бизнес логике и контрактах
/// </summary>
/// <param name="message"></param>
public class ElementNotFoundException(string message) : Exception(message) { }

View File

@@ -0,0 +1,8 @@
namespace BankContracts.Exceptions;
/// <summary>
/// Исключения для валидации дат
/// </summary>
/// <param name="from">начальная дата</param>
/// <param name="to">конечная дата</param>
public class IncorrectDatesException(DateTime from, DateTime to) : Exception($"date: {from} is older than {to}") { }

View File

@@ -0,0 +1,7 @@
namespace BankContracts.Exceptions;
/// <summary>
/// Исключение для null списка
/// </summary>
/// <param name="message">сообщение</param>
public class NullListException(string message) : Exception(message) { }

View File

@@ -0,0 +1,12 @@
namespace BankContracts.Extensions;
/// <summary>
/// расширение для проверки дат
/// </summary>
public static class DateTimeExtensions
{
public static bool IsDateNotOlder(this DateTime date, DateTime olderDate)
{
return date >= olderDate;
}
}

View File

@@ -4,7 +4,7 @@ namespace BankContracts.StorageContracts;
public interface IClientStorageContract
{
List<ClientDataModel> GetList();
List<ClientDataModel> GetList(string? clerkId = null);
ClientDataModel? GetElementById(string id);

View File

@@ -4,7 +4,7 @@ namespace BankContracts.StorageContracts;
public interface ICreditProgramStorageContract
{
List<CreditProgramDataModel> GetList();
List<CreditProgramDataModel> GetList(string? storekeeperId = null, string? periodId = null);
CreditProgramDataModel? GetElementById(string id);

View File

@@ -4,7 +4,7 @@ namespace BankContracts.StorageContracts;
public interface ICurrencyStorageContract
{
List<CurrencyDataModel> GetList();
List<CurrencyDataModel> GetList(string? storekeeperId = null);
CurrencyDataModel? GetElementById(string id);

View File

@@ -4,7 +4,7 @@ namespace BankContracts.StorageContracts;
public interface IDepositStorageContract
{
List<DepositDataModel> GetList();
List<DepositDataModel> GetList(string? clerkId = null);
DepositDataModel? GetElementById(string id);

View File

@@ -4,7 +4,7 @@ namespace BankContracts.StorageContracts;
public interface IPeriodStorageContract
{
List<PeriodDataModel> GetList(DateTime startDate, DateTime endDate);
List<PeriodDataModel> GetList(DateTime? startDate = null, DateTime? endDate = null, string? storekeeperId = null);
PeriodDataModel? GetElementById(string id);

View File

@@ -4,7 +4,7 @@ namespace BankContracts.StorageContracts;
public interface IReplenishmentStorageContract
{
List<ReplenishmentDataModel> GetList();
List<ReplenishmentDataModel> GetList(DateTime? fromDate = null, DateTime? toDate = null, string? clerkId = null, string? depositId = null);
ReplenishmentDataModel? GetElementById(string id);

View File

@@ -1,10 +1,12 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.12.35707.178 d17.12
VisualStudioVersion = 17.12.35707.178
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BankContracts", "BankContracts\BankContracts.csproj", "{7AF1B83C-2E92-482F-8189-6FE7313134FD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BankBusinessLogic", "BankBusinessLogic\BankBusinessLogic.csproj", "{EAB70DA6-3C70-4069-B83C-D90330757C12}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -15,6 +17,10 @@ Global
{7AF1B83C-2E92-482F-8189-6FE7313134FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7AF1B83C-2E92-482F-8189-6FE7313134FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7AF1B83C-2E92-482F-8189-6FE7313134FD}.Release|Any CPU.Build.0 = Release|Any CPU
{EAB70DA6-3C70-4069-B83C-D90330757C12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EAB70DA6-3C70-4069-B83C-D90330757C12}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EAB70DA6-3C70-4069-B83C-D90330757C12}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EAB70DA6-3C70-4069-B83C-D90330757C12}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE