private static string GenerateCode(CassandraKeyspaceSchema schema, string nameSpace, string typeName) { var code = new StringBuilder(); code.AppendLine(@"using System; using System.Numerics; using System.Linq; using FluentCassandra; using FluentCassandra.Connections; using FluentCassandra.Types;"); code.Append(@"namespace " + nameSpace + @" { public class " + typeName + @" : IDisposable { public FluentCassandra.CassandraContext Context { get; private set; } public FluentCassandra.CassandraSession Session { get; private set; } public " + typeName + @"(FluentCassandra.CassandraContext context) { if (context == null) throw new ArgumentNullException(""context"", ""context is null.""); Context = context; Session = new CassandraSession(Context.ConnectionBuilder); } public void Dispose() { if (Session != null) Session.Dispose(); if (Context != null && !Context.WasDisposed) Context.Dispose(); } "); foreach (var familyDef in schema.ColumnFamilies) { var familyName = familyDef.FamilyName; code.AppendLine(@" private FluentCassandra.CassandraColumnFamily _" + familyName + @"; public FluentCassandra.CassandraColumnFamily " + familyName + @" { get { if (_" + familyName + @" == null) _" + familyName + @" = Context.GetColumnFamily(""" + familyName + @"""); return _" + familyName + @"; } }" ); } code.AppendLine(@" } }"); return(code.ToString()); }
private static string GenerateCode(CassandraKeyspaceSchema schema, string nameSpace, string typeName) { var code = new StringBuilder(); code.AppendLine(@"using System; using System.Numerics; using System.Linq; using FluentCassandra; using FluentCassandra.Connections; using FluentCassandra.Types;"); code.Append(@"namespace " + nameSpace + @" { public class " + typeName + @" : IDisposable { public FluentCassandra.CassandraContext Context { get; private set; } public FluentCassandra.CassandraSession Session { get; private set; } public " + typeName + @"(FluentCassandra.CassandraContext context) { if (context == null) throw new ArgumentNullException(""context"", ""context is null.""); Context = context; Session = new CassandraSession(Context.ConnectionBuilder); } public void Dispose() { if (Session != null) Session.Dispose(); if (Context != null && !Context.WasDisposed) Context.Dispose(); } "); foreach (var familyDef in schema.ColumnFamilies) { var familyName = familyDef.FamilyName; code.AppendLine(@" private FluentCassandra.CassandraColumnFamily _" + familyName + @"; public FluentCassandra.CassandraColumnFamily " + familyName + @" { get { if (_" + familyName + @" == null) _" + familyName + @" = Context.GetColumnFamily(""" + familyName + @"""); return _" + familyName + @"; } }"); } code.AppendLine(@" } }"); return code.ToString(); }
private static List <ExplorerItem> GetSchema(CassandraKeyspaceSchema schema) { var families = new List <ExplorerItem>(); foreach (var familyDef in schema.ColumnFamilies) { var family = new ExplorerItem(familyDef.FamilyName, ExplorerItemKind.QueryableObject, ExplorerIcon.Table); family.IsEnumerable = true; family.Children = new List <ExplorerItem>(); family.Children.Add(new ExplorerItem(familyDef.KeyName.GetValue <string>(), ExplorerItemKind.Property, ExplorerIcon.Key)); foreach (var colDef in familyDef.Columns) { var col = new ExplorerItem(colDef.Name.GetValue <string>(), ExplorerItemKind.Property, ExplorerIcon.Column); family.Children.Add(col); } families.Add(family); } return(families); }
private static List<ExplorerItem> GetSchema(CassandraKeyspaceSchema schema) { var families = new List<ExplorerItem>(); foreach (var familyDef in schema.ColumnFamilies) { var family = new ExplorerItem(familyDef.FamilyName, ExplorerItemKind.QueryableObject, ExplorerIcon.Table); family.IsEnumerable = true; family.Children = new List<ExplorerItem>(); family.Children.Add(new ExplorerItem(familyDef.KeyName.GetValue<string>(), ExplorerItemKind.Property, ExplorerIcon.Key)); foreach (var colDef in familyDef.Columns) { var col = new ExplorerItem(colDef.Name.GetValue<string>(), ExplorerItemKind.Property, ExplorerIcon.Column); family.Children.Add(col); } families.Add(family); } return families; }