Exemple #1
0
        public GetAuditDataResponse GetAuditData(GetAuditDataRequest request)
        {
            CheckCredentials(request.Credentials);

            InMemoryFilterMatcher filterMatcher = new InMemoryFilterMatcher(request.Filter);

            string module = request.Filter.Module.ToString();
            List <InMemoryAuditRecord> auditRecords = amplaDatabase.GetAuditRecords(module).Where(filterMatcher.Matches).ToList();

            List <GetAuditDataRow> rows = new List <GetAuditDataRow>();

            foreach (InMemoryAuditRecord record in auditRecords)
            {
                GetAuditDataRow row = new GetAuditDataRow
                {
                    EditedBy       = record.EditedBy,
                    EditedDateTime = record.EditedDateTime,
                    EditedValue    = record.EditedValue,
                    Field          = record.Field,
                    Location       = record.Location,
                    OriginalValue  = record.OriginalValue,
                    RecordType     = record.RecordType,
                    SetId          = record.SetId
                };

                rows.Add(row);
            }

            GetAuditDataResponse response = new GetAuditDataResponse
            {
                Context = new GetAuditDataResponseContext
                {
                    Filter = new GetAuditDataResponseFilter
                    {
                        Module             = request.Filter.Module,
                        Location           = request.Filter.Location,
                        RecordType         = request.Filter.RecordType,
                        SetId              = request.Filter.SetId,
                        EditedBy           = request.Filter.EditedBy,
                        EditedSamplePeriod = null
                    }
                },
                RowSets = new[]
                {
                    new GetAuditDataRowSet
                    {
                        Rows = rows.ToArray(),
                    }
                }
            };

            return(response);
        }
Exemple #2
0
        /// <summary>
        /// Gets the data.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public GetDataResponse GetData(GetDataRequest request)
        {
            return(TryCatchThrowFault(() =>
            {
                XmlDocument xmlDoc = new XmlDocument();

                CheckCredentials(request.Credentials);

                InMemoryFilterMatcher filterMatcher = new InMemoryFilterMatcher(request.Filter);

                List <InMemoryRecord> recordsToReturn = new List <InMemoryRecord>();

                Dictionary <int, InMemoryRecord> database = amplaDatabase.GetModuleRecords(request.View.Module.ToString());

                if (database.Count > 0)
                {
                    recordsToReturn = database.Values.Where(filterMatcher.Matches).ToList();
                }
                bool resolveIdentifiers = request.OutputOptions != null && request.OutputOptions.ResolveIdentifiers;

                List <Row> rows = new List <Row>();
                foreach (InMemoryRecord record in recordsToReturn)
                {
                    Row row = new Row {
                        id = Convert.ToString(record.RecordId)
                    };
                    List <XmlElement> values = new List <XmlElement>();
                    foreach (FieldValue value in record.Fields)
                    {
                        string name = XmlConvert.EncodeName(value.Name);
                        XmlElement element = xmlDoc.CreateElement(name, "http://www.citect.com/Ampla/Data/2008/06");
                        element.InnerText = value.ResolveValue(resolveIdentifiers);
                        values.Add(element);
                    }
                    row.Any = values.ToArray();
                    rows.Add(row);
                }

                string module = request.View.Module.ToString();
                string location = request.Filter.Location;
                GetDataResponse response = new GetDataResponse
                {
                    Context = new GetDataResponseContext
                    {
                        Context = request.View.Context,
                        Metadata = request.Metadata,
                        Mode = request.View.Mode,
                        Module = request.View.Module,
                        ResolveIdentifiers = resolveIdentifiers,
                        ViewName = request.View.Name,
                        Fields = request.View.Fields,
                        ModelFields = request.View.ModelFields,
                    },
                    RowSets = new[]
                    {
                        new RowSet
                        {
                            Rows = rows.ToArray(),
                            Columns = request.Metadata ? GetColumns(module, location) : null
                        }
                    }
                };

                return response;
            }));
        }