public async Task <StoreOpenDayDto[]> UpdateOpenDayAsync(int branchId, StoreOpenDayDto[] dtoArr) { var storeBranchE = await Repository.GetAsync(branchId) ?? throw new EntityNotFoundException(); var openDayEs = await AsyncExecuter.ToListAsync(StoreOpenDayRepository.Where(e => e.StoreBranchID == branchId)); foreach (var entity in openDayEs) { var dto = dtoArr.SingleOrDefault(e => e.DayOfWeek == entity.DayOfWeek); if (dto == null) { await StoreOpenDayRepository.DeleteAsync(entity, autoSave : true); } else { entity.OpeningTime = dto.OpeningTime; entity.ClosingTime = dto.ClosingTime; await StoreOpenDayRepository.UpdateAsync(entity, autoSave : true); } } foreach (var dto in dtoArr) { var entity = openDayEs.SingleOrDefault(e => e.DayOfWeek == dto.DayOfWeek); if (entity == null) { var cEntity = ObjectMapper.Map <StoreOpenDayDto, StoreOpenDayEntity>(dto); await StoreOpenDayRepository.InsertAsync(cEntity, autoSave : true); } } openDayEs = await AsyncExecuter.ToListAsync(StoreOpenDayRepository.Where(e => e.StoreBranchID == branchId)); return(ObjectMapper.Map <StoreOpenDayEntity[], StoreOpenDayDto[]>(openDayEs.ToArray())); }
public async Task <StoreOpenDayDto> CreateOpenDayAsync(int branchId, StoreOpenDayDto dto) { var branchE = await Repository.GetAsync(branchId) ?? throw new EntityNotFoundException(); var openDayE = await StoreOpenDayRepository.GetAsync(e => e.StoreBranchID == branchId && e.DayOfWeek == dto.DayOfWeek); dto.StoreBranchID = branchId; var entity = ObjectMapper.Map <StoreOpenDayDto, StoreOpenDayEntity>(dto); await StoreOpenDayRepository.InsertAsync(entity, autoSave : true); return(ObjectMapper.Map <StoreOpenDayEntity, StoreOpenDayDto>(entity)); }
public override async Task <StoreBranchDto> CreateAsync(StoreBranchCreateDto input) { _ = StoreChainRepository.GetAsync(input.StoreChainID) ?? throw new BusinessException("Invalid storeChain"); _ = CityRepository.GetAsync(input.CityID) ?? throw new BusinessException("Invalid city"); var storeBranchE = ObjectMapper.Map <StoreBranchCreateDto, StoreBranchEntity>(input); await Repository.InsertAsync(storeBranchE, autoSave : true); foreach (var dayoftheweek in Enum.GetNames(typeof(DayOfWeek))) { var storeOpenDayE = new StoreOpenDayEntity(storeBranchE.Id, Enum.Parse <DayOfWeek>(dayoftheweek)) { OpeningTime = new TimeSpan(7, 30, 0), ClosingTime = new TimeSpan(22, 30, 0) }; await StoreOpenDayRepository.InsertAsync(storeOpenDayE, autoSave : true); } return(ObjectMapper.Map <StoreBranchEntity, StoreBranchDto>(storeBranchE)); }