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); }