public async Task CreateAsync(CreateHearingViewModel input) { var caseIdAndHearingsCountInfo = this.casesRepository.AllAsNoTracking() .Where(x => x.CaseNumber == input.CaseNumber) .Take(1) .Select(x => new { caseId = x.Id, hearingsCount = x.Hearings.Count, }) .FirstOrDefault(); if (caseIdAndHearingsCountInfo == null) { throw new ArgumentNullException("caseNumber", "Case with the provided case number was not found in the database"); } input.CaseId = caseIdAndHearingsCountInfo.caseId; input.LocalId = caseIdAndHearingsCountInfo.hearingsCount + 1; var mapper = AutoMapperConfig.MapperInstance; var newHearing = mapper.Map <Hearing>(input); await this.hearingsRepository.AddAsync(newHearing); await this.hearingsRepository.SaveChangesAsync(); }
public async Task <IActionResult> Create(CreateHearingViewModel input) { var attorneyId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); input.AttorneyId = attorneyId; try { await this.hearingsService.CreateAsync(input); } catch (ArgumentNullException ex) { return(this.RedirectToAction("Create", new { message = ex.Message })); } return(this.RedirectToAction("Create", new { message = "Hearing Successfully Added" })); }