public async Task <int> CreateTaskAsync(BkTask model)
        {
            using (var db = new BkDbContext())
            {
                var task = db.Tasks.Add(model);
                await db.SaveChangesAsync();

                return(task.Id);
            }
        }
        private async Task <int> CreateNewTask(CreateTaskViewModel task)
        {
            if (string.IsNullOrEmpty(task.Inn) ||
                task.Inn.Length != Common.Constants.InnLengthIndividual && task.Inn.Length != Common.Constants.InnLengthLegal ||
                !(Common.Constants.InnRegex.IsMatch(task.Inn)))
            {
                throw new PublicException($"ИНН должен coстоять из {Common.Constants.InnLengthIndividual} или {Common.Constants.InnLengthLegal} цифр");
            }
            if (task.AgentIds == null || task.AgentIds.Length == 0)
            {
                throw new PublicException("Для задания не назначены агенты");
            }

            var newTask = new BkTask
            {
                Date             = DateTime.Now,
                Inn              = task.Inn,
                Name             = task.Name,
                PurposeOfPayment = task.PurposeOfPayment,
                IsArchive        = false,
                TotalCount       = task.AgentIds.Length
            };

            var userManager   = HttpContext.GetOwinContext().GetUserManager <BkUserManager>();
            var userId        = User.Identity.GetUserId();
            var clientIdClaim = (await userManager.GetClaimsAsync(userId)).FirstOrDefault(p => p.Type == Common.Constants.ClientIdClaimType);

            if (!string.IsNullOrEmpty(clientIdClaim?.Value) && int.TryParse(clientIdClaim.Value, out int clientId))
            {
                newTask.ClientId = clientId;
            }

            var taskId = await _taskRepository.CreateTaskAsync(newTask);

            foreach (var agentId in task.AgentIds)
            {
                var resolution = new Data.Models.Resolution
                {
                    AgentId               = agentId,
                    TaskId                = taskId,
                    Decision              = null,
                    Note                  = string.Empty,
                    ImageData             = string.Empty,
                    ImageName             = string.Empty,
                    DateTimeDesktopUpdate = DateTime.Now
                };
                await _resolutionRepository.CreateResolutionAsync(resolution);
            }

            return(taskId);
        }