private void GenerateCellRelations(int cellNumber) { // Generate the view cell relation List <ViewCellSlot> projectedSlots = new List <ViewCellSlot>(); // construct a ViewCellSlot for each slot Debug.Assert(CQuery.NumProjectedSlots == SQuery.NumProjectedSlots, "Cell queries in cell have a different number of slots"); for (int i = 0; i < CQuery.NumProjectedSlots; i++) { ProjectedSlot cSlot = CQuery.ProjectedSlotAt(i); ProjectedSlot sSlot = SQuery.ProjectedSlotAt(i); Debug.Assert(cSlot != null, "Has cell query been normalized?"); Debug.Assert(sSlot != null, "Has cell query been normalized?"); // These slots better be MemberProjectedSlots. We do not have constants etc at this point. Debug.Assert(cSlot is MemberProjectedSlot, "cSlot is expected to be MemberProjectedSlot"); Debug.Assert(sSlot is MemberProjectedSlot, "sSlot is expected to be MemberProjectedSlot"); MemberProjectedSlot cJoinSlot = (MemberProjectedSlot)cSlot; MemberProjectedSlot sJoinSlot = (MemberProjectedSlot)sSlot; ViewCellSlot slot = new ViewCellSlot(i, cJoinSlot, sJoinSlot); projectedSlots.Add(slot); } m_viewCellRelation = new ViewCellRelation(this, projectedSlots, cellNumber); }
// effects: Given a cell, determines the paths to which the paths in // columns map to in the C-space and returns them. If some columns // are not projected in the cell, or if the corresponding properties // are not mapped into C-space, returns null internal Set <EdmProperty> GetCSlotsForTableColumns(IEnumerable <MemberPath> columns) { List <int> fieldNums = SQuery.GetProjectedPositions(columns); if (fieldNums == null) { return(null); } // The fields are mapped -- see if they are mapped on the // cSide and they correspond to the primary key of the // entity set Set <EdmProperty> cSideMembers = new Set <EdmProperty>(); foreach (int fieldNum in fieldNums) { ProjectedSlot projectedSlot = CQuery.ProjectedSlotAt(fieldNum); MemberProjectedSlot slot = projectedSlot as MemberProjectedSlot; if (slot != null) { // We can call LastMember since columns do not map to // extents or memberEnds. Can cast to EdmProperty since it // cannot be an association end cSideMembers.Add((EdmProperty)slot.MemberPath.LeafEdmMember); } else { return(null); } } return(cSideMembers); }
private CQuery buildQuery() { var query = new CQuery { isStoreProcedure = false, name = QueryName, Text = QueryText }; var match = new Regex(@"(?<columnfilter>(?<column>[\[]?\w+[\]]?)\s*=\s*(?<idvar>\{\{(?<id>\w+)\}\}))").Match(query.Text); while (null != match && match.Success) { var column = match.Groups["column"].Value; var paramName = match.Groups["id"].Value; if (!string.IsNullOrEmpty(column) && !string.IsNullOrEmpty(paramName)) { var col = (from t in SelectedDataset.Table from c in t.Column where c.name.ToLower() == column.ToLower() select c).First(); query.Parameter.Add(new CParameter { name = paramName, type = col.DbType, defaultValue = "" }); } match = match.NextMatch(); } return(query); }
private void OnDataCollectWorker_RemoveDuplicateServers() { List <CService> servers = new List <CService> { }; servers.AddRange(DiscoveredServers.OfType <CService>()); servers = servers.OrderBy(o => o.Name).ToList(); string lastServerName = ""; int lastServerType = -1; for (int i = 0; i < servers.Count(); i++) { //Log.Write(servers[i].Name); if ((lastServerName.ToLower() == servers[i].Name.ToLower()) && (lastServerType == servers[i].Type)) { servers.RemoveAt(i); // same server name with same server type } else { CQuery q = servers[i].Session.Queries[0]; for (int j = 0; j < q.Result.Count; j++) { CDiscoveredConfig sc = q.Result[j]; for (int k = 0; k < servers.Count(); k++) { // server already exists as another server's child if (servers[k].Name.ToLower() == sc.Name.ToLower() && (servers[k].Id != servers[i].Id)) { servers.RemoveAt(k); } } } } if (i < servers.Count) { lastServerName = servers[i].Name; lastServerType = servers[i].Type; } } DiscoveredServers.Clear(); DiscoveredServers.AddRange(servers); }
private void GenerateCellRelations(int cellNumber) { // Generate the view cell relation var projectedSlots = new List <ViewCellSlot>(); // construct a ViewCellSlot for each slot Debug.Assert( CQuery.NumProjectedSlots == SQuery.NumProjectedSlots, "Cell queries in cell have a different number of slots"); for (var i = 0; i < CQuery.NumProjectedSlots; i++) { var cSlot = CQuery.ProjectedSlotAt(i); var sSlot = SQuery.ProjectedSlotAt(i); Debug.Assert(cSlot != null, "Has cell query been normalized?"); Debug.Assert(sSlot != null, "Has cell query been normalized?"); var cJoinSlot = (MemberProjectedSlot)cSlot; var sJoinSlot = (MemberProjectedSlot)sSlot; var slot = new ViewCellSlot(i, cJoinSlot, sJoinSlot); projectedSlots.Add(slot); } m_viewCellRelation = new ViewCellRelation(this, projectedSlots, cellNumber); }
/// <summary> /// Initializes a new instance of the <see cref="CSuppress"/> class. /// </summary> /// <param name="parent">The parent.</param> /// <param name="path">The path.</param> public CSuppress(CQuery parent, string path) : base(parent, path) { IsSelect = false; }
/// <summary> /// Initializes a new instance of the <see cref="CSelect"/> class. /// </summary> /// <param name="parent">The parent.</param> /// <param name="path">The path.</param> public CSelect(CQuery parent, string path) { Parent = parent; Path = path; }
internal override void ToFullString(StringBuilder builder) { CQuery.ToFullString(builder); builder.Append(" = "); SQuery.ToFullString(builder); }
//--------------------------------------------------------------------------------------------------------- /// <summary> /// Конструктор по умолчанию инициализирует объект класса предустановленными значениями /// </summary> //--------------------------------------------------------------------------------------------------------- public CubeXDataGrid() { InitializeComponent(); SetResourceReference(StyleProperty, typeof(DataGrid)); FilterQuery = new CQuery(); }