internal IEnumerable <DataEntity> ExecuteQuery(Core.ConnectorApi.Query.Query query) { this.SetQuery(query); var ds = DataServicesClient.ListRegSessions(Connection, this.KeyPairs); var dataEntities = GetDataEntites(ds, query); PopulateParentData(dataEntities); return(dataEntities); }
internal IEnumerable <DataEntity> ExecuteQuery(Core.ConnectorApi.Query.Query query) { this.SetQuery(query); var ds = DataServicesClient.ListAttendees(this.Connection, this.ModifiedAfterDate, null, this.KeyPairs); var dataEntities = GetDataEntites(ds, query); PopulateChildData(dataEntities); return(dataEntities); }
/// <summary> /// This method will set any parameters that can be passed directly /// to the restful web calls vs querying in memory /// </summary> /// <param name="query"></param> virtual protected void SetQuery(Core.ConnectorApi.Query.Query query) { this.Query = query; if (query != null && query.Constraints != null && query.Constraints.ExpressionType == ExpressionType.Comparison) { ComparisonExpression lookupCondition = query.Constraints as ComparisonExpression; //We need to deal with the equality operator since the api supports exact match on key pair values if (lookupCondition.Operator == ComparisonOperator.Equal && lookupCondition.RightValue.Value != null) { var key = lookupCondition.LeftValue.Value.ToString().Replace($"{this.Name}.", string.Empty); var value = lookupCondition.RightValue.Value.ToString(); this.KeyPairs.Add(key, value); } //We have to make a presumption that we will key off the name last modified from our meta data if (lookupCondition.Operator == ComparisonOperator.Greater && lookupCondition.LeftValue.Value.ToString().Contains($"{Constants.LastModifiedParameter}") && lookupCondition.RightValue.Value != null) { System.DateTime d; if (System.DateTime.TryParse(lookupCondition.RightValue.Value.ToString(), out d)) { this.ModifiedAfterDate = d; } } //if (lookupCondition.Operator == ComparisonOperator.Greater && lookupCondition.LeftValue.Value.ToString().Contains($".{Constants.AttendeeLastModifiedParameter}") // && lookupCondition.RightValue.Value != null) //{ // System.DateTime d; // if (System.DateTime.TryParse(lookupCondition.RightValue.Value.ToString(), out d)) // this.AttendeeModifiedAfterDate = d; //} } if (query != null && query.RootEntity != null && query.RootEntity.ChildList != null && query.RootEntity.ChildList.Count > 0) { this.HasChildren = true; query.RootEntity.ChildList.ForEach(c => this.ChildNames.Add(c.Name)); } }
public IEnumerable <DataEntity> ExecuteQuery(Core.ConnectorApi.Query.Query query) { switch (query.RootEntity.ObjectDefinitionFullName) { case "Event": var evnt = new ObjectDefinitions.Event(this.Connection); return(evnt.ExecuteQuery(query)); case "Attendee": var attendee = new ObjectDefinitions.Attendee(this.Connection); return(attendee.ExecuteQuery(query)); case "RegSession": var regSession = new ObjectDefinitions.RegSession(this.Connection); return(regSession.ExecuteQuery(query)); case "Session": var session = new ObjectDefinitions.Session(this.Connection); return(session.ExecuteQuery(query)); case "Meeting": var meeting = new ObjectDefinitions.Meeting(this.Connection); return(meeting.ExecuteQuery(query)); case "Speaker": var speaker = new ObjectDefinitions.Speaker(this.Connection); return(speaker.ExecuteQuery(query)); case "SessionTrack": var sessiontrack = new ObjectDefinitions.SessionTrack(this.Connection); return(sessiontrack.ExecuteQuery(query)); case "FinancialTransaction": var financialTransaction = new ObjectDefinitions.FinancialTransaction(this.Connection); return(financialTransaction.ExecuteQuery(query)); default: throw new NotImplementedException(); } }
virtual protected IEnumerable <DataEntity> GetDataEntites(System.Data.DataSet ds, Core.ConnectorApi.Query.Query query) { var table = ds.Tables["ResultSet"]; if (table.Rows.Count == 0) { return(new List <DataEntity>()); } var filteredRows = table.Select(query.ToSelectExpression()); return(filteredRows.ToDataEntities(query.RootEntity.ObjectDefinitionFullName, this.PropertyDefinitions)); }