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;
 }
Ejemplo n.º 3
0
        /// <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");
        }
Ejemplo n.º 5
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);
        }
        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);
        }
        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);
        }