public override DataObject GetDataObjectBySyncEntity(
            Guid appObjPK,
            Type appObjType,
            ObjectStatus changedObjStatus,
            Guid auditChangePK)
        {
            var appObject = Helper.CreateDataObject(appObjType, appObjPK);

            if (changedObjStatus != ObjectStatus.Deleted)
            {
                //  Получаем дату операции изменения аудита связанную с SyncEntity.
                var auditDate = AuditTools.GetAuditEntityOperationTimeByPK(auditChangePK);
                //  Откатываем вычитанный изменённый объект, к состоянию на дату изменения.
                if (auditDate != null)
                {
                    AuditTools.GetObjForDate(auditDate.Value, ref appObject, Context.OnlySelfRollbackFromAudit, true);
                }
                else
                {
                    throw new Exception($"Ошибка - не удалось определить дату операции изменения аудита(AuditEntity:{auditChangePK})");
                }
            }

            //Если объект удалён, то создаём его экземпляр для передачи в сообщении ключа этого объекта.
            return(appObject);
        }
        public override List <string> GetChangedFieldBySyncEntity(ObjectStatus changedObjStatus, Guid auditChangePK)
        {
            var result = changedObjStatus != ObjectStatus.Deleted
                         ? AuditTools.GetChangeFieldFromAuditEntityByPK(auditChangePK)
                         : null;

            return(result);
        }
示例#3
0
        public StatusCollection ExecuteAudit(Person person)
        {
            var testPerson = new Person("Chad", 35);
            var auditz     = new List <AuditRunner.AuditMethod <Person> >()
            {
                AuditTools.AttributesAreSame(testPerson, new string[] { "Age" }),
                IsNotChad,
                IsOld
            };
            StatusCollection results = AuditRunner.RunAudits <Person>(person.Name /*Name for result collections*/, person /* Object to run audits on*/, auditz /* Audits to run */);

            return(results);
        }
示例#4
0
        public StatusCollection ExecuteAudit(Location location)
        {
            var testLoc = new Location("", new Coordinate(0, 0), 5.6m);
            var auditz  = new List <AuditRunner.AuditMethod <Location> >()
            {
                AuditTools.LocationPopular,
                AuditTools.NotInNawamin,
                AuditTools.AttributesAreSame(testLoc, new string[] { "Rating" }),
                IsNotJelloWorld
            };
            StatusCollection results = AuditRunner.RunAudits <Location>(location.Name /*Name for result collections*/, location /* Object to run audits on*/, auditz /* Audits to run */);

            return(results);
        }
示例#5
0
        public AuditResultProcess IsNotJelloWorld(Location l)
        {
            var res = new List <StatusObject>();

            if (l.Name == "Jello World")
            {
                res.Add(new StatusObject(2, "Not Jello World", "This is Jello World!!!"));
            }
            else
            {
                res.Add(new StatusObject(2, "Not Jello World", "This is Jello World!!!"));
            }
            return(AuditTools.PipeResults(res));
        }
示例#6
0
        public AuditResultProcess IsNotChad(Person p)
        {
            var res = new List <StatusObject>();

            if (p.Name == "Chad")
            {
                res.Add(new StatusObject(2, "Not Chad", "This is Chad!!!"));
            }
            else
            {
                res.Add(new StatusObject(0, "Not Chad", p.Name + " is not Chad!!!"));
            }
            return(AuditTools.PipeResults(res));
        }
        public override DataObject GetDataObjectBySyncEntity(
            Guid appObjPK,
            Type appObjType,
            ObjectStatus changedObjStatus,
            DateTime changedDate)
        {
            var appObject = Helper.CreateDataObject(appObjType, appObjPK);

            if (changedObjStatus != ObjectStatus.Deleted)
            {
                //Откатываем вычитанный изменённый объект, к состоянию на дату изменения.
                AuditTools.GetObjForDate(changedDate, ref appObject, true, true);
            }

            //Если объект удалён, то создаём его экземпляр для передачи в сообщении ключа этого объекта.
            return(appObject);
        }
示例#8
0
        public AuditResultProcess IsOld(Person p)
        {
            var res = new List <StatusObject>();

            if (p.Age >= 30)
            {
                res.Add(new StatusObject(2, "Is Old", p.Name + " is sooooo old bruh!"));
            }
            else if (p.Age > 18)
            {
                res.Add(new StatusObject(0, "Is Old", p.Name + "is still prety young!"));
            }
            else
            {
                res.Add(new StatusObject(1, "Is Old", p.Name + "is a little too young!"));
            }

            return(AuditTools.PipeResults(res));
        }