public async Task <ActionResult <IEnumerable <Account> > > GetAllAccountsByUserIDAndTypeID(int id, int typeid) { try { IEnumerable <Account> result = null; _logger?.LogInformation(string.Format("Start GetAllAccountsByUserID: {0}, Filtered by TypeID: {1}", id.ToString(), typeid.ToString())); result = await _repo?.GetAllAccountsByUserIdAndAccountType(id, typeid) ?? null; result = result?.Where(a => !a.IsClosed).ToList() ?? null; if (result == null || result?.Count() < 1) { // Return NotFound 404 response on empty list. _logger?.LogWarning(string.Format("No Accounts found for UserID: {0}, with Filter by TypeID: {1}", id.ToString(), typeid.ToString())); return(NotFound(null)); } // Return list of accounts on successful find. _logger?.LogInformation(string.Format("GetAllAccountsByUserID: {0}, Filtered by TypeID: {1} Succeeded", id.ToString(), typeid.ToString())); return(Ok(result.ToList())); } catch (Exception WTF) { // Return Internal Server Error 500 on general exception. _logger?.LogError(WTF, "Unexpected Error in GetAllAccountsByUserIDAndTypeID!"); return(StatusCode(StatusCodes.Status500InternalServerError)); } }