public Server(IProjectionContext projectionContext, EventReader eventReader, IConsole console, Projections.OrderHandler orderHandler, WebServer webServer) { _projectionContext = projectionContext; _eventReader = eventReader; _console = console; _orderHandler = orderHandler; _webServer = webServer; }
// END CUT HERE // BEGIN CUT HERE public static void Main() { try { Projections ___test = new Projections(); ___test.run_test(-1); } catch(Exception e) { //Console.WriteLine(e.StackTrace); Console.WriteLine(e.ToString()); } }
public void Project(Projections type) { switch (type) { case Projections.Cabinet: ProjectCabinet(); break; case Projections.Perspective: ProjectPerspective(); break; } }
private void DoSearch(bool isExport) { DetachedCriteria selectCriteria = DetachedCriteria.For(typeof(DssExportHistory)); DetachedCriteria selectCountCriteria = DetachedCriteria.For(typeof(DssExportHistory)).SetProjection(Projections.Count("Id")); selectCriteria.Add(Expression.Or(Expression.Eq("IsActive", true), Expression.IsNull("TransNo"))); selectCountCriteria.Add(Expression.Or(Expression.Eq("IsActive", true), Expression.IsNull("TransNo"))); if (this.tbStartDate.Text.Trim() != string.Empty) { DateTime startDate = DateTime.Parse(this.tbStartDate.Text.Trim()); selectCriteria.Add(Expression.Ge("CreateDate", startDate)); selectCountCriteria.Add(Expression.Ge("CreateDate", startDate)); } if (this.tbEndDate.Text.Trim() != string.Empty) { DateTime endDate = DateTime.Parse(this.tbEndDate.Text.Trim()); selectCriteria.Add(Expression.Lt("CreateDate", endDate.AddDays(1))); selectCountCriteria.Add(Expression.Lt("CreateDate", endDate.AddDays(1))); } if (isExport) { ExportEvent((new object[] { selectCriteria, selectCountCriteria }), null); } else { SearchEvent((new object[] { selectCriteria, selectCountCriteria }), null); } }
/// <summary> /// Gets the permissions for the specified user and entity /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="user">The user.</param> /// <param name="entity"></param> /// <returns></returns> public Permission[] GetPermissionsFor <TEntity>(IUser user, TEntity entity) where TEntity : class { Guid key = Security.ExtractKey(entity); EntitiesGroup[] entitiesGroups = authorizationRepository.GetAssociatedEntitiesGroupsFor(entity); DetachedCriteria criteria = DetachedCriteria.For <Permission>() .Add(Expression.Eq("User", user) || Subqueries.PropertyIn("UsersGroup.Id", SecurityCriterions.AllGroups(user).SetProjection(Projections.Id()))) .Add(Expression.Eq("EntitySecurityKey", key) || Expression.In("EntitiesGroup", entitiesGroups)); return(FindResults(criteria)); }
public override void AddProjection(ProjectionList projections) { projections.Add(Projections.Property("class")); }
public async Task ManyToManyCollectionOptimisticLockingWithMergeAsync() { ClearCounts(); Plan pOrig = new Plan("plan"); Contract cOrig = new Contract(null, "gail", "phone"); pOrig.AddContract(cOrig); ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); await(s.PersistAsync(pOrig)); await(t.CommitAsync()); s.Close(); AssertInsertCount(2); AssertUpdateCount(0); ClearCounts(); s = OpenSession(); t = s.BeginTransaction(); Plan p = await(s.GetAsync <Plan>(pOrig.Id)); Contract newC = new Contract(null, "sherman", "note"); p.AddContract(newC); await(t.CommitAsync()); s.Close(); AssertInsertCount(1); AssertUpdateCount(isContractVersioned ? 1 : 0); ClearCounts(); s = OpenSession(); t = s.BeginTransaction(); pOrig.RemoveContract(cOrig); try { await(s.MergeAsync(pOrig)); Assert.That(isContractVersioned, Is.False); } catch (StaleObjectStateException) { Assert.That(isContractVersioned, Is.True); } finally { await(t.RollbackAsync()); } s.Close(); s = OpenSession(); t = s.BeginTransaction(); p = await(s.CreateCriteria <Plan>().UniqueResultAsync <Plan>()); await(s.DeleteAsync(p)); Assert.That(await(s.CreateCriteria <Plan>().SetProjection(Projections.RowCountInt64()).UniqueResultAsync <long>()), Is.EqualTo(0L)); Assert.That(await(s.CreateCriteria <Contract>().SetProjection(Projections.RowCountInt64()).UniqueResultAsync <long>()), Is.EqualTo(0L)); await(t.CommitAsync()); s.Close(); AssertUpdateCount(0); AssertDeleteCount(3); }
/// <summary> /// Gets the permissions for the specified user /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public Permission[] GetPermissionsFor(IUser user) { DetachedCriteria criteria = DetachedCriteria.For <Permission>() .Add(Expression.Eq("User", user) || Subqueries.PropertyIn("UsersGroup.Id", SecurityCriterions.AllGroups(user).SetProjection(Projections.Id()))); return(FindResults(criteria)); }
public async Task MoveManyToManyElementToExistingEntityCollectionAsync() { ClearCounts(); Plan p = new Plan("plan"); p.AddContract(new Contract(null, "gail", "phone")); Plan p2 = new Plan("plan2"); ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); await(s.PersistAsync(p)); await(s.PersistAsync(p2)); await(t.CommitAsync()); s.Close(); AssertInsertCount(3); AssertUpdateCount(0); ClearCounts(); s = OpenSession(); t = s.BeginTransaction(); p = await(s.CreateCriteria <Plan>().Add(Restrictions.IdEq(p.Id)).UniqueResultAsync <Plan>()); Assert.That(p.Contracts.Count, Is.EqualTo(1)); Contract c = p.Contracts.First(); Assert.That(c.CustomerName, Is.EqualTo("gail")); if (isPlanContractsBidirectional) { Assert.That(c.Plans.First(), Is.SameAs(p)); } p.RemoveContract(c); await(t.CommitAsync()); s.Close(); AssertInsertCount(0); AssertUpdateCount(isPlanVersioned && isContractVersioned ? 2 : 0); ClearCounts(); s = OpenSession(); t = s.BeginTransaction(); p2 = await(s.CreateCriteria <Plan>().Add(Restrictions.IdEq(p2.Id)).UniqueResultAsync <Plan>()); c = await(s.CreateCriteria <Contract>().Add(Restrictions.IdEq(c.Id)).UniqueResultAsync <Contract>()); p2.AddContract(c); await(t.CommitAsync()); s.Close(); AssertInsertCount(0); AssertUpdateCount(isPlanVersioned && isContractVersioned ? 2 : 0); ClearCounts(); s = OpenSession(); t = s.BeginTransaction(); p = await(s.CreateCriteria <Plan>().Add(Restrictions.IdEq(p.Id)).UniqueResultAsync <Plan>()); p2 = await(s.CreateCriteria <Plan>().Add(Restrictions.IdEq(p2.Id)).UniqueResultAsync <Plan>()); /* * if (isPlanContractsInverse) { * Assert.That(p.Contracts.Count, Is.EqualTo(1)); * c = p.Contracts.First(); * Assert.That(c.CustomerName, Is.EqualTo("gail")); * if (isPlanContractsBidirectional) { * Assert.That(c.Plans.First(), Is.SameAs(p)); * } * assertEquals( 0, p2.getContracts().size() ); * } * else { */ Assert.That(p.Contracts.Count, Is.EqualTo(0)); Assert.That(p2.Contracts.Count, Is.EqualTo(1)); c = p2.Contracts.First(); Assert.That(c.CustomerName, Is.EqualTo("gail")); if (isPlanContractsBidirectional) { Assert.That(c.Plans.First(), Is.SameAs(p2)); } //} await(s.DeleteAsync(p)); await(s.DeleteAsync(p2)); Assert.That(await(s.CreateCriteria <Plan>().SetProjection(Projections.RowCountInt64()).UniqueResultAsync()), Is.EqualTo(0L)); Assert.That(await(s.CreateCriteria <Contract>().SetProjection(Projections.RowCountInt64()).UniqueResultAsync()), Is.EqualTo(0L)); await(t.CommitAsync()); s.Close(); AssertUpdateCount(0); AssertDeleteCount(3); }
public async Task CreateWithNonEmptyManyToManyCollectionMergeWithNewElementAsync() { ClearCounts(); Plan p = new Plan("plan"); Contract c = new Contract(null, "gail", "phone"); p.AddContract(c); ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); await(s.PersistAsync(p)); await(t.CommitAsync()); s.Close(); AssertInsertCount(2); AssertUpdateCount(0); ClearCounts(); Contract newC = new Contract(null, "yogi", "mail"); p.AddContract(newC); s = OpenSession(); t = s.BeginTransaction(); p = (Plan)await(s.MergeAsync(p)); await(t.CommitAsync()); s.Close(); AssertInsertCount(1); AssertUpdateCount(isContractVersioned && isPlanVersioned ? 1 : 0); // NH-specific: Hibernate issues a separate UPDATE for the version number ClearCounts(); s = OpenSession(); t = s.BeginTransaction(); p = await(s.CreateCriteria <Plan>().UniqueResultAsync <Plan>()); Assert.That(p.Contracts.Count, Is.EqualTo(2)); foreach (Contract aContract in p.Contracts) { if (aContract.Id == c.Id) { Assert.That(aContract.CustomerName, Is.EqualTo("gail")); } else if (!aContract.CustomerName.Equals(newC.CustomerName)) { Assert.Fail("unknown contract:" + aContract.CustomerName); } if (isPlanContractsBidirectional) { Assert.That(aContract.Plans.First(), Is.SameAs(p)); } } await(s.DeleteAsync(p)); Assert.That(await(s.CreateCriteria <Plan>().SetProjection(Projections.RowCountInt64()).UniqueResultAsync()), Is.EqualTo(0L)); Assert.That(await(s.CreateCriteria <Contract>().SetProjection(Projections.RowCountInt64()).UniqueResultAsync()), Is.EqualTo(0L)); await(t.CommitAsync()); s.Close(); AssertUpdateCount(0); AssertDeleteCount(3); }
private DetachedCriteria getDetachedEvents(Int32 top, string[] codigosMensaje, Byte[] estados, DateTime?from, DateTime?to, DateTime?expiresOn, int?maxMonths, Boolean?esPopup, Boolean?reqAtencion, Int32?lastId) { var result = DetachedCriteria.For <LogMensajeAdmin>("dlm"); if (codigosMensaje.Length > 0) { var mdc = DetachedCriteria.For <Mensaje>("dm") .SetProjection(Projections.Property("Id")) .Add(Restrictions.In(Projections.Property <Mensaje>(lm => lm.Codigo), codigosMensaje)); result.Add(Subqueries.PropertyIn("Mensaje.Id", mdc)); } if (expiresOn != null) { result.Add(Restrictions.Gt(Projections.Property <LogMensajeAdmin>(lm => lm.Expiracion), expiresOn)); } if (esPopup != null) { result.CreateAlias("Accion", "a", JoinType.InnerJoin) .Add(Restrictions.Eq("a.EsPopUp", esPopup.Value)); } #region Por Id/Estado o RequiereAtencion if ((esPopup ?? false) && (reqAtencion ?? false)) { var conj2 = Restrictions.Conjunction() .Add(Restrictions.Eq("Estado", (byte)0)) .Add(Restrictions.Eq("a.RequiereAtencion", true)); result.Add(conj2); } else { var conj1 = Restrictions.Conjunction(); if (from != null || to != null || maxMonths != null) { if (maxMonths != null) { var minDesde = DateTime.UtcNow.AddMonths(-maxMonths.Value); from = (@from ?? DateTime.MinValue) > minDesde ? from : minDesde; } if (from != null && to != null) { conj1.Add(Restrictions.Between(Projections.Property <LogMensajeAdmin>(lm => lm.Fecha), from, to)); } else { conj1.Add(Restrictions.Ge(Projections.Property <LogMensajeAdmin>(lm => lm.Fecha), from)); } } if (estados.Length > 0) { conj1.Add(Restrictions.In(Projections.Property <LogMensajeAdmin>(lm => lm.Estado), estados)); } if (lastId != null && lastId > 0) { conj1.Add(Restrictions.Gt(Projections.Property <LogMensajeAdmin>(lm => lm.Id), lastId)); } result.Add(conj1); } #endregion if (top > 0) { result.SetMaxResults(top); } result.SetProjection(Projections.Property <LogMensajeAdmin>(lm => lm.Id)); return(result); }
/// <summary>Metoda stránkování (úprava na datové vrstvě).</summary> /// <param name="count">kolik fotografií vracím</param> /// <param name="page">kterou stránku chci zobrazit</param> /// <param name="totalPhotographs">(out výstupní parametr) kolik fotografií celkem existuje</param> public IList <Photography> GetPhotographsPaged(int count, int page, out int totalPhotographs) { totalPhotographs = session.CreateCriteria <Photography>().SetProjection(Projections.RowCount()).UniqueResult <int>(); return(session.CreateCriteria <Photography>().SetFirstResult((page - 1) * count).SetMaxResults(count).List <Photography>()); }
public void Should_Filter_Null_Or_Whitespace_Column_Correctly() { var category = DatabaseTestDataProvider.ProvideRandomTestItemCategory(); category.Name = " "; Repository.Save(category); UnitOfWork.Commit(); TestItemCategory alias = null; var loadedCategory = Repository .AsQueryOver(() => alias) .Where(RestrictionsExtensions.IsNullOrWhiteSpace(Projections.Property(() => alias.Name))) .And(() => alias.Id == category.Id) .SingleOrDefault <TestItemCategory>(); Assert.IsNotNull(loadedCategory); Assert.AreEqual(category.Id, loadedCategory.Id); }
public async Task ExecutableCriteriaAsync() { // All query below don't have sense, are only to test if all needed classes are serializable // Basic criterion DetachedCriteria dc = DetachedCriteria.For(typeof(Student)) .Add(Expression.Between("Name", "aaaaa", "zzzzz")) .Add(Expression.EqProperty("Name", "Name")) .Add(Expression.Ge("Name", "a")) .Add(Expression.GeProperty("Name", "Name")) .Add(Expression.Gt("Name", "z")) .Add(Expression.GtProperty("Name", "Name")) .Add(Expression.IdEq(1)) .Add(Expression.In("Name", new string[] { "Gavin", "Ralph" })) .Add(Expression.InsensitiveLike("Name", "GAVIN")) .Add(Expression.IsEmpty("Enrolments")) .Add(Expression.IsNotEmpty("Enrolments")) .Add(Expression.IsNotNull("PreferredCourse")) .Add(Expression.IsNull("PreferredCourse")) .Add(Expression.Le("Name", "a")) .Add(Expression.LeProperty("Name", "Name")) .Add(Expression.Lt("Name", "z")) .Add(Expression.LtProperty("Name", "Name")) .Add(Expression.Like("Name", "G%")) .Add(Expression.Not(Expression.Eq("Name", "Ralph"))) .Add(Expression.NotEqProperty("Name", "Name")) .AddOrder(Order.Asc("StudentNumber")) .SetProjection(Property.ForName("StudentNumber")); await(SerializeAndListAsync(dc)); // Like match modes dc = DetachedCriteria.For(typeof(Student)) .Add(Expression.Like("Name", "Gavin", MatchMode.Anywhere)) .Add(Expression.Like("Name", "Gavin", MatchMode.End)) .Add(Expression.Like("Name", "Gavin", MatchMode.Exact)) .Add(Expression.Like("Name", "Gavin", MatchMode.Start)); await(SerializeAndListAsync(dc)); // Logical Expression dc = DetachedCriteria.For(typeof(Student)) .Add(Expression.Or(Expression.Eq("Name", "Ralph"), Expression.Eq("Name", "Gavin"))) .Add( Expression.And(Expression.Gt("StudentNumber", 1L), Expression.Lt("StudentNumber", 10L))); await(SerializeAndListAsync(dc)); // Projections dc = DetachedCriteria.For(typeof(Enrolment)) .SetProjection(Projections.Distinct(Projections.ProjectionList() .Add(Projections.Property("StudentNumber"), "stNumber") .Add(Projections.Property("CourseCode"), "cCode"))) .Add(Expression.Lt("StudentNumber", 668L)); await(SerializeAndListAsync(dc)); if (TestDialect.SupportsCountDistinct) { dc = DetachedCriteria.For(typeof(Enrolment)) .SetProjection(Projections.Count("StudentNumber").SetDistinct()); await(SerializeAndListAsync(dc)); } dc = DetachedCriteria.For(typeof(Enrolment)) .SetProjection(Projections.ProjectionList() .Add(Projections.Count("StudentNumber")) .Add(Projections.Max("StudentNumber")) .Add(Projections.Min("StudentNumber")) .Add(Projections.Avg("StudentNumber"))); await(SerializeAndListAsync(dc)); // Junctions dc = DetachedCriteria.For(typeof(Student)) .Add(Expression.Conjunction() .Add(Expression.Eq("Name", "Ralph")) .Add(Expression.Eq("StudentNumber", 1L))) .Add(Expression.Disjunction() .Add(Expression.Eq("Name", "Ralph")) .Add(Expression.Eq("Name", "Gavin"))); await(SerializeAndListAsync(dc)); // Subquery dc = DetachedCriteria.For(typeof(Student)) .Add(Property.ForName("StudentNumber").Eq(232L)) .SetProjection(Property.ForName("Name")); DetachedCriteria dcs = DetachedCriteria.For(typeof(Student)) .Add(Subqueries.PropertyEqAll("Name", dc)); await(SerializeAndListAsync(dc)); // SQLCriterion dc = DetachedCriteria.For(typeof(Student)) .Add(Expression.Sql("{alias}.Name = 'Gavin'")); await(SerializeAndListAsync(dc)); // SQLProjection dc = DetachedCriteria.For(typeof(Enrolment)) .SetProjection(Projections.SqlProjection("1 as constOne, count(*) as countStar", new String[] { "constOne", "countStar" }, new IType[] { NHibernateUtil.Int32, NHibernateUtil.Int32 })); await(SerializeAndListAsync(dc)); dc = DetachedCriteria.For(typeof(Student)) .SetProjection( Projections.SqlGroupProjection("COUNT({alias}.studentId), {alias}.preferredCourseCode", "{alias}.preferredCourseCode", new string[] { "studentsOfCourse", "CourseCode" }, new IType[] { NHibernateUtil.Int32, NHibernateUtil.Int32 })); await(SerializeAndListAsync(dc)); // Result transformers dc = DetachedCriteria.For(typeof(Enrolment)) .CreateAlias("Student", "st") .CreateAlias("Course", "co") .SetProjection(Projections.ProjectionList() .Add(Projections.Property("st.Name"), "studentName") .Add(Projections.Property("co.Description"), "courseDescription") ) .AddOrder(Order.Desc("studentName")) .SetResultTransformer(Transformers.AliasToBean(typeof(StudentDTO))); await(SerializeAndListAsync(dc)); }
private static void Game_OnGameLoad(EventArgs args) { try { Player = EloBuddy.Player.Instance; MapId = (int)LeagueSharp.Common.Utility.Map.GetMap().Type; Rand = new Random(); GetSpellsInGame(); GetSmiteSlot(); GetGameTroysInGame(); GetAurasInGame(); GetHeroesInGame(); GetComboDamage(); //Helpers.CreateLogPath(); Origin = new Menu("Activator", "activator", true); Menu cmenu = new Menu("Cleansers", "cmenu"); GetItemGroup("Items.Cleansers").ForEach(t => NewItem((CoreItem)NewInstance(t), cmenu)); CreateSubMenu(cmenu, false); Origin.AddSubMenu(cmenu); Menu dmenu = new Menu("Defensives", "dmenu"); GetItemGroup("Items.Defensives").ForEach(t => NewItem((CoreItem)NewInstance(t), dmenu)); CreateSubMenu(dmenu, false); Origin.AddSubMenu(dmenu); Menu smenu = new Menu("Summoners", "smenu"); GetItemGroup("Summoners").ForEach(t => NewSumm((CoreSum)NewInstance(t), smenu)); CreateSubMenu(smenu, true, true); Origin.AddSubMenu(smenu); Menu omenu = new Menu("Offensives", "omenu"); GetItemGroup("Items.Offensives").ForEach(t => NewItem((CoreItem)NewInstance(t), omenu)); CreateSubMenu(omenu, true); Origin.AddSubMenu(omenu); Menu imenu = new Menu("Consumables", "imenu"); GetItemGroup("Items.Consumables").ForEach(t => NewItem((CoreItem)NewInstance(t), imenu)); Origin.AddSubMenu(imenu); Menu amenu = new Menu("Auto Spells", "amenu"); GetItemGroup("Spells.Evaders").ForEach(t => NewSpell((CoreSpell)NewInstance(t), amenu)); GetItemGroup("Spells.Shields").ForEach(t => NewSpell((CoreSpell)NewInstance(t), amenu)); GetItemGroup("Spells.Health").ForEach(t => NewSpell((CoreSpell)NewInstance(t), amenu)); GetItemGroup("Spells.Slows").ForEach(t => NewSpell((CoreSpell)NewInstance(t), amenu)); GetItemGroup("Spells.Heals").ForEach(t => NewSpell((CoreSpell)NewInstance(t), amenu)); CreateSubMenu(amenu, false); Origin.AddSubMenu(amenu); Menu zmenu = new Menu("Misc/Settings", "settings"); if (SmiteInGame) { Menu ddmenu = new Menu("Drawings", "drawings"); ddmenu.AddItem(new MenuItem("drawsmitet", "Draw Smite Text")).SetValue(true); ddmenu.AddItem(new MenuItem("drawfill", "Draw Smite Fill")).SetValue(true); ddmenu.AddItem(new MenuItem("drawsmite", "Draw Smite Range")).SetValue(true); zmenu.AddSubMenu(ddmenu); } var bbmenu = new Menu("Debug Tools", "bbmenu"); bbmenu.AddItem(new MenuItem("acdebug", "Debug Income Damage")).SetValue(false); bbmenu.AddItem(new MenuItem("acdebug2", "Debug Item Priority")).SetValue(false); bbmenu.AddItem(new MenuItem("dumpdata", "Dump Spell Data")).SetValue(false); zmenu.AddSubMenu(bbmenu); zmenu.AddItem(new MenuItem("autolevelup", "Auto Level Ultimate")).SetValue(true).SetTooltip("Level 6 Only"); zmenu.AddItem(new MenuItem("autotrinket", "Auto Upgrade Trinket")).SetValue(false); zmenu.AddItem(new MenuItem("healthp", "Ally Priority:")).SetValue(new StringList(new[] { "Low HP", "Most AD/AP", "Most HP" }, 1)); zmenu.AddItem(new MenuItem("weightdmg", "Weight Income Damage (%)")) .SetValue(new Slider(115, 100, 150)) .SetTooltip("Make Activator# think you are taking more damage than calulated."); zmenu.AddItem(new MenuItem("usecombo", "Combo (active)")).SetValue(new KeyBind(32, KeyBindType.Press, true)); Menu uumenu = new Menu("Spell Database", "evadem"); LoadSpellMenu(uumenu); zmenu.AddSubMenu(uumenu); Origin.AddSubMenu(zmenu); Origin.AddToMainMenu(); // drawings Drawings.Init(); // handlers Projections.Init(); Trinkets.Init(); // tracks dangerous or lethal buffs/auras Buffs.StartOnUpdate(); // tracks gameobjects Gametroys.StartOnUpdate(); // on bought item //Obj_AI_Base.OnPlaceItemInSlot += Obj_AI_Base_OnPlaceItemInSlot; Shop.OnBuyItem += Obj_AI_Base_OnPlaceItemInSlot; // on level up Obj_AI_Base.OnLevelUp += Obj_AI_Base_OnLevelUp; Chat.Print("<b><font color=\"#FF3366\">Activator#</font></b> - Loaded!"); //Updater.UpdateCheck(); // init valid auto spells foreach (CoreSpell autospell in Lists.Spells) { if (Player.GetSpellSlot(autospell.Name) != SpellSlot.Unknown) { Game.OnUpdate += autospell.OnTick; } } // init valid summoners foreach (CoreSum summoner in Lists.Summoners) { if (summoner.Slot != SpellSlot.Unknown || summoner.ExtraNames.Any(x => Player.GetSpellSlot(x) != SpellSlot.Unknown) || summoner.Name == "summonerteleport") { Game.OnUpdate += summoner.OnTick; } } // find items (if F5) foreach (CoreItem item in Lists.Items) { if (!LeagueSharp.Common.Items.HasItem(item.Id)) { continue; } if (!Lists.BoughtItems.Contains(item)) { if (item.Category.Any()) { Game.OnUpdate += item.OnTick; } if (item.Category.Any(t => t == MenuType.Gapcloser)) { AntiGapcloser.OnEnemyGapcloser += item.OnEnemyGapcloser; } Lists.BoughtItems.Add(item); Chat.Print("<b><font color=\"#FF3366\">Activator#</font></b> - <font color=\"#FFF280\">" + item.Name + "</font> active!"); } } } catch (Exception e) { Console.WriteLine(e); Chat.Print("Exception thrown at <font color=\"#FFF280\">Activator.OnGameLoad</font>"); } }
/// <summary> /// Saves the media tags. /// </summary> /// <param name="media">The media.</param> /// <param name="tags">The tags.</param> /// <param name="newCreatedTags">The new created tags.</param> public void SaveMediaTags(Media media, IEnumerable <string> tags, out IList <Tag> newCreatedTags) { var trimmedTags = new List <string>(); if (tags != null) { foreach (var tag in tags) { trimmedTags.Add(tag.Trim()); } } newCreatedTags = new List <Tag>(); Tag tagAlias = null; // Tags merge: var mediaTags = unitOfWork.Session.QueryOver <MediaTag>() .Where(t => !t.IsDeleted && t.Media.Id == media.Id) .JoinQueryOver(t => t.Tag, JoinType.InnerJoin) .Where(t => !t.IsDeleted) .List <MediaTag>(); // Remove deleted tags: for (var i = mediaTags.Count - 1; i >= 0; i--) { var tag = trimmedTags.FirstOrDefault(s => s.ToLower() == mediaTags[i].Tag.Name.ToLower()); if (tag == null) { unitOfWork.Session.Delete(mediaTags[i]); } } // Add new tags: List <string> tagsInsert = new List <string>(); foreach (var tag in trimmedTags) { var existMediaTag = mediaTags.FirstOrDefault(mediaTag => mediaTag.Tag.Name.ToLower() == tag.ToLower()); if (existMediaTag == null) { tagsInsert.Add(tag); } } if (tagsInsert.Count > 0) { // Get existing tags: var existingTags = unitOfWork.Session.QueryOver(() => tagAlias) .Where(t => !t.IsDeleted) .Where(Restrictions.In(Projections.Property(() => tagAlias.Name), tagsInsert)) .List <Tag>(); foreach (var tag in tagsInsert) { var mediaTag = new MediaTag { Media = media }; var existTag = existingTags.FirstOrDefault(t => t.Name.ToLower() == tag.ToLower()); if (existTag != null) { mediaTag.Tag = existTag; } else { Tag newTag = new Tag { Name = tag }; unitOfWork.Session.SaveOrUpdate(newTag); newCreatedTags.Add(newTag); mediaTag.Tag = newTag; } unitOfWork.Session.SaveOrUpdate(mediaTag); } } }
public IList <TransactionLog> GetAllTransactionLog(string cardPAN, string mti, string responseCode, DateTime?transactionDateFrom, DateTime?transactionDateTo, int start, int limit, out int total) { List <TransactionLog> result = new List <TransactionLog>(); try { ICriteria criteria = _Session.CreateCriteria(typeof(TransactionLog)); if (!string.IsNullOrEmpty(cardPAN)) { criteria.Add(Expression.Like("CardPAN", cardPAN)); } if (!string.IsNullOrEmpty(mti)) { criteria.Add(Expression.Like("MTI", mti)); } if (!string.IsNullOrEmpty(responseCode)) { criteria.Add(Expression.Like("ResponseCode", responseCode)); } if (transactionDateFrom.HasValue && !transactionDateFrom.Value.Equals(DateTime.MinValue)) { criteria.Add(Expression.Ge("TransactionDate", transactionDateFrom.Value)); } if (transactionDateTo.HasValue && !transactionDateTo.Value.Equals(DateTime.MinValue)) { criteria.Add(Expression.Le("TransactionDate", transactionDateTo.Value.AddDays(1).AddSeconds(-1))); } ICriteria countCriteria = CriteriaTransformer.Clone(criteria).SetProjection(Projections.RowCountInt64()); ICriteria listCriteria = CriteriaTransformer.Clone(criteria).SetFirstResult(start).SetMaxResults(limit); listCriteria.AddOrder(Order.Desc("Id")); IList allResults = _Session.CreateMultiCriteria().Add(listCriteria).Add(countCriteria).List(); foreach (var o in (IList)allResults[0]) { result.Add((TransactionLog)o); } total = Convert.ToInt32((long)((IList)allResults[1])[0]); } catch (Exception) { throw; } return(result); }
public ActionResult Index(UserIndexOptions options, PagerParameters pagerParameters) { if (!service.Authorizer.Authorize(Permissions.ManageUsers, T("Not authorized to list users"))) { return(new HttpUnauthorizedResult()); } var userType = contentDefinitionManager.GetTypeDefinition("User"); var hasBasicUserProfilePart = userType.Parts.Any(p => p.PartDefinition.Name == nameof(BasicUserProfilePart)); // Create criteria var session = transactionManager.GetSession(); var query = session.CreateCriteria <ContentItemVersionRecord>("version") .CreateAlias("version.ContentItemRecord", "item", JoinType.InnerJoin) // content item is aggregation of part records .CreateAlias("item.ContentType", "type", JoinType.InnerJoin) .CreateAlias("item.UserPartRecord", "user", JoinType.InnerJoin) .Add(Restrictions.Eq("type.Name", "User")) .Add(Restrictions.Eq("version.Published", true)); if (hasBasicUserProfilePart) { query.CreateAlias( "item.BasicUserProfilePartRecord", "profile", JoinType.LeftOuterJoin ); // Not all user have profiles, e.g Admin } SetFilter(options, query, hasBasicUserProfilePart); var totalItemCount = query.SetProjection(Projections.RowCount()).UniqueResult <int>(); var pager = new Pager(siteService.GetSiteSettings(), pagerParameters); var pagerShape = Shape.Pager(pager).TotalItemCount(totalItemCount); SetProjectionList(hasBasicUserProfilePart, query); // FirstResult is row index start from 0 // pager.GetStartIndex() is calculated row index that we use // If we want page number, use pager.Page. query.SetFirstResult(pager.GetStartIndex()).SetMaxResults(pager.PageSize); SetSortOrder(options, query, hasBasicUserProfilePart); var results = query.List <BasicUserProfileDto>(); var model = new UserIndexViewModel { Users = results.Select(u => new ViewModels.UserEntry() { User = u }).ToList(), Options = options, Pager = pagerShape }; // maintain previous route data when generating page links var routeData = new RouteData(); routeData.Values.Add("Options.Filter", options.Filter); routeData.Values.Add("Options.Search", options.Search); routeData.Values.Add("Options.Order", options.Order); pagerShape.RouteData(routeData); // https://stackoverflow.com/questions/43565738/name-valuetuple-properties-when-creating-with-new/43566072#43566072 // can't cast with "is (Url: string, Email: string>) activationEmail" if (TempData[activationEmailKey] is ValueTuple <string, string> activationEmail) { var(url, email) = activationEmail; model.ActivationEmailSent = Shape.ActivationEmailSent(Url: url, Email: email); } ; return(View(model)); }
/// <summary> /// Initializes a new instance of the <see cref="FqProjectionList" /> class. /// </summary> public FqProjectionList() { _list = Projections.ProjectionList(); }
public async Task InsertIntoFromSelect_WithSelectClauseParametersAsync() { using (ISession s = OpenSession()) { using (s.BeginTransaction()) { // arrange await(s.SaveAsync(new Animal() { Description = "cat1", BodyWeight = 2.1f })); await(s.SaveAsync(new Animal() { Description = "cat2", BodyWeight = 2.5f })); await(s.SaveAsync(new Animal() { Description = "cat3", BodyWeight = 2.7f })); // act await(s.CreateQuery("insert into Animal (description, bodyWeight) select a.description, :weight from Animal a where a.bodyWeight < :weight") .SetParameter <float>("weight", 5.7f).ExecuteUpdateAsync()); // assert Assert.AreEqual(3, await(s.CreateCriteria <Animal>().SetProjection(Projections.RowCount()) .Add(Restrictions.Gt("bodyWeight", 5.5f)).UniqueResultAsync <int>())); await(s.CreateQuery("delete from Animal").ExecuteUpdateAsync()); await(s.Transaction.CommitAsync()); } } }
public void CanMaxProjectionOnIdentityProjection() { using (ISession s = OpenSession()) { ISQLFunction arithmaticAddition = new VarArgsSQLFunction("(", "+", ")"); ICriteria c = s.CreateCriteria(typeof(Person)).SetProjection( Projections.Max(Projections.SqlFunction(arithmaticAddition, NHibernateUtil.GuessType(typeof(double)), Projections.Property("IQ"), Projections.Property("ShoeSize")))); IList list = c.List(); Assert.AreEqual(108, list[0]); } }
public async Task CreateWithNonEmptyManyToManyCollectionUpdateWithNewElementAsync() { ClearCounts(); Plan p = new Plan("plan"); Contract c = new Contract(null, "gail", "phone"); p.AddContract(c); ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); await(s.PersistAsync(p)); await(t.CommitAsync()); s.Close(); AssertInsertCount(2); AssertUpdateCount(0); ClearCounts(); Contract newC = new Contract(null, "sherman", "telepathy"); p.AddContract(newC); s = OpenSession(); t = s.BeginTransaction(); await(s.UpdateAsync(p)); await(t.CommitAsync()); s.Close(); AssertInsertCount(1); AssertUpdateCount(isContractVersioned ? 1 : 0); ClearCounts(); s = OpenSession(); t = s.BeginTransaction(); p = await(s.CreateCriteria <Plan>().UniqueResultAsync <Plan>()); Assert.That(p.Contracts.Count, Is.EqualTo(2)); foreach (Contract aContract in p.Contracts) { if (aContract.Id == c.Id) { Assert.That(aContract.CustomerName, Is.EqualTo("gail")); } else if (aContract.Id == newC.Id) { Assert.That(aContract.CustomerName, Is.EqualTo("sherman")); } else { Assert.Fail("unknown contract"); } if (isPlanContractsBidirectional) { Assert.That(aContract.Plans.First(), Is.SameAs(p)); } } await(s.DeleteAsync(p)); Assert.That(await(s.CreateCriteria <Contract>().SetProjection(Projections.RowCountInt64()).UniqueResultAsync <long>()), Is.EqualTo(0L)); Assert.That(await(s.CreateCriteria <Plan>().SetProjection(Projections.RowCountInt64()).UniqueResultAsync <long>()), Is.EqualTo(0L)); await(t.CommitAsync()); s.Close(); AssertUpdateCount(0); AssertDeleteCount(3); }
private IQueryOver <VodovozOrder> GetOrdersQuery(IUnitOfWork uow) { OrderForRouteListJournalNode resultAlias = null; VodovozOrder orderAlias = null; Nomenclature nomenclatureAlias = null; OrderItem orderItemAlias = null; Counterparty counterpartyAlias = null; DeliveryPoint deliveryPointAlias = null; DeliverySchedule deliveryScheduleAlias = null; Employee authorAlias = null; Employee lastEditorAlias = null; District districtAlias = null; Nomenclature sanitizationNomenclature = new NomenclatureRepository(new NomenclatureParametersProvider()).GetSanitisationNomenclature(uow); var query = uow.Session.QueryOver <VodovozOrder>(() => orderAlias); if (FilterViewModel.ViewTypes != ViewTypes.Order && FilterViewModel.ViewTypes != ViewTypes.All) { query.Where(o => o.Id == -1); } if (FilterViewModel.RestrictStatus != null) { query.Where(o => o.OrderStatus == FilterViewModel.RestrictStatus); } if (FilterViewModel.RestrictPaymentType != null) { query.Where(o => o.PaymentType == FilterViewModel.RestrictPaymentType); } if (FilterViewModel.HideStatuses != null) { query.WhereRestrictionOn(o => o.OrderStatus).Not.IsIn(FilterViewModel.HideStatuses); } if (FilterViewModel.RestrictOnlySelfDelivery != null) { query.Where(o => o.SelfDelivery == FilterViewModel.RestrictOnlySelfDelivery); } if (FilterViewModel.RestrictWithoutSelfDelivery != null) { query.Where(o => o.SelfDelivery != FilterViewModel.RestrictWithoutSelfDelivery); } if (FilterViewModel.RestrictCounterparty != null) { query.Where(o => o.Client == FilterViewModel.RestrictCounterparty); } if (FilterViewModel.RestrictDeliveryPoint != null) { query.Where(o => o.DeliveryPoint == FilterViewModel.RestrictDeliveryPoint); } if (FilterViewModel.RestrictStartDate != null) { query.Where(o => o.DeliveryDate >= FilterViewModel.RestrictStartDate); } if (FilterViewModel.RestrictEndDate != null) { query.Where(o => o.DeliveryDate <= FilterViewModel.RestrictEndDate.Value.AddDays(1).AddTicks(-1)); } if (FilterViewModel.RestrictLessThreeHours == true) { query.Where(Restrictions .GtProperty(Projections.SqlFunction( new SQLFunctionTemplate(NHibernateUtil.Time, "ADDTIME(?1, ?2)"), NHibernateUtil.Time, Projections.Property(() => deliveryScheduleAlias.From), Projections.Constant("3:0:0")), Projections.Property(() => deliveryScheduleAlias.To))); } if (FilterViewModel.RestrictHideService != null) { query.Where(o => o.IsService != FilterViewModel.RestrictHideService); } if (FilterViewModel.RestrictOnlyService != null) { query.Where(o => o.IsService == FilterViewModel.RestrictOnlyService); } if (FilterViewModel.OrderPaymentStatus != null) { query.Where(o => o.OrderPaymentStatus == FilterViewModel.OrderPaymentStatus); } var bottleCountSubquery = QueryOver.Of <OrderItem>(() => orderItemAlias) .Where(() => orderAlias.Id == orderItemAlias.Order.Id) .JoinAlias(() => orderItemAlias.Nomenclature, () => nomenclatureAlias) .Where(() => nomenclatureAlias.Category == NomenclatureCategory.water && nomenclatureAlias.TareVolume == TareVolume.Vol19L) .Select(Projections.Sum(() => orderItemAlias.Count)); var sanitisationCountSubquery = QueryOver.Of <OrderItem>(() => orderItemAlias) .Where(() => orderAlias.Id == orderItemAlias.Order.Id) .Where(() => orderItemAlias.Nomenclature.Id == sanitizationNomenclature.Id) .Select(Projections.Sum(() => orderItemAlias.Count)); var orderSumSubquery = QueryOver.Of <OrderItem>(() => orderItemAlias) .Where(() => orderItemAlias.Order.Id == orderAlias.Id) .Select( Projections.Sum( Projections.SqlFunction( new SQLFunctionTemplate(NHibernateUtil.Decimal, "?1 * ?2 - IF(?3 IS NULL OR ?3 = 0, IFNULL(?4, 0), ?3)"), NHibernateUtil.Decimal, Projections.Property <OrderItem>(x => x.Count), Projections.Property <OrderItem>(x => x.Price), Projections.Property <OrderItem>(x => x.DiscountMoney), Projections.Property <OrderItem>(x => x.OriginalDiscountMoney) ) ) ); query.Left.JoinAlias(o => o.DeliveryPoint, () => deliveryPointAlias) .Left.JoinAlias(o => o.DeliverySchedule, () => deliveryScheduleAlias) .Left.JoinAlias(o => o.Client, () => counterpartyAlias) .Left.JoinAlias(o => o.Author, () => authorAlias) .Left.JoinAlias(o => o.LastEditor, () => lastEditorAlias) .Left.JoinAlias(() => deliveryPointAlias.District, () => districtAlias); query.Where(GetSearchCriterion( () => orderAlias.Id, () => counterpartyAlias.Name, () => deliveryPointAlias.CompiledAddress, () => authorAlias.LastName, () => orderAlias.DriverCallId, () => orderAlias.OnlineOrder, () => orderAlias.EShopOrder, () => orderAlias.OrderPaymentStatus )); if (FilterViewModel.IncludeDistrictsIds != null && FilterViewModel.IncludeDistrictsIds.Any()) { query = query.Where(() => deliveryPointAlias.District.Id.IsIn(FilterViewModel.IncludeDistrictsIds)); } // Для того чтобы уже добавленные в МЛ заказы больше не появлялись if (FilterViewModel.ExceptIds != null && FilterViewModel.ExceptIds.Any()) { query.Where(o => !RestrictionExtensions.IsIn(o.Id, FilterViewModel.ExceptIds)); } var resultQuery = query .SelectList(list => list .Select(() => orderAlias.Id).WithAlias(() => resultAlias.Id) .Select(() => orderAlias.SelfDelivery).WithAlias(() => resultAlias.IsSelfDelivery) .Select(() => deliveryScheduleAlias.Name).WithAlias(() => resultAlias.DeliveryTime) .Select(() => orderAlias.OrderStatus).WithAlias(() => resultAlias.StatusEnum) .Select(() => orderAlias.Address1c).WithAlias(() => resultAlias.Address1c) .Select(() => authorAlias.LastName).WithAlias(() => resultAlias.AuthorLastName) .Select(() => authorAlias.Name).WithAlias(() => resultAlias.AuthorName) .Select(() => authorAlias.Patronymic).WithAlias(() => resultAlias.AuthorPatronymic) .Select(() => counterpartyAlias.Name).WithAlias(() => resultAlias.Counterparty) .Select(() => districtAlias.DistrictName).WithAlias(() => resultAlias.DistrictName) .Select(() => deliveryPointAlias.CompiledAddress).WithAlias(() => resultAlias.CompilledAddress) .Select(() => deliveryPointAlias.City).WithAlias(() => resultAlias.City) .Select(() => deliveryPointAlias.Street).WithAlias(() => resultAlias.Street) .Select(() => deliveryPointAlias.Building).WithAlias(() => resultAlias.Building) .SelectSubQuery(orderSumSubquery).WithAlias(() => resultAlias.Sum) .SelectSubQuery(bottleCountSubquery).WithAlias(() => resultAlias.BottleAmount) .SelectSubQuery(sanitisationCountSubquery).WithAlias(() => resultAlias.SanitisationAmount) ) .OrderBy(x => x.CreateDate).Desc .TransformUsing(Transformers.AliasToBean <OrderForRouteListJournalNode <VodovozOrder> >()); return(resultQuery); }
public async Task RemoveManyToManyElementUsingMergeAsync() { ClearCounts(); Plan p = new Plan("plan"); Contract c = new Contract(null, "gail", "phone"); p.AddContract(c); ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); await(s.PersistAsync(p)); await(t.CommitAsync()); s.Close(); AssertInsertCount(2); AssertUpdateCount(0); ClearCounts(); p.RemoveContract(c); Assert.That(p.Contracts.Count, Is.EqualTo(0)); if (isPlanContractsBidirectional) { Assert.That(c.Plans.Count, Is.EqualTo(0)); } s = OpenSession(); t = s.BeginTransaction(); p = (Plan)await(s.MergeAsync(p)); await(t.CommitAsync()); s.Close(); AssertUpdateCount(isContractVersioned ? 1 : 0); AssertDeleteCount(0); ClearCounts(); s = OpenSession(); t = s.BeginTransaction(); p = await(s.CreateCriteria <Plan>().UniqueResultAsync <Plan>()); if (isPlanContractsInverse) { Assert.That(p.Contracts.Count, Is.EqualTo(1)); c = p.Contracts.First(); Assert.That(c.CustomerName, Is.EqualTo("gail")); Assert.That(c.Plans.First(), Is.SameAs(p)); } else { Assert.That(p.Contracts.Count, Is.EqualTo(0)); c = await(s.CreateCriteria <Contract>().UniqueResultAsync <Contract>()); if (isPlanContractsBidirectional) { Assert.That(c.Plans.Count, Is.EqualTo(0)); } await(s.DeleteAsync(c)); } await(s.DeleteAsync(p)); Assert.That(await(s.CreateCriteria <Plan>().SetProjection(Projections.RowCountInt64()).UniqueResultAsync <long>()), Is.EqualTo(0L)); Assert.That(await(s.CreateCriteria <Contract>().SetProjection(Projections.RowCountInt64()).UniqueResultAsync <long>()), Is.EqualTo(0L)); await(t.CommitAsync()); s.Close(); AssertUpdateCount(0); AssertDeleteCount(2); }
public static object[] CollectDetailParam(IDictionary <string, string> dic, List <string> statusList, List <string> typeList, bool newItem) { string orderNo = (dic == null || !dic.ContainsKey("OrderNo")) ? null : dic["OrderNo"]; string flow = (dic == null || !dic.ContainsKey("Flow")) ? null : dic["Flow"]; string partyFrom = (dic == null || !dic.ContainsKey("PartyFrom")) ? null : dic["PartyFrom"]; string partyTo = (dic == null || !dic.ContainsKey("PartyTo")) ? null : dic["PartyTo"]; string moduleType = (dic == null || !dic.ContainsKey("ModuleType")) ? null : dic["ModuleType"]; string locationFrom = (dic == null || !dic.ContainsKey("LocationFrom")) ? null : dic["LocationFrom"]; string locationTo = (dic == null || !dic.ContainsKey("LocationTo")) ? null : dic["LocationTo"]; string moduleSubType = (dic == null || !dic.ContainsKey("ModuleSubType")) ? null : dic["ModuleSubType"]; string priority = (dic == null || !dic.ContainsKey("Priority")) ? null : dic["Priority"]; string createUser = (dic == null || !dic.ContainsKey("CreateUser")) ? null : dic["CreateUser"]; string startDate = (dic == null || !dic.ContainsKey("StartDate")) ? null : dic["StartDate"]; string endDate = (dic == null || !dic.ContainsKey("EndDate")) ? null : dic["EndDate"]; string currentUser = (dic == null || !dic.ContainsKey("CurrentUser")) ? null : dic["CurrentUser"]; DetachedCriteria selectCriteria = DetachedCriteria.For(typeof(OrderDetail)); DetachedCriteria selectCountCriteria = DetachedCriteria.For(typeof(OrderDetail)) .SetProjection(Projections.Count("Id")); IDictionary <string, string> alias = new Dictionary <string, string>(); selectCriteria.CreateAlias("OrderHead", "od"); selectCriteria.CreateAlias("od.PartyFrom", "pf"); selectCriteria.CreateAlias("od.PartyTo", "pt"); selectCountCriteria.CreateAlias("OrderHead", "od"); selectCountCriteria.CreateAlias("od.PartyFrom", "pf"); selectCountCriteria.CreateAlias("od.PartyTo", "pt"); alias.Add("PartyFrom", "pf"); alias.Add("PartyTo", "pt"); #region 设置订单Type查询条件 selectCriteria.Add(Expression.In("od.Type", typeList)); selectCountCriteria.Add(Expression.In("od.Type", typeList)); #endregion #region 设置订单SubType查询条件 if (moduleSubType != null && moduleSubType != string.Empty) { selectCriteria.Add(Expression.Eq("od.SubType", moduleSubType)); selectCountCriteria.Add(Expression.Eq("od.SubType", moduleSubType)); } #endregion selectCriteria.Add(Expression.Eq("od.IsNewItem", newItem)); selectCountCriteria.Add(Expression.Eq("od.IsNewItem", newItem)); if (orderNo != null && orderNo != string.Empty) { selectCriteria.Add(Expression.Like("od.OrderNo", orderNo, MatchMode.Start)); selectCountCriteria.Add(Expression.Like("od.OrderNo", orderNo, MatchMode.Start)); } if (priority != null && priority != string.Empty) { selectCriteria.Add(Expression.Eq("od.Priority", priority)); selectCountCriteria.Add(Expression.Eq("od.Priority", priority)); } #region partyFrom if (partyFrom != null && partyFrom != string.Empty) { selectCriteria.Add(Expression.Eq("pf.Code", partyFrom)); selectCountCriteria.Add(Expression.Eq("pf.Code", partyFrom)); } else if (moduleType != BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_PROCUREMENT) { #region partyFrom SecurityHelper.SetPartyFromSearchCriteria( selectCriteria, selectCountCriteria, partyFrom, moduleType, currentUser); #endregion } #endregion #region partyTo if (partyTo != null && partyTo != string.Empty) { selectCriteria.Add(Expression.Eq("pt.Code", partyTo)); selectCountCriteria.Add(Expression.Eq("pt.Code", partyTo)); } else if (moduleType != BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_DISTRIBUTION) { #region partyTo SecurityHelper.SetPartyToSearchCriteria( selectCriteria, selectCountCriteria, partyTo, moduleType, currentUser); #endregion } #endregion if (locationFrom != null && locationFrom != string.Empty) { selectCriteria.Add(Expression.Eq("od.LocationFrom.Code", locationFrom)); selectCountCriteria.Add(Expression.Eq("od.LocationFrom.Code", locationFrom)); } if (locationTo != null && locationTo != string.Empty) { selectCriteria.Add(Expression.Eq("od.LocationTo.Code", locationTo)); selectCountCriteria.Add(Expression.Eq("od.LocationTo.Code", locationTo)); } if (flow != null && flow != string.Empty) { selectCriteria.Add(Expression.Eq("od.Flow", flow)); selectCountCriteria.Add(Expression.Eq("od.Flow", flow)); } if (createUser != null && createUser != string.Empty) { selectCriteria.Add(Expression.Eq("od.CreateUser.Code", createUser)); selectCountCriteria.Add(Expression.Eq("od.CreateUser.Code", createUser)); } #region date if (startDate != null && startDate != string.Empty) { selectCriteria.Add(Expression.Ge("od.CreateDate", DateTime.Parse(startDate))); selectCountCriteria.Add(Expression.Ge("od.CreateDate", DateTime.Parse(startDate))); } if (endDate != null && endDate != string.Empty) { selectCriteria.Add(Expression.Lt("od.CreateDate", DateTime.Parse(endDate).AddDays(1))); selectCountCriteria.Add(Expression.Lt("od.CreateDate", DateTime.Parse(endDate).AddDays(1))); } #endregion #region status if (statusList != null && statusList.Count > 0) { selectCriteria.Add(Expression.In("od.Status", statusList)); selectCountCriteria.Add(Expression.In("od.Status", statusList)); } #endregion return(new object[] { selectCriteria, selectCountCriteria, alias, false }); }
/// <summary> /// Gets the permissions for the specified entity /// </summary> /// <typeparam name="TEntity">The type of the entity.</typeparam> /// <param name="user">The user.</param> /// <param name="entity">The entity.</param> /// <param name="operationName">Name of the operation.</param> /// <returns></returns> public Permission[] GetPermissionsFor <TEntity>(IUser user, TEntity entity, string operationName) where TEntity : class { Guid key = Security.ExtractKey(entity); string[] operationNames = Strings.GetHierarchicalOperationNames(operationName); EntitiesGroup[] entitiesGroups = authorizationRepository.GetAssociatedEntitiesGroupsFor(entity); //UsersGroup[] usersGroups = authorizationRepository.GetAssociatedUsersGroupFor(user); AbstractCriterion onCriteria = (Restrictions.Eq("EntitySecurityKey", key) || Restrictions.In("EntitiesGroup", entitiesGroups)) || (Restrictions.IsNull("EntitiesGroup") && Restrictions.IsNull("EntitySecurityKey")); DetachedCriteria criteria = DetachedCriteria.For <Permission>() .Add(Restrictions.Eq("User", user) || Subqueries.PropertyIn("UsersGroup.Id", SecurityCriterions.AllGroups(user).SetProjection(Projections.Id()))) .Add(onCriteria) .CreateAlias("Operation", "op") .Add(Restrictions.In("op.Name", operationNames)); return(FindResults(criteria)); }
public void Reproject(Projections.ProjectionInfo targetProjection) { //throw new NotImplementedException(); }
/// <summary> /// Gets the permissions for the specified entity /// </summary> /// <param name="user">The user.</param> /// <param name="operationName">Name of the operation.</param> /// <returns></returns> public Permission[] GetGlobalPermissionsFor(IUser user, string operationName) { string[] operationNames = Strings.GetHierarchicalOperationNames(operationName); DetachedCriteria criteria = DetachedCriteria.For <Permission>() .Add(Expression.Eq("User", user) || Subqueries.PropertyIn("UsersGroup.Id", SecurityCriterions.AllGroups(user).SetProjection(Projections.Id()))) .Add(Expression.IsNull("EntitiesGroup")) .Add(Expression.IsNull("EntitySecurityKey")) .CreateAlias("Operation", "op") .Add(Expression.In("op.Name", operationNames)); return(FindResults(criteria)); }
public void IncomeSum(DateTime from, DateTime to, out double income, out double receivable) { income = 0; receivable = 0; ICriteria criteria = _session.OpenSession().CreateCriteria(typeof(Booking)); criteria.Add(LockCondition()); criteria.Add(Expression.Ge("StartDate", from.Date)); criteria.Add(Expression.Le("StartDate", to.Date)); criteria.SetProjection(Projections.ProjectionList().Add(Projections.Sum("Total")).Add(Projections.Sum("Paid"))); //criteria.SetProjection(Projections.Sum(Booking.TOTAL)); //criteria.SetProjection(Projections.Sum(Booking.PAID)); IList list = criteria.List(); IList resultList = (IList)list[0]; if (resultList[0] != null) { income = Convert.ToDouble(resultList[0]); } if (resultList[1] != null) { receivable = income - Convert.ToDouble(resultList[1]); } return; }
public virtual void AddProjection(ProjectionList projections) { var projection = Projections.Property(_accessor.ToPropertyName()).As(_accessor.Name); projections.Add(projection); }
public IList <Customer> UseCriterialAPI_GetDistinctCustomers(DateTime orderDate) { IList <int> ids = Session.CreateCriteria(typeof(Customer)) .SetProjection(Projections.Distinct(Projections.ProjectionList().Add(Projections.Property("Id")))) .CreateCriteria("Orders") .Add(Restrictions.Gt("OrderDate", orderDate)) .List <int>(); return(Session.CreateCriteria(typeof(Customer)) .Add(Restrictions.In("Id", ids.ToArray <int>())) .List <Customer>()); }
public override QueryOver <NodeVersion> VisitFieldPredicate(FieldPredicateExpression node) { var fieldName = node.SelectorExpression.FieldName; var valueKey = node.SelectorExpression.ValueKey; var fieldValue = node.ValueExpression.Value; switch (fieldName.ToLowerInvariant()) { case "id": Guid idValue = GetIdValue(node); switch (node.ValueExpression.ClauseType) { case ValuePredicateType.Equal: return(QueryOver.Of <NodeVersion>().Where(x => x.Node.Id == idValue).Select(x => x.Id)); case ValuePredicateType.NotEqual: return(QueryOver.Of <NodeVersion>().Where(x => x.Node.Id != idValue).Select(x => x.Id));; default: throw new InvalidOperationException( "Cannot query an item by id by any other operator than == or !="); } } NodeVersion aliasNodeVersion = null; Attribute aliasAttribute = null; AttributeDefinition aliasAttributeDefinition = null; AttributeStringValue aliasStringValue = null; AttributeLongStringValue aliasLongStringValue = null; NodeRelation aliasNodeRelation = null; AttributeDateValue aliasDateValue = null; //TODO: This is going to need to lookup more than string values var queryString = QueryOver.Of <NodeVersion>(() => aliasNodeVersion) .JoinQueryOver <Attribute>(() => aliasNodeVersion.Attributes, () => aliasAttribute) .JoinQueryOver <AttributeDefinition>(() => aliasAttribute.AttributeDefinition, () => aliasAttributeDefinition) .Left.JoinQueryOver <AttributeStringValue>(() => aliasAttribute.AttributeStringValues, () => aliasStringValue) .Left.JoinQueryOver <AttributeLongStringValue>(() => aliasAttribute.AttributeLongStringValues, () => aliasLongStringValue) .Left.JoinQueryOver(() => aliasAttribute.AttributeDateValues, () => aliasDateValue) //select the field name... .Where(x => aliasAttributeDefinition.Alias == fieldName); if (!valueKey.IsNullOrWhiteSpace()) { //if the value key is specified, then add that to the query queryString = queryString.And(() => aliasStringValue.ValueKey == valueKey || aliasLongStringValue.ValueKey == valueKey).Select(x => x.Id); } //now, select the field value.... switch (node.ValueExpression.ClauseType) { case ValuePredicateType.Equal: var sqlCeCompatibleQuery = Restrictions.Or( Restrictions.Eq( Projections.Property <AttributeStringValue>(x => aliasStringValue.Value), fieldValue), Restrictions.Like( Projections.Property <AttributeLongStringValue>(x => aliasLongStringValue.Value), fieldValue as string, MatchMode.Exact)); return(queryString.And(sqlCeCompatibleQuery).Select(x => x.Id)); case ValuePredicateType.NotEqual: return(queryString.And(x => aliasStringValue.Value != fieldValue).Select(x => x.Id)); case ValuePredicateType.MatchesWildcard: case ValuePredicateType.Contains: return(queryString.And(Restrictions.Like(Projections.Property <AttributeStringValue>(x => aliasStringValue.Value), fieldValue as string, MatchMode.Anywhere)).Select(x => x.Id)); case ValuePredicateType.StartsWith: return(queryString.And(Restrictions.Like(Projections.Property <AttributeStringValue>(x => aliasStringValue.Value), fieldValue as string, MatchMode.Start)).Select(x => x.Id)); case ValuePredicateType.EndsWith: return(queryString.And(Restrictions.Like(Projections.Property <AttributeStringValue>(x => aliasStringValue.Value), fieldValue as string, MatchMode.End)).Select(x => x.Id)); case ValuePredicateType.LessThanOrEqual: return (queryString.And( Restrictions.Le(Projections.Property <AttributeDateValue>(x => aliasDateValue.Value), (DateTimeOffset)fieldValue))); case ValuePredicateType.GreaterThanOrEqual: return (queryString.And( Restrictions.Ge(Projections.Property <AttributeDateValue>(x => aliasDateValue.Value), (DateTimeOffset)fieldValue))); default: throw new InvalidOperationException( "This linq provider doesn't support a ClauseType of {0} for field {1}".InvariantFormat( node.ValueExpression.ClauseType.ToString(), fieldName)); } }
public async Task StringTypesAsync() { var whenFalse = Dialect is Oracle8iDialect //Most dialects allow to return DbType.String and DbType.AnsiString in case statement //But Oracle throws 'ORA-12704: character set mismatch' ? Projections.Constant("otherstring", NHibernateUtil.AnsiString) : Projections.Constant("otherstring"); using (var session = OpenSession()) using (var transaction = session.BeginTransaction()) { // data await(session.SaveAsync(new Entity { Name = "Alpha" })); await(session.SaveAsync(new Entity { Name = "Beta" })); await(session.SaveAsync(new Entity { Name = "Gamma" })); await(transaction.CommitAsync()); } // whenTrue is constant, whenFalse is property using (var session = OpenSession()) { ICriteria tagCriteria = session.CreateCriteria(typeof(Entity)); var conditionalProjection = Projections.Conditional( Restrictions.Not( Restrictions.Like(nameof(Entity.Name), "B%")), //Property - ansi string length 5; contstant - string, length 10 whenFalse, Projections.Property(nameof(Entity.Name))); tagCriteria.SetProjection(conditionalProjection); // run query var results = await(tagCriteria.ListAsync()); Assert.That(results, Is.EquivalentTo(new[] { "otherstring", "Beta", "otherstring" })); } // whenTrue is property, whenFalse is constant using (var session = OpenSession()) { ICriteria tagCriteria = session.CreateCriteria(typeof(Entity)); var conditionalProjection = Projections.Conditional( Restrictions.Like(nameof(Entity.Name), "B%"), Projections.Property(nameof(Entity.Name)), whenFalse); tagCriteria.SetProjection(conditionalProjection); // run query var results = await(tagCriteria.ListAsync()); Assert.That(results, Is.EquivalentTo(new[] { "otherstring", "Beta", "otherstring" })); } }
public void Read() { fileHeader = ReadFileHeader(); // Spatial reference system parameters are stored in a file with the same name but a different (.prj) extension. var prjFile = fName.Replace(".shp", ".prj"); prjFile = prjFile.Replace(".SHP", ".PRJ"); ReadSRSInfo(prjFile); // Read geometry Shapes = new List<Shape>(); ReadShapes(); // dBase file has the same name but a different (.dbf) extension. var dbaseFile = fName.Replace(".shp", ".dbf"); dbaseFile = dbaseFile.Replace(".SHP", ".DBF"); ReadDBaseFile(dbaseFile); if (fileHeader.ProjectionInfo != null) { if (fileHeader.ProjectionInfo.Name.ToLower().Contains("stereographic")) { if (fileHeader.ProjectionInfo.Name.ToLower().Contains("south")) { Projection = Projections.PolarStereo; } else { Projection = Projections.PolarStereo; } } } }
/// <summary> /// Adds the postfix to the specified URL. /// </summary> /// <param name="url">The page URL.</param> /// <param name="prefixPattern">The prefix pattern.</param> /// <param name="unsavedUrls">The list of not saved yet urls.</param> /// <returns> /// URL with added postfix (if such needed) /// </returns> public string AddPageUrlPostfix(string url, string prefixPattern, List <string> unsavedUrls = null) { url = (url ?? string.Empty).Trim(); var endsWithSlash = url.EndsWith("/", StringComparison.Ordinal); url = url.Trim('/'); prefixPattern = (prefixPattern ?? string.Empty).Trim('/'); if (string.IsNullOrWhiteSpace(prefixPattern) || prefixPattern.IndexOf("{0}", StringComparison.OrdinalIgnoreCase) == -1) { prefixPattern = "{0}"; } var fullUrl = FixUrl(string.Format(prefixPattern + "/", url).Trim('/')); // Check, if such record exists var exists = PathExistsInDb(fullUrl) || (unsavedUrls != null && PathExistsInUnsavedList(fullUrl, unsavedUrls)); if (exists) { // Load all titles var urlToReplace = string.Format("/" + prefixPattern + "-", url); var urlToSearch = string.Format("{0}%", urlToReplace); Page alias = null; var paths = unitOfWork.Session .QueryOver(() => alias) .Where(p => !p.IsDeleted) .Where(Restrictions.InsensitiveLike(Projections.Property(() => alias.PageUrl), urlToSearch)) .Select(p => p.PageUrl) .List <string>(); if (unsavedUrls != null) { unsavedUrls .Where(u => u.StartsWith(urlToReplace)) .ToList() .ForEach(paths.Add); } int maxNr = 0; var recheckInDb = false; foreach (var path in paths) { int pathNr; var intStr = path.Replace(urlToReplace, null).Split('-')[0].Trim('/'); if (int.TryParse(intStr, out pathNr)) { if (pathNr > maxNr) { maxNr = pathNr; } } else { recheckInDb = true; } } if (maxNr == int.MaxValue) { recheckInDb = true; } else { maxNr++; } if (string.IsNullOrWhiteSpace(url)) { fullUrl = string.Format(prefixPattern, "-"); recheckInDb = true; } else { fullUrl = string.Format(prefixPattern + "-{1}/", url, maxNr); } if (recheckInDb) { return(AddPageUrlPostfix(fullUrl, null)); } } // Restore trailing slash behavior if needed. if (configuration.UrlMode == TrailingSlashBehaviorType.Mixed) { if (endsWithSlash) { if (!fullUrl.Trim().EndsWith("/", StringComparison.Ordinal)) { fullUrl = string.Concat(fullUrl, "/"); } } else { if (fullUrl.Trim().EndsWith("/", StringComparison.Ordinal)) { fullUrl = fullUrl.TrimEnd('/').Trim(); } } } return(FixUrl(fullUrl)); }