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); }
/// <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; })); }