public MatrixNotificationService( IHttpClient httpClient, IOptions <MatrixConfiguration> options) { _httpClient = httpClient; _configuration = options.Value; }
public void Fluent_config() { var sql = "SELECT * FROM Table"; var config = new MatrixConfiguration(); config .Subject((ISqlSubject) new SqlSubject() .SqlQuery(sql) .Field(new Field("column1", "display1", typeof(string))) .Field(new Field("column2", "display2", typeof(int)))); Assert.AreEqual(config.Count, 1); var s = (ISqlSubject)config[0]; Assert.AreEqual(s.Sql, sql); Assert.AreEqual(s.Count, 2); var f1 = s[0]; var f2 = s[1]; Assert.AreEqual(f1.SourceName, "column1"); Assert.AreEqual(f1.DisplayName, "display1"); Assert.AreEqual(f1.DataType, typeof(string)); Assert.AreEqual(f2.SourceName, "column2"); Assert.AreEqual(f2.DisplayName, "display2"); Assert.AreEqual(f2.DataType, typeof(int)); }
public IMatrixConfiguration Restore(MatrixConfigurationDTO dto) { var configuration = new MatrixConfiguration(); var count = dto.Subjects.Length; for (int i = 0; i < count; i++) { configuration.Subject(_subjectAssembler.Restore(dto[i])); } for (int i = 0; i < count; i++) { // finish wiring up the RelationFields now that our configuration is set up // assumes Subject and Field order is equivalent between DTO's and model objects for (int f = 0; f < configuration[i].Count; f++) { if (configuration[i][f] is IRelationField) { ((IRelationField)configuration[i][f]).RelatedSubject = configuration[dto.Subjects[i].Fields[f].RelatedSubjectIndex]; } } // now complete the matrix nodes if (dto.Matrix != null) { for (int j = 0; j < count; j++) { var m = dto[i, j]; configuration.Matrix((ISqlSubject)configuration[i], (ISqlSubject)configuration[j], m.Query, m.ToolTip); } } } return(configuration); }
public BotFunctions( ISubscriptionService subscriptionService, IMatrixNotificationService notificationService, IOptions <MatrixConfiguration> options) { _subscriptionService = subscriptionService; _notificationService = notificationService; _configuration = options.Value; }
public SubscriptionService( IHttpClient httpClient, ISubscriptionProvider subscriptionProvider, CloudStorageAccount account, IOptions <MatrixConfiguration> configuration) { _httpClient = httpClient; var tableName = configuration.Value.TableName; _configuration = configuration.Value; var client = account.CreateCloudTableClient(); _table = client.GetTableReference(tableName); _subscriptionProvider = subscriptionProvider; }
public void Fluent_config_matrix() { ISqlSubject s1, s2; var config = new MatrixConfiguration(); config .Subject(s1 = (ISqlSubject) new SqlSubject() .Field(new Field("column1", "display1", typeof(string)))) .Subject(s2 = (ISqlSubject) new SqlSubject() .Field(new RelationField("column1", "display1", typeof(Guid), s1))); MatrixNode n; n = config[s1, s1]; n = config[s1, s2]; n = config[s2, s1]; n = config[s2, s2]; }
public void Fluent_config_complex_field() { ISqlSubject s1, s2; var config = new MatrixConfiguration(); config .Subject(s1 = (ISqlSubject) new SqlSubject() .Field(new Field("column1", "display1", typeof(string)))) .Subject(s2 = (ISqlSubject) new SqlSubject() .Field(new RelationField("column1", "display1", typeof(Guid), s1))); Assert.AreEqual(config.Count, 2); Assert.AreEqual(s2.Count, 1); Assert.AreEqual(s2[0].GetType(), typeof(RelationField)); RelationField f1 = (RelationField)s2[0]; Assert.AreEqual(f1.SourceName, "column1"); Assert.AreEqual(f1.DisplayName, "display1"); Assert.AreEqual(f1.DataType, typeof(Guid)); }
public Form1() { InitializeComponent(); // Instantiate our test configuration _config = new Samples.Common.TestConfiguration(); // Set up the preset view var view = new PresetView( _adapter = new PresetAdapter <Control>( new WinFormsControlFactory(), new ParameterBuilderFactory() )); // The following code is possibly a smell. The builtin ParameterBuilders that work with // dates require DateValues to be parsed from the UI controls. The default control returns // strings so it won't be able to create an SQL parameter. To overcome this, we monitor // when a new part is added to the PresetView (occurs when we call SetParts) and initialise // a date parser to do this for us. _adapter.PartCreated += (s, e) => { var junction = e.Part.SelectedBuilder as JunctionBuilder; if ((e.Part.SelectedBuilder is IDateParameterBuilder) || (junction != null && junction.Other is IDateParameterBuilder)) { e.Part.Parser = new DateParser(); } }; // Now create controls and add to form _adapter.SetParts(new FieldPathFactory().GetFields(_config[0])); view.Dock = DockStyle.Fill; splitContainer1.Panel1.Controls.Add(view); // Hook search requested event from the adapter // Usually triggered by pressing enter in one of the fields _adapter.Search += Adapter_Search; }
public static IServiceCollection AddMatrixAdapter(this IServiceCollection services, MatrixConfiguration matrixConfiguration) { if (services == null) { throw new ArgumentNullException(nameof(services)); } services.AddSingleton(matrixConfiguration ?? throw new ArgumentNullException(nameof(matrixConfiguration))); services.AddScoped <ICemigIdentityService, CemigIdentityService>(); return(services); }