/// <summary> /// Return a instance of <see cref="UnitOfWork"/>. /// </summary> /// <param name="context">Contexto to database.</param> public UnitOfWork(HolidaysContext context) { _holidaysContext = context ?? throw new ArgumentNullException(nameof(context)); _countryRepository = new CountryRepository(_holidaysContext); _stateRepository = new StateRepository(_holidaysContext); _ruleHolidayRepository = new RuleHolidayRepository(_holidaysContext); _holidayRepository = new HolidayRepository(_holidaysContext); }
private static IRuleHolidayRepository GetRuleHolidayRepository(HolidaysContext dbContext) { if (_ruleHolidayRepository == null) { _ruleHolidayRepository = new RuleHolidayRepository(dbContext); } return(_ruleHolidayRepository); }
/// <summary> /// Determines whether the record meets the business rules for adding a new record. /// </summary> /// <param name="countryRepository">Context for accessing the repository.</param> /// <param name="stateRepository">Context for accessing the repository.</param> /// <param name="ruleHolidayRepository">Context for accessing the repository.</param> public AddRuleHolidayServiceValidator(ICountryRepository countryRepository, IStateRepository stateRepository, IRuleHolidayRepository ruleHolidayRepository) : base() { _countryRepository = countryRepository ?? throw new ArgumentNullException(nameof(countryRepository)); _stateRepository = stateRepository ?? throw new ArgumentNullException(nameof(stateRepository)); _ruleHolidayRepository = ruleHolidayRepository ?? throw new ArgumentNullException(nameof(ruleHolidayRepository)); ValidateComposeKey(); ValidateCountryId(); ValidateStateId(); }
public static IUnitOfWorkCore GetUnitOfWorkCore() { if (_unitOfWorkCore == null) { HolidaysContext dbContext = GetInMemoryContext(); // // TODO: Melhorar // ICountryRepository countryRepository = GetCountryRepository(dbContext); IStateRepository stateRepository = GetStateRepository(dbContext); IRuleHolidayRepository ruleHolidayRepository = GetRuleHolidayRepository(dbContext); IHolidayRepository holidayRepository = GetHolidayRepository(dbContext); _unitOfWorkCore = new UnitOfWork(dbContext); } return(_unitOfWorkCore); }
private async Task <bool> RuleHolidayMustBeUniqueAsync(RuleHoliday ruleHoliday, IRuleHolidayRepository ruleRepository) { RuleHoliday record = (await ruleRepository.FindAsync(c => c.ComposeKey == ruleHoliday.ComposeKey)).FirstOrDefault(); if (ruleHoliday.Action != ActionType.Register && record.Id == ruleHoliday.Id) { record = null; } return(record == null); }