public int?GetRoute(string route) { if (string.IsNullOrWhiteSpace(route)) { return(null); } return(ShippingRoutesList.FirstOrDefault(sr => sr.Name == route)?.Id ?? (!string.IsNullOrWhiteSpace(route) ? AddRoute(route) : null)); }
private int?AddRoute(string routeName) { var newObj = new ShippingRoute() { Name = routeName, }; string sql = $"IF (SELECT top 1 Id from [ShippingRoute] where Name = @name) IS NULL BEGIN INSERT INTO ShippingRoute (Name) VALUES (@name); SELECT CAST(SCOPE_IDENTITY() as int) END ELSE (SELECT top 1 Id from [ShippingRoute] where Name = @name)"; using (var connection = ConnectionFactory.GetOpenConnection()) { newObj.Id = connection.Query <int>(sql, new { newObj.Name }).Single(); if (ShippingRoutesList.Select(s => s.Id == newObj.Id).Count() == 0) { ShippingRoutesList.Add(newObj); } } return(newObj.Id); }