55 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using MedicalDatabaseContracts;
using MedicalDatabaseContracts.Models;
using MedicalDatabaseContracts.SearchModels;
using MedicalDatabaseContracts.ViewModels;
using Microsoft.Extensions.Logging;
namespace MedicalBusinessLogic.BusinessLogics
{
public class SpecializationLogic : AbstractLogic<Specialization, SpecializationViewModel, SpecializationSearchModel>
{
public SpecializationLogic(
ILogger<AbstractLogic<Specialization, SpecializationViewModel, SpecializationSearchModel>> logger,
IStorage<Specialization> storage) : base(logger, storage) { }
protected override bool CheckModelBySearchModel(Specialization model, SpecializationSearchModel searchModel)
{
if (searchModel.Id != null && searchModel.Id != model.Id)
return false;
if (!string.IsNullOrEmpty(searchModel.Name) && searchModel.Name != model.Name)
return false;
if (searchModel.IsPediatric != null && searchModel.IsPediatric != model.IsPediatric)
return false;
if (searchModel.IsTherapeutic != null && searchModel.IsTherapeutic != model.IsTherapeutic)
return false;
return true;
}
protected override void CheckModelIsValid(Specialization model)
{
if (model == null)
{
throw new ArgumentNullException(nameof(model));
}
else if (string.IsNullOrEmpty(model.Name))
{
throw new ArgumentNullException(nameof(model.Name));
}
else if (ReadList(new SpecializationSearchModel { Name = model.Name }).Count != 0)
{
throw new InvalidOperationException($"Специальность с таким названием уже есть: \"{model.Name}\"");
}
}
protected override SpecializationViewModel GetViewModel(Specialization model)
{
return new SpecializationViewModel {
Id = model.Id,
Name = model.Name,
IsPediatric = model.IsPediatric,
IsTherapeutic = model.IsTherapeutic
};
}
}
}