예제 #1
0
        public override void UpdateReferences(ReferencesData data)
        {
            using (EventLogContext _context = EventLogContext.Create(_databaseOptions, _databaseActions))
            {
                _context.FillReferencesToSave(_system, data);
                _context.SaveChanges();

                if (_referencesCache == null)
                {
                    _referencesCache = new ReferencesDataCache(_system);
                }
                _referencesCache.FillByDatabaseContext(_context);
            }
        }
예제 #2
0
        /// <summary>Loads the specified references.</summary>
        /// <param name="refs">References data.</param>
        internal void Load(ReferencesData refs)
        {
            Verify.Argument.IsNotNull(refs, nameof(refs));

            if (refs.Heads != null)
            {
                Heads.Load(refs.Heads);
            }
            if (refs.Remotes != null)
            {
                Remotes.Load(refs.Remotes);
            }
            if (refs.Tags != null)
            {
                Tags.Load(refs.Tags);
            }
        }
        public void GetMD5Hash_Test()
        {
            ReferencesData data1;
            ReferencesData data2;

            using (EventLogReader reader = EventLogReader.CreateReader(_sampleDatabaseFileLGF))
            {
                data1 = ReferencesData.CreateFromReader(reader);
            }
            using (EventLogReader reader = EventLogReader.CreateReader(_sampleDatabaseFileLGF))
            {
                data2 = ReferencesData.CreateFromReader(reader);
            }

            string hashMD51 = MD5HashGenerator.GetMd5Hash(data1);
            string hashMD52 = MD5HashGenerator.GetMd5Hash(data2);

            Assert.Equal(hashMD51, hashMD52);
        }
            public static ReferencesData CreateFromReader(EventLogReader reader)
            {
                List <Severity> severities = new List <Severity>
                {
                    Severity.Error,
                    Severity.Information,
                    Severity.Note,
                    Severity.Unknown,
                    Severity.Warning
                };

                List <TransactionStatus> transactionStatuses = new List <TransactionStatus>
                {
                    TransactionStatus.Committed,
                    TransactionStatus.NotApplicable,
                    TransactionStatus.RolledBack,
                    TransactionStatus.Unfinished,
                    TransactionStatus.Unknown
                };

                var referenceData = new ReferencesData()
                {
                    Applications        = reader.References.Applications.Select(e => e.Value).ToList().AsReadOnly(),
                    Computers           = reader.References.Computers.Select(e => e.Value).ToList().AsReadOnly(),
                    Events              = reader.References.Events.Select(e => e.Value).ToList().AsReadOnly(),
                    Metadata            = reader.References.Metadata.Select(e => e.Value).ToList().AsReadOnly(),
                    PrimaryPorts        = reader.References.PrimaryPorts.Select(e => e.Value).ToList().AsReadOnly(),
                    SecondaryPorts      = reader.References.SecondaryPorts.Select(e => e.Value).ToList().AsReadOnly(),
                    Users               = reader.References.Users.Select(e => e.Value).ToList().AsReadOnly(),
                    WorkServers         = reader.References.WorkServers.Select(e => e.Value).ToList().AsReadOnly(),
                    Severities          = severities.ToList().AsReadOnly(),
                    TransactionStatuses = transactionStatuses.ToList().AsReadOnly()
                };

                return(referenceData);
            }
 public override void UpdateReferences(ReferencesData data)
 {
 }
예제 #6
0
 public static void FillReferencesToSave(this EventLogContext context, InformationSystemsBase system, ReferencesData data)
 {
     FillReferencesToSave(context, system, data.GetReferencesListForDatabaseType <Applications>(system));
     FillReferencesToSave(context, system, data.GetReferencesListForDatabaseType <Computers>(system));
     FillReferencesToSave(context, system, data.GetReferencesListForDatabaseType <Events>(system));
     FillReferencesToSave(context, system, data.GetReferencesListForDatabaseType <Metadata>(system));
     FillReferencesToSave(context, system, data.GetReferencesListForDatabaseType <PrimaryPorts>(system));
     FillReferencesToSave(context, system, data.GetReferencesListForDatabaseType <SecondaryPorts>(system));
     FillReferencesToSave(context, system, data.GetReferencesListForDatabaseType <Severities>(system));
     FillReferencesToSave(context, system, data.GetReferencesListForDatabaseType <TransactionStatuses>(system));
     FillReferencesToSave(context, system, data.GetReferencesListForDatabaseType <Users>(system));
     FillReferencesToSave(context, system, data.GetReferencesListForDatabaseType <WorkServers>(system));
 }
예제 #7
0
        public static IReadOnlyList <T> PrepareItemsToSave <T>(InformationSystemsBase system, ReferencesData data) where T : ReferenceObject
        {
            IReadOnlyList <T> sourceReferenceList = data.GetReferencesListForDatabaseType <T>(system);

            return(sourceReferenceList);
        }