public void Add(IHandleRegistrationCriteria <T> reg) { if (regs.OfType <IHandleRegistrationCriteria <T> >().Where(r => r.Operation == reg.Operation && r.CriteriaType == reg.CriteriaType).FirstOrDefault() != null) { throw new ObjectPortalOperationNotSupportedException($"Key is already present in registrations {reg.Operation.ToString()} with type ${reg.CriteriaType.FullName}"); } regs.Add(reg); }
public void AddCriteria <C>(Operation operation, Action <T, C> action) { IHandleRegistrationCriteria <T, C> reg = rootContainer.Resolve <Func <Operation, Action <T, C>, IHandleRegistrationCriteria <T, C> > >()(operation, action); Add(reg); }