//Todo: implement this... private async Task SendRequestEmail(HireRequestDTO request) { try { var replacement = new StringDictionary { ["Departurelocation"] = request.Departure, ["Arrivallocation"] = request.Destination, ["Departuredate"] = request.DepartureDate.ToString(CoreConstants.DateFormat), ["Firstname"] = request.FirstName, ["Lastname"] = request.LastName, ["Email"] = request.Email, ["Phone"] = request.PhoneNumber, ["BusNo"] = request.NumberOfBuses.ToString(), }; var adminMail = new Mail(appConfig.AppEmail, "Libmot.com: New Hire Request", appConfig.HiredBookingEmail.Split(",", StringSplitOptions.RemoveEmptyEntries)) { BodyIsFile = true, BodyPath = Path.Combine(_hostingEnvironment.ContentRootPath, CoreConstants.Url.AdminHireBookingEmail) }; var customerMail = new Mail(appConfig.AppEmail, "Libmot.com:Booking Request confirmation", request.Email) { BodyIsFile = true, BodyPath = Path.Combine(_hostingEnvironment.ContentRootPath, CoreConstants.Url.CustomerHireBookingEmail) }; await Task.WhenAll(_mailSvc.SendMailAsync(adminMail, replacement), _mailSvc.SendMailAsync(customerMail, replacement)); } catch (Exception) { } }
public async Task <IServiceResponse <bool> > Add(HireRequestDTO request) { return(await HandleApiOperationAsync(async() => { await _hireRequestSvc.CreateRequest(request); return new ServiceResponse <bool>(true); })); }
public async Task CreateRequest(HireRequestDTO hireRequest) { if (hireRequest is null) { throw new LMEGenericException($"Request is invalid."); } if (hireRequest.RequestDate < Clock.Now) { throw new LMEGenericException($"Request date cannot be in the past."); } if (hireRequest.DepartureDate < Clock.Now) { throw new LMEGenericException($"Departure date cannot be in the past."); } _repo.Insert(new HireRequest { Address = hireRequest.Address, CreatorUserId = _serviceHelper.GetCurrentUserId(), Departure = hireRequest.Departure, DepartureDate = hireRequest.DepartureDate, Destination = hireRequest.Destination, Email = hireRequest.Email, FirstName = hireRequest.FirstName, Gender = hireRequest.Gender, LastName = hireRequest.LastName, MiddleName = hireRequest.MiddleName, NextOfKinName = hireRequest.NextOfKinName, NextOfKinPhoneNumber = hireRequest.NextOfKinPhoneNumber, NumberOfBuses = hireRequest.NumberOfBuses, PhoneNumber = hireRequest.PhoneNumber, RequestDate = hireRequest.RequestDate }); await _unitOfWork.SaveChangesAsync(); await SendRequestEmail(hireRequest); }