public ActionResult <Employee> GetEmployee(string email) { var validatedEmail = fs(D2.createEmailAddress(email)); if (!validatedEmail.IsFail) { return(BadRequest(validatedEmail.FailAsEnumerable().First())); } else { var emailAddress = validatedEmail.SuccessAsEnumerable().First(); var timedEmployee = emailAddress.Apply(email => fs(D2.tryGetEmployeeFromDatabase(_db, email))).Map(fs); var timedResult = timedEmployee.Map(oe => oe .Map(e => (ActionResult <Employee>)Ok(e)) .IfNone(() => NotFound())); var result = timedResult.IfFail(e => StatusCode(StatusCodes.Status408RequestTimeout, e.First())); return(result); } }