private void PopulateForm() { btnChangeAll.Enabled = Controller.UserIsSheldon() && _SupplierId > 0; //Sheldon and Tertia btnUpdateSupplier.Visible = false; if (_SupplierId > 0) { btnUpdateSupplier.Visible = true; _Supplier = _DataContext.SupplierSet.Single(a => a.id == _SupplierId); _AuditTrailData = _DataContext.SupplierAuditSet .Where(a => a.SupplierId == _SupplierId) .Select(a => new SupplierAuditTrailResult { AuditDate = a.AuditTimeStamp, UserName = a.User.username, FieldName = a.FieldName, OldValue = a.OldValue, NewValue = a.NewValue }) .OrderByDescending(a => a.AuditDate) .ToList(); _BuildingData = (from m in _DataContext.SupplierBuildingSet.Where(a => a.SupplierId == _SupplierId) select new BuildingResult { SupplierBuildingId = m.id, BuildingName = m.Building.Building, Bank = m.Bank.Name, BankId = m.BankId, BranchCode = m.BranceCode, BranchName = m.BranchName, AccountNumber = m.AccountNumber, IsLinked = true, SupplierId = m.SupplierId, BuildingId = m.BuildingId }) .ToList(); } else { _Supplier = new Data.SupplierData.Supplier(); _AuditTrailData = new List <SupplierAuditTrailResult>(); _BuildingData = new List <BuildingResult>(); } BindInputs(); BindAuditTrailDataGrid(); BindBuildingsDataGrid(); }
private void TrackSupplierChanges(Astrodon.Data.SupplierData.Supplier source, Astrodon.Data.SupplierData.Supplier dest) { var modified = _DataContext.ChangeTracker.Entries().Where(p => p.State == EntityState.Modified && p.Entity is Astrodon.Data.SupplierData.Supplier); foreach (var supplier in modified) { var audit = (from propertyName in supplier.OriginalValues.PropertyNames where !Equals(supplier.OriginalValues.GetValue <object>(propertyName), supplier.CurrentValues.GetValue <object>(propertyName)) select new Data.SupplierData.SupplierAudit() { AuditTimeStamp = DateTime.Now, SupplierId = _SupplierId, UserId = Controller.user.id, FieldName = propertyName, OldValue = supplier.OriginalValues.GetValue <object>(propertyName) == null ? null : supplier.OriginalValues.GetValue <object>(propertyName).ToString(), NewValue = supplier.CurrentValues.GetValue <object>(propertyName) == null ? null : supplier.CurrentValues.GetValue <object>(propertyName).ToString() }).ToList(); _DataContext.SupplierAuditSet.AddRange(audit); } }