public async Task <IActionResult> Create(TravelDto travelModel) { if (ModelState.IsValid) { var travelInfo = _mapper.Map <TravelDto, TravelInfo>(travelModel); var travelExp = _mapper.Map <ICollection <TravelExpenseDto>, ICollection <TravelExpenses> >(travelModel.TravelExpensesDtos); travelInfo.Date = DateTime.Now; travelInfo.TravelExpenses = travelExp; travelInfo.IsApproved = null; foreach (var travel in travelExp.Where(p => p.Details.Equals("Misc. Expenses (please explain below)") || p.Details.Equals("Entertainment F&B (please explain below)"))) { travel.MiscExpenses = _mapper.Map <ICollection <MiscExpenseDto>, ICollection <MiscExpenses> >(travelModel.TravelExpensesDtos.FirstOrDefault(p => p.Details.Equals(travel.Details)).MiscExpensesDtos.ToList()); } await _travelService.AddAsync(travelInfo); await SendMailToTeamLeadAsync(); if (Request.IsAjaxRequest()) { return(Json(new { message = $"The travel expenses with purpose {travelInfo.Purpose}'s has been uploaded." })); } return(RedirectToAction(nameof(Index))); } return(View(travelModel)); }