Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        /// <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));
            }
        }
Пример #4
0
        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();
            }
        }
Пример #5
0
        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));
        }