public async Task <JsonResult> GetTasks(AgentTaskFilterViewModel taskFilter) { return(await RunWithResult(async() => { var model = await GetTasksInternal(taskFilter, true); return new { tasksHtml = model.Tasks.Count == 0 && taskFilter.Offset > 0 ? "" : RenderViewToString("_TaskList", model.Tasks), inWorkCount = model.InWorkCount, doneCount = model.DoneCount }; }, "При получении заданий произошла ошибка")); }
public async Task <ActionResult> Tasks(AgentTaskFilterViewModel taskFilter) { if (taskFilter == null) { taskFilter = new AgentTaskFilterViewModel(); } if (taskFilter.Offset == 0 && taskFilter.Limit == 0) { taskFilter.Limit = _pageSize; } var model = await GetTasksInternal(taskFilter, false); model.PageSize = _pageSize; return(View(model)); }
private async Task <AgentTasksViewModel> GetTasksInternal(AgentTaskFilterViewModel filter, bool throwOnError) { var fullFilter = TinyMapper.Map <AgentTaskFilter>(filter); fullFilter.AgentId = await _agentRepository.GetIdByCodeAync(User.Identity.Name); try { var tasks = await _taskRepository.GetListForAgentAsync(fullFilter); var inWorkCount = await _taskRepository.GetTaskCountByAgentAsync(fullFilter.AgentId, false); var doneCount = await _taskRepository.GetTaskCountByAgentAsync(fullFilter.AgentId, true); return(new AgentTasksViewModel { Tasks = tasks, InWorkCount = inWorkCount, DoneCount = doneCount, IsDone = filter.IsDone, ResolutionError = filter.ResolutionError }); } catch (PublicException ex) { if (throwOnError) { throw; } else { _logger.Error("При получении списка заданий для агента произошла ошибка", ex); return(new AgentTasksViewModel { Tasks = new List <AgentTask>(), InWorkCount = 0, DoneCount = 0, IsDone = filter.IsDone, ResolutionError = filter.ResolutionError, TasksError = ex.Message }); } } catch (Exception ex) { if (throwOnError) { throw; } else { _logger.Error($"При получении списка заданий для агента {fullFilter.AgentId} произошла ошибка", ex); return(new AgentTasksViewModel { Tasks = new List <AgentTask>(), InWorkCount = 0, DoneCount = 0, IsDone = filter.IsDone, ResolutionError = filter.ResolutionError, TasksError = "При получении списка заданий для произошла ошибка" }); } } }