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); } }
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)); }
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); }