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