Beispiel #1
0
        private void InitializeAuditLogVer2()
        {
            dbRepository.InitDatabase();
            dbRepository.SetVersionDb(1);
            var dateTime = DateTimeOffset.Now;

            //First audit log
            Entity.Audit audit = new Entity.Audit(Entity.Audit.GenerateNameCollection());
            audit.DataType   = DataTypeEnum.Audit.Name;
            audit.Code       = AuditCodes.InitAuditDb;
            audit.Parameters = new Dictionary <string, string>()
            {
                { AuditCodes.InitAuditDb_year, dateTime.Year.ToString() }, { AuditCodes.InitAuditDb_month, dateTime.Month.ToString() }
            };
            audit.CreatedWhen = dateTime;
            audit.UserGuid    = AppGlobal.UserSystem.UserGuid;
            audit.DeviceGuid  = AppGlobal.Device.DeviceGuid;

            var colDbDef = new Entity.AuditDbCollection();
            var cols     = new Dictionary <string, bool>();

            cols.Add(nameof(colDbDef.CollectionName), true);
            dbRepository.CreateNewCollection <Entity.AuditDbCollection>(colDbDef.GetNameCollection(), cols);

            CheckAuditCollection(audit);

            dbRepository.InsertAsync(audit, audit.GetNameCollection()).Wait();

            dbRepository.SetVersionDb(2);
        }
Beispiel #2
0
        /// <summary>
        /// Check audit collection exist and create new collection for audit if not exists
        /// </summary>
        /// <param name="db">Database</param>
        /// <param name="audit">Audit record</param>
        private void CheckAuditCollection(Entity.Audit audit)
        {
            if (dbRepository.IsExistCollection(audit.GetNameCollection()))
            {
                return;
            }
            var cols = new Dictionary <string, bool>();

            cols.Add(nameof(Entity.Audit.CreatedWhen), false);
            cols.Add(nameof(Entity.Audit.DataType), false);

            //Create new collection audit periods
            dbRepository.CreateNewCollection <Entity.Audit>(audit.GetNameCollection(), cols);

            //First audit collection
            var newAuditCol = new Entity.AuditDbCollection();

            newAuditCol.CollectionName = audit.GetNameCollection();
            newAuditCol.CreatedWhen    = audit.CreatedWhen;
            dbRepository.InsertAsync(newAuditCol).Wait();


            if (!(dbRepository.CountAsync <Entity.AuditDbCollection>().Result > AppGlobal.Log.MaxAuditCollection))
            {
                return;
            }

            var deleteCol = dbRepository.FindFirstAsync <Entity.AuditDbCollection>().Result;

            if (deleteCol == null)
            {
                return;
            }

            dbRepository.DeleteCollection(deleteCol.CollectionName);
        }