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);
        }