public async Task <IActionResult> Allocate(NewTaskAllocationRequestDto dto) { var user = User.Claims .FirstOrDefault(c => c.Type.Equals("sub") && c.Issuer.Equals("https://localhost:5002")); var office = User.Claims .FirstOrDefault(c => c.Type.Equals("office") && c.Issuer.Equals("https://localhost:5002")); if (user != null) { dto.AssignedBy = Guid.Parse(user.Value); } else { return(NotFound()); } dto.DateAssigned = DateTime.Now; if (office != null) { dto.SortingOffice = Convert.ToInt32(office.Value); } else { return(NotFound()); } var multipleApplicationTask = await _taskApiClientService.PostMultipleApplicationTaskAsync(dto); if (multipleApplicationTask != null) { return(Ok(multipleApplicationTask)); } return(BadRequest("Could not allocate")); }
private async System.Threading.Tasks.Task AllocateMultipleApplicationsAsync(NewTaskAllocationRequestDto dto) { var dtoService = (EService)dto.Service; var applications = await _context.Applications.Where(a => a.Service == dtoService && a.CityId.Equals(dto.SortingOffice) && a.TaskId == null) .Take(dto.NumberOfApplications) .ToListAsync(); var task = _mapper.Map <ExaminationTask>(dto); foreach (var application in applications) { if (application.Service == EService.NameSearch) { application.ExaminationTask = task; application.Status = EApplicationStatus.Assigned; } if (application.Service == EService.PrivateLimitedCompany) { if (application.Status == EApplicationStatus.Submitted) { application.ExaminationTask = task; application.Status = EApplicationStatus.Assigned; } } } }
private async System.Threading.Tasks.Task AllocateSingleApplicationAsync(NewTaskAllocationRequestDto dto) { var application = await _context.Applications.SingleAsync(a => a.ApplicationId.Equals(dto.ApplicationId) && a.CityId.Equals(dto.SortingOffice) && a.TaskId == null); application.ExaminationTask = _mapper.Map <ExaminationTask>(dto); application.Status = EApplicationStatus.Assigned; }
public async Task <int?> PostMultipleApplicationTaskAsync(NewTaskAllocationRequestDto dto) { var response = await _client.PostAsJsonAsync("applications/allocate", dto); if (response.IsSuccessStatusCode) { return(await response.Content.ReadAsAsync <int>()); } return(null); }
public async Task <int> AllocateTasksAsync(NewTaskAllocationRequestDto dto) { if (dto.ApplicationId > 0) { await AllocateSingleApplicationAsync(dto); } else { await AllocateMultipleApplicationsAsync(dto); } await _context.SaveChangesAsync(); return(await _context.Applications.CountAsync(a => a.Service.Equals(dto.Service) && a.CityId.Equals(dto.SortingOffice) && a.TaskId.Equals(null))); }
public async Task <IActionResult> AllocateApplicationsToExaminer([FromBody] NewTaskAllocationRequestDto dto) { return(Created("", await _taskService.AllocateTasksAsync(dto))); }