using MedicalDatabaseContracts.Models; using MedicalDatabaseContracts.SearchModels; using MedicalDatabaseContracts.ViewModels; namespace MedicalDatabaseContracts { public interface ILogic where M : AbstractModel where V : AbstractViewModel where S : AbstractSearchModel { List ReadList(S? searchModel = null); List ReadList(out double elapsedMilliseconds, S? searchModel = null); V? ReadElement(int id); V? ReadElement(int id, out double elapsedMilliseconds); bool Create(M model); bool Create(M model, out double elapsedMilliseconds); bool Update(M model); bool Update(M model, out double elapsedMilliseconds); bool Delete(int id); bool Delete(int id, out double elapsedMilliseconds); bool DeleteAll(); bool DeleteAll(out double elapsedMilliseconds); } }