예제 #1
0
        private List <TileQueryLogic> GenerateQueryLogicFromAppTile(AppTile appTile)
        {
            List <TileQueryLogic> logicList = new List <TileQueryLogic>();
            TileQueryLogic        logic     = null;

            #region switch
            switch (appTile.logicType)
            {
            case LogicType.Selected:
                logic = SetTileQueryLogic(appTile.BasicLogic, appTile);
                logicList.Add(logic);
                break;

            case LogicType.Filtered:
                foreach (var item in (appTile.BasicLogic as AND).LogicElements)
                {
                    logic = SetTileQueryLogic(item, appTile);
                    logicList.Add(logic);
                }
                break;

            case LogicType.Tagged:
                logic = SetTileQueryLogic(appTile.BasicLogic, appTile);
                logicList.Add(logic);
                break;

            default:
                break;
            }
            #endregion

            return(logicList);
        }
예제 #2
0
        private TileQueryLogic SetTileQueryLogic(Logic logic, AppTile appTile)
        {
            TileQueryLogic qc = new TileQueryLogic();

            if ((logic as IN <string>) != null)
            {
                qc.FiledName  = (logic as IN <string>).Field.Name;
                qc.FiledValue = string.Join(",", (logic as IN <string>).FieldValue.GetValue());
            }
            else
            {
                qc.FiledName  = (logic as IN <Int32>).Field.Name;
                qc.FiledValue = string.Join(",", (logic as IN <Int32>).FieldValue.GetValue());
            }

            if (appTile.Id != null)
            {
                qc.TileId = appTile.Id.Value;
            }
            return(qc);
        }