public void GetAuditDataWithARecordWithNoChanges() { SimpleDataWebServiceClient webServiceClient = Create(); InMemoryRecord record = ProductionRecords.NewRecord().MarkAsNew(); SubmitDataRequest submitRequest = new SubmitDataRequest { Credentials = CreateCredentials(), SubmitDataRecords = new[] { record.ConvertToSubmitDataRecord() } }; webServiceClient.SubmitData(submitRequest); Assert.That(DatabaseRecords, Is.Not.Empty); int recordId = DatabaseRecords[0].RecordId; GetAuditDataRequest request = new GetAuditDataRequest { Credentials = CreateCredentials(), Filter = new GetAuditDataFilter { Location = location, Module = AmplaModules.Production, SetId = Convert.ToString(recordId) } }; GetAuditDataResponse response = webServiceClient.GetAuditData(request); Assert.That(response.RowSets, Is.Not.Empty); Assert.That(response.RowSets[0].Rows, Is.Empty); }
public AmplaGetAuditDataRecordBinding(GetAuditDataResponse response, AmplaRecord record, List <AmplaAuditRecord> records, IModelProperties <TModel> modelProperties) { this.response = response; this.record = record; this.records = records; this.modelProperties = modelProperties; }
/// <summary> /// Gets the versions of the model /// </summary> /// <param name="id">The unique identifier.</param> /// <returns></returns> public ModelVersions GetVersions(int id) { IAmplaViewProperties <TModel> amplaViewProperties = GetViewProperties(null); amplaViewProperties.Enforce.CanView(); FilterValue idFilter = new FilterValue("Id", Convert.ToString(id)); FilterValue deletedFilter = new FilterValue("Deleted", ""); GetDataRequest dataRequest = GetDataRequest(false, idFilter, deletedFilter); GetDataResponse dataResponse = webServiceClient.GetData(dataRequest); TModel model; AmplaRecord amplaRecord = FindAmplaRecord(dataResponse, ModelProperties, amplaViewProperties, out model); if (amplaRecord != null) { var request = GetAuditDataRequest(amplaRecord); GetAuditDataResponse response = webServiceClient.GetAuditData(request); List <AmplaAuditRecord> auditRecords = new List <AmplaAuditRecord>(); IAmplaBinding binding = new AmplaGetAuditDataRecordBinding <TModel>(response, amplaRecord, auditRecords, modelProperties); if (binding.Validate() && binding.Bind()) { AmplaAuditRecord auditRecord = auditRecords.Count > 0 ? auditRecords[0] : null; ModelVersions modelVersions = new ModelVersions(amplaRecord); IAmplaBinding historyBinding = new AmplaGetDataVersionsBinding <TModel>(amplaRecord, auditRecord, model, modelVersions, modelProperties, amplaViewProperties); if (historyBinding.Validate() && historyBinding.Bind()) { return(modelVersions); } } } return(null); }
public void GetAuditDataWithARecordWithChanges() { SimpleDataWebServiceClient webServiceClient = Create(); InMemoryRecord record = ProductionRecords.NewRecord().MarkAsNew(); record.SetFieldValue("Field 1", 150); SubmitDataRequest submitRequest = new SubmitDataRequest { Credentials = CreateCredentials(), SubmitDataRecords = new[] { record.ConvertToSubmitDataRecord() } }; webServiceClient.SubmitData(submitRequest); Assert.That(DatabaseRecords, Is.Not.Empty); int recordId = DatabaseRecords[0].RecordId; InMemoryRecord updateRecord = new InMemoryRecord(ProductionViews.StandardView()) { Location = record.Location, Module = record.Module, RecordId = recordId }; updateRecord.SetFieldValue("Field 1", 200); SubmitDataRequest update = new SubmitDataRequest { Credentials = CreateCredentials(), SubmitDataRecords = new[] { updateRecord.ConvertToSubmitDataRecord() } }; webServiceClient.SubmitData(update); GetAuditDataRequest request = new GetAuditDataRequest { Credentials = CreateCredentials(), Filter = new GetAuditDataFilter { Location = location, Module = AmplaModules.Production, SetId = Convert.ToString(recordId) } }; GetAuditDataResponse response = webServiceClient.GetAuditData(request); AssertAuditTableContains(response, location, recordId, "Field 1", "150", "200"); }
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); }
public void GetAuditData() { SimpleDataWebServiceClient webServiceClient = Create(); GetAuditDataRequest request = new GetAuditDataRequest { Credentials = CreateCredentials(), Filter = new GetAuditDataFilter { Location = location, Module = AmplaModules.Production } }; GetAuditDataResponse response = webServiceClient.GetAuditData(request); Assert.That(response.RowSets, Is.Not.Empty); Assert.That(response.RowSets[0].Rows, Is.Empty); }
private static void AssertAuditTableContains(GetAuditDataResponse response, string objectId, int id, string field, string oldValue, string newValue) { Assert.That(response.RowSets, Is.Not.Empty); Assert.That(response.RowSets[0].Rows, Is.Not.Empty); int found = 0; string setId = Convert.ToString(id); foreach (GetAuditDataRow row in response.RowSets[0].Rows) { if (row.Field == field && row.Location == objectId && row.SetId == setId) { Assert.That(row.EditedValue, Is.EqualTo(newValue)); Assert.That(row.OriginalValue, Is.EqualTo(oldValue)); found++; } } Assert.That(found, Is.EqualTo(1), "Field: {0} not found", field); }