public async Task <DrawingDTO> Handle(GetActiveDrawing query) { var activeDrawing = await _distributedCacheService.GetObjectOrDefaultAsync <DrawingDTO>(DistributedCacheService.ACTIVE_DRAWING); if (activeDrawing == null) { var drawing = await _drawingRepository.GetActiveAsync(); activeDrawing = _mapper.Map <DrawingDTO>(drawing); await _distributedCacheService.SetAsync(DistributedCacheService.ACTIVE_DRAWING, activeDrawing); } return(activeDrawing); }
public async Task <Drawing> CreateDrawing(DateTime startDate) { var activeDrawing = await _drawingRepository.GetActiveAsync(); if (activeDrawing != null) { throw new ServiceException($"Cannot create new drawing when other one is active (id: {activeDrawing.Id})!"); } var drawing = Drawing.CreateDrawing(startDate); await _drawingRepository.AddAsync(drawing); await _distributedCacheService.RemoveAsync(DistributedCacheService.ACTIVE_DRAWING); return(drawing); }