public override string Generate(UseFederationExpression expression)
        {
            if (expression.UseRoot)
             {
            return Wrap(UseRoot);
             }

             string filter = string.Format(FederationFiltering, expression.Filtering ? "ON" : "OFF");

             return Wrap(string.Format(UseFederation, expression.Name, expression.DistributionName, expression.DistributionValue ?? "1", filter));
        }
 public override string Generate(UseFederationExpression expression)
 {
     throw new NotSupportedException("Currently only Azure databases support data federation.");
 }
 public IUseFederationSyntax Federation(string name)
 {
     var expression = new UseFederationExpression { Name = name };
     _context.Expressions.Add(expression);
     return new UseFederationExpressionBuilder(expression, _context);
 }
        public void Process(ForEachFederationExpression expression)
        {
            UseFederationExpression useRootFederation = new UseFederationExpression {UseRoot = true};
               Process (useRootFederation);

               DataTable federations = Read(m_forEachFederationSql, expression.Federation).Tables[0];

               foreach (DataRow row in federations.Rows)
               {
              string range = row["range_low"].ToString();
              string distribution = row["distribution_name"].ToString();

              UseFederationExpression useFederationExpression = new UseFederationExpression
              {
                 DistributionName = distribution,
                 Name = expression.Federation,
                 DistributionValue = range
              };
              Process(useFederationExpression);

              foreach (IMigrationExpression innerExpression in  expression.Context.Expressions)
              {
                 innerExpression.ExecuteWith (this);
              }
               }
        }
 public void Process(UseFederationExpression expression)
 {
     Process(Generator.Generate(expression));
 }
 public UseFederationExpressionBuilder(UseFederationExpression expression, IMigrationContext context)
 {
     _context = context;
     _expression = expression;
 }