private async Task <FormRequestResponse> ProcessForm(BaseFormRequest formRequest) { try { return(await formProcessor.ProcessForm(formRequest)); } catch { return(FormRequestResponse.ErrorResponse); } }
public Task <FormRequestResponse> ProcessForm(BaseFormRequest request) { switch (request) { case MedicalFormRequest medicalFormRequest: return(ProcessMedicalFormRequest(medicalFormRequest)); case EmployeeFormRequest employeeFormRequest: return(ProcessEmployeeFormRequest(employeeFormRequest)); case BankFormRequest bankFormRequest: return(ProcessBankFormRequest(bankFormRequest)); case StandardBankFormRequest standardBankFormRequest: return(ProcessStandardBankFormRequest(standardBankFormRequest)); case FormRequestWithPurpose otherRequest: return(ProcessOtherFormRequest(otherRequest)); default: throw new ArgumentException($"Unkown type of request {request.GetType()}"); } }