public async Task <IEnumerable <CalculatePriceTask> > GenerateCalculatePriceTasks(ProductWrapper productWrapper,
                                                                                          DateTime date)
        {
            var result = new List <CalculatePriceTask>();

            //подт¤гиваем все актуальные задачи
            var actualTasks = (await _unitOfWork.GetRepository <CalculatePriceTask>().GetAllAsync()).
                              Where(x => x.IsActual).ToList();

            //блоки с неактуальной ценой
            var blocks = productWrapper.GetBlocksWithoutActualPriceOnDate(date);

            foreach (var productBlockWrapper in blocks)
            {
                if (actualTasks.Any(x => x.ProductBlock.Id == productBlockWrapper.Id))
                {
                    continue;
                }

                var task = new CalculatePriceTask
                {
                    ProductBlockId = productBlockWrapper.Model.Id,
                    ProductBlock   = productBlockWrapper.Model,
                    Date           = date
                };

                _unitOfWork.GetRepository <CalculatePriceTask>().Add(task);
                result.Add(task);
            }

            await _unitOfWork.SaveChangesAsync();

            return(result);
        }