public async Task <IEnumerable <PackageType> > GetPackageTypesByExpressionNav(string exp, Dictionary <string, string> navExp, List <string> includesLst = null) { if (System.ComponentModel.LicenseManager.UsageMode == LicenseUsageMode.Designtime || exp == null || exp == "None") { return(new List <PackageType>().AsEnumerable()); } try { using (var t = new PackageTypeClient()) { IEnumerable <DTO.PackageType> res = null; if (exp == "All" && navExp.Count == 0) { res = await t.GetPackageTypes(includesLst).ConfigureAwait(continueOnCapturedContext: false); } else { res = await t.GetPackageTypesByExpressionNav(exp, navExp, includesLst).ConfigureAwait(continueOnCapturedContext: false); } if (res != null) { return(res.Select(x => new PackageType(x)).AsEnumerable()); } else { return(null); } } } catch (FaultException <ValidationFault> e) { throw new Exception(e.Detail.Message, e.InnerException); } catch (Exception) { Debugger.Break(); throw; } }