Exemple #1
0
        private void TrySortDate(UpdateFilter filter, bool sum = false)
        {
            filter.BeginDate = DateTime.Now.Date.AddDays(-4);
            var logs  = filter.Find(session);
            var count = logs.Count - 1;

            if (filter.SortDirection == "Desc")
            {
                for (int i = 0; i < count; i++)
                {
                    Assert.That(logs[i].RequestTime, Is.GreaterThanOrEqualTo(logs[i++].RequestTime));
                }
            }
            else
            {
                for (int i = 0; i < count; i++)
                {
                    Assert.That(logs[i].RequestTime, Is.LessThanOrEqualTo(logs[i++].RequestTime));
                }
            }
            if (!sum)
            {
                filter.SortDirection = filter.SortDirection == "Desc" ? "Asc" : "Desc";
                TrySortDate(filter, true);
            }
        }
Exemple #2
0
        public void Load_updates_by_filter()
        {
            var user1 = DataMother.CreateTestClientWithUser().Users[0];
            var user2 = DataMother.CreateTestClientWithUser(session.Load <Region>(16ul)).Users[0];

            Flush();
            var update1 = new UpdateLogEntity(user1);

            Save(update1);
            var update2 = new UpdateLogEntity(user2);

            Save(update2);

            var filter = new UpdateFilter();

            filter.RegionMask = 16;
            filter.BeginDate  = DateTime.Today.AddDays(-1);
            filter.EndDate    = DateTime.Today;
            filter.UpdateType = UpdateType.Accumulative;
            var results = filter.Find(session);

            Assert.That(results.Count, Is.GreaterThan(0));
            Assert.That(results.Any(r => r.Id == update1.Id), Is.False, "нашли запись обновления в воронеже, {0}", update1.Id);
            Assert.That(results.Any(r => r.Id == update2.Id), Is.True, "не нашли запись обновления в челябинске, {0} {1}", update2.Id, results.Implode(r => r.Id));
            filter.UpdateType = UpdateType.AccessError;
            Save(new UpdateLogEntity(user2)
            {
                UpdateType  = UpdateType.AutoOrder,
                RequestTime = DateTime.Now.AddHours(1),
                Commit      = true
            });
            Save(new UpdateLogEntity(user2)
            {
                UpdateType = UpdateType.AccessError,
            });
            results = filter.Find(session);
            Assert.IsTrue(results.Any(r => r.OkUpdate));
        }
Exemple #3
0
        public void UpdateLog(UpdateType?updateType, ulong?regionMask, uint?clientCode, uint?userId,
                              DateTime beginDate, DateTime endDate)
        {
            SetSmartBinder(AutoLoadBehavior.NullIfInvalidKey);
            //по умолчанию биндер будет пытаться проверить наши обекты, в данном контексте делать этого не следует
            Binder.Validator = null;

            var filter = new UpdateFilter();

            filter.BeginDate = beginDate;
            filter.EndDate   = endDate;

            if (updateType.HasValue)
            {
                filter.UpdateType = updateType;
                filter.RegionMask = Admin.RegionMask;

                if (regionMask.HasValue)
                {
                    filter.RegionMask &= regionMask.Value;
                }
            }
            if (clientCode.HasValue)
            {
                filter.Client = DbSession.Load <Client>(clientCode.Value);
            }
            else if (userId.HasValue)
            {
                filter.User = DbSession.Load <User>(userId.Value);
            }

            BindObjectInstance(filter, "filter");

            if (filter.Client != null)
            {
                filter.Client = DbSession.Load <Client>(filter.Client.Id);
            }

            if (filter.User != null)
            {
                filter.User = DbSession.Load <User>(filter.User.Id);
            }

            PropertyBag["beginDate"]   = filter.BeginDate;
            PropertyBag["endDate"]     = filter.EndDate;
            PropertyBag["filter"]      = filter;
            PropertyBag["logEntities"] = filter.Find(DbSession);
        }