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);
        }
示例#2
0
        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);
        }