public static async Task <Fund> GetOrCreateFundAsync(this MasterSideLetterDataAccess dataAccess, string name, string sponsorName, string businessUnitName, string strategyName, int?year, decimal?size) { var existing = await dataAccess.GetFundByNameAsync(name); if (existing != null) { return(existing); } var newFund = new Fund { Name = name, SponsorName = sponsorName, BusinessUnitName = businessUnitName, StrategyName = strategyName, Year = year, Size = size }; newFund.Id = await dataAccess.CreateFundAsync(newFund); return(newFund); }