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, bool modelUpdate = false)
{
if (model == null)
{
throw new ArgumentNullException(nameof(model));
}
else if (string.IsNullOrEmpty(model.Name))
{
throw new ArgumentNullException(nameof(model.Name));
}
if (!modelUpdate && 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
};
}
}
}