示例#1
0
        public void InstantFigures_MutatorAndAccessorById_Test()
        {
            str = new InstantFigure(InstantFigureMocks.InstantFigure_MemberRubric_FieldsAndPropertiesModel(),
                                    "InstantFigure_MemberRubric_FieldsAndPropertiesModel");
            FieldsAndPropertiesModel fom = new FieldsAndPropertiesModel();

            iRts = InstantFigure_Compilation_Helper_Test(str, fom);

            rtsq = new InstantFigures(str, "InstantSequence_Compilation_Test");

            iRtseq = rtsq.New();

            iRtseq.Add(iRtseq.NewFigure());
            iRtseq[0, 4] = iRts[4];

            isel = new InstantSelection(iRtseq);

            IFigures ifsel = isel.New();

            IFigures isel2 = new InstantSelection(ifsel).New();

            isel2.Add(isel2.NewFigure());
            isel2[0, 4] = iRts[4];

            Assert.Equal(iRts[4], isel2[0, 4]);
        }
示例#2
0
        public static IFigures  Query(this IFigures figures, Func <IFigure, bool> evaluator)
        {
            IFigures view = figures.Exposition = (IFigures)figures.FiguresType.New();

            view.Add(figures.AsEnumerable().AsQueryable().Where(evaluator));
            return(view);
        }
示例#3
0
        /// <summary>
        /// The Query.
        /// </summary>
        /// <param name="figures">The figures<see cref="IFigures"/>.</param>
        /// <param name="queryFormula">The queryFormula<see cref="Func{IFigure, bool}"/>.</param>
        /// <returns>The <see cref="IFigures"/>.</returns>
        public static IFigures Query(this IFigures figures, Func <IFigure, bool> queryFormula)
        {
            IFigures view = figures.View;

            view.Flush();
            view.Add(figures.Where(queryFormula));
            return(view);
        }
        public void Sleeve_SelectionFromFiguresMultiNesting_Test()
        {
            rtsq   = new Figures(typeof(FieldsAndPropertiesModel), "InstantSequence_Compilation_Test", true);
            iRtseq = rtsq.Combine();

            iRts = Sleeve_Compilation_Helper_Test(iRtseq, new FieldsAndPropertiesModel());

            int      idSeed = (int)iRts["Id"];
            DateTime now    = DateTime.Now;

            for (int i = 0; i < 250000; i++)
            {
                IFigure _iRts = iRtseq.NewFigure();
                _iRts.ValueArray = iRts.ValueArray;
                _iRts["Id"]      = idSeed + i;
                _iRts["Time"]    = now;
                iRtseq.Add(_iRts);
            }

            ulong[] keyarray = new ulong[60 * 1000];
            for (int i = 0; i < 60000; i++)
            {
                keyarray[i] = Unique.NewKey;
            }

            iRtseq.Add(iRtseq.NewFigure());
            iRtseq[0, 4] = iRts[4];

            IFigures isel1 = new Sleeves(iRtseq).Combine();
            IFigures isel2 = new Sleeves(isel1).Combine();

            foreach (var card in iRtseq)
            {
                isel2.Add(card);
            }

            iRts = Sleeve_Compilation_Helper_Test(iRtseq, new FieldsAndPropertiesModel());

            isel2.Add(iRts);
            isel2[0, 4] = iRts[4];

            Assert.Equal(iRts[4], isel2[0, 4]);
            Assert.Equal(iRtseq.Count, isel1.Count);
            Assert.Equal(isel1.Count, isel2.Count);
        }
示例#5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ExtractorTest"/> class.
        /// </summary>
        public ExtractorTest()
        {
            Random r = new Random();

            r.NextBytes(source);

            str = new Figure(FigureMocks.Figure_MemberRubric_FieldsAndPropertiesModel(),
                             "Figure_MemberRubric_FieldsAndPropertiesModel_ValueType");
            FieldsAndPropertiesModel fom = new FieldsAndPropertiesModel();

            table = new Figures(str, "Figures_Compilation_Test");
            rctab = table.Combine();

            rcobj = rctab.NewFigure();

            foreach (var rubric in str.Rubrics.AsValues())
            {
                if (rubric.FieldId > -1)
                {
                    var field = fom.GetType().GetField(rubric.FigureField.Name,
                                                       BindingFlags.NonPublic | BindingFlags.Instance);
                    if (field == null)
                    {
                        field = fom.GetType().GetField(rubric.RubricName);
                    }
                    if (field == null)
                    {
                        var prop = fom.GetType().GetProperty(rubric.RubricName);
                        if (prop != null)
                        {
                            rcobj[rubric.FieldId] = prop.GetValue(fom);
                        }
                    }
                    else
                    {
                        rcobj[rubric.FieldId] = field.GetValue(fom);
                    }
                }
            }

            for (int i = 0; i < 1000; i++)
            {
                IFigure nrcstr = rctab.NewFigure();
                nrcstr.ValueArray = rcobj.ValueArray;
                rctab.Add(i, nrcstr);
            }

            structBytes  = new byte[rctab.FigureSize];
            structBytes2 = new byte[rctab.FigureSize];

            rcobj.StructureTo(ref structBytes, 0);
        }
        public void Figures_MutatorAndAccessorByName_Test()
        {
            str = new Figure(typeof(FieldsAndPropertiesModel));
            FieldsAndPropertiesModel fom = new FieldsAndPropertiesModel();

            iRts = Figure_Compilation_Helper_Test(str, fom);

            rtsq = new Figures(str, "InstantSequence_Compilation_Test");

            iRtseq = rtsq.Combine();

            iRtseq.Add(iRtseq.NewFigure());
            iRtseq[0, nameof(fom.Name)] = iRts[nameof(fom.Name)];

            Assert.Equal(iRts[nameof(fom.Name)], iRtseq[0, nameof(fom.Name)]);
        }
示例#7
0
        /// <summary>
        /// The Set.
        /// </summary>
        /// <param name="SqlConnectString">The SqlConnectString<see cref="string"/>.</param>
        /// <param name="cards">The cards<see cref="IFigures"/>.</param>
        /// <param name="Renew">The Renew<see cref="bool"/>.</param>
        /// <returns>The <see cref="IDeck{IDeck{IFigure}}"/>.</returns>
        public IDeck <IDeck <IFigure> > Set(string SqlConnectString, IFigures cards, bool Renew)
        {
            try
            {
                if (sqaf == null)
                {
                    sqaf = new Sqlbase(SqlConnectString);
                }
                try
                {
                    bool buildmap = true;
                    if (cards.Count > 0)
                    {
                        BulkPrepareType prepareType = BulkPrepareType.Drop;

                        if (Renew)
                        {
                            prepareType = BulkPrepareType.Trunc;
                        }

                        var ds = sqaf.Update(cards, true, buildmap, true, null, prepareType);
                        if (ds != null)
                        {
                            IFigures im = (IFigures)Summon.New(cards.GetType());
                            im.Rubrics    = cards.Rubrics;
                            im.FigureType = cards.FigureType;
                            im.FigureSize = cards.FigureSize;
                            im.Add(ds["Failed"].AsValues());
                            return(sqaf.Insert(im, true, false, prepareType));
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    return(null);
                }
                catch (SqlException ex)
                {
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void InstantFigures_MutatorAndAccessorByName_Test()
        {
            str = new InstantFigure(InstantFigureMocks.InstantFigure_MemberRubric_FieldsAndPropertiesModel(),
                                    "InstantFigure_MemberRubric_FieldsAndPropertiesModel");
            FieldsAndPropertiesModel fom = new FieldsAndPropertiesModel();

            iRts = InstantFigure_Compilation_Helper_Test(str, fom);

            rtsq = new InstantFigures(str, "InstantSequence_Compilation_Test");

            iRtseq = rtsq.New();

            iRtseq.Add(iRtseq.NewFigure());
            iRtseq[0, nameof(fom.Name)] = iRts[nameof(fom.Name)];

            Assert.Equal(iRts[nameof(fom.Name)], iRtseq[0, nameof(fom.Name)]);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MathsetTest"/> class.
        /// </summary>
        public MathsetTest()
        {
            instFig = new Figure(typeof(MathsetMockModel));

            instMtic = new Figures(instFig, "Figures_Mathset_Test");

            spcMtic = instMtic.Combine();

            MathsetMockModel fom = new MathsetMockModel();

            for (int i = 0; i < 1000 * 1000; i++)
            {
                var f = Mathset_Figure_Helper_Test(spcMtic, fom);
                f["NetPrice"] = (double)f["NetPrice"] + i;
                f["NetCost"]  = (double)f["NetPrice"] / 2;
                spcMtic.Add(i, f);
            }
        }
示例#10
0
        /// <summary>
        /// The ExecuteQuery.
        /// </summary>
        /// <param name="figures">The figures<see cref="IFigures"/>.</param>
        /// <param name="filter">The filter<see cref="FigureFilter"/>.</param>
        /// <param name="sort">The sort<see cref="FigureSort"/>.</param>
        /// <param name="stage">The stage<see cref="int"/>.</param>
        /// <param name="appendfigures">The appendfigures<see cref="IFigure[]"/>.</param>
        /// <returns>The <see cref="IFigures"/>.</returns>
        private static IFigures ExecuteQuery(IFigures figures, FigureFilter filter, FigureSort sort, int stage = 1, IFigure[] appendfigures = null)
        {
            IFigures table    = figures;
            IFigures _figures = null;
            IFigures view     = figures.View;

            if (appendfigures == null)
            {
                if (stage > 1)
                {
                    _figures = view;
                }
                else if (stage < 0)
                {
                    _figures = figures;
                    view     = figures.View;
                    view.Flush();
                }
                else
                {
                    _figures = table;
                }
            }

            if (filter != null && filter.Terms.Count > 0)
            {
                filter.Evaluator  = filter.GetExpression(stage).Compile();
                view.QueryFormula = filter.Evaluator;

                if (sort != null && sort.Terms.Count > 0)
                {
                    bool isFirst = true;
                    IEnumerable <IFigure>       ief  = null;
                    IOrderedQueryable <IFigure> ioqf = null;
                    if (appendfigures != null)
                    {
                        ief = appendfigures.Where(filter.Evaluator);
                    }
                    else
                    {
                        ief = _figures.Where(filter.Evaluator);
                    }

                    foreach (SortTerm fcs in sort.Terms)
                    {
                        if (isFirst)
                        {
                            ioqf = ief
                                   .AsQueryable()
                                   .OrderBy(o =>
                                            o[fcs.RubricName],
                                            fcs.Direction,
                                            Comparer <object> .Default);
                        }
                        else
                        {
                            ioqf = ioqf
                                   .ThenBy(o =>
                                           o[fcs.RubricName],
                                           fcs.Direction,
                                           Comparer <object> .Default);
                        }
                        isFirst = false;
                    }

                    if (appendfigures != null)
                    {
                        view.Add(ioqf.ToArray());
                    }
                    else
                    {
                        view.Flush();
                        view.Add(ioqf.ToArray());
                    }
                }
                else
                {
                    if (appendfigures != null)
                    {
                        view.Add(appendfigures.Where(filter.Evaluator).ToArray());
                    }
                    else
                    {
                        view.Flush();
                        view.Add(figures.Where(filter.Evaluator).ToArray());
                    }
                }
            }
            else if (sort != null && sort.Terms.Count > 0)
            {
                view.QueryFormula     = null;
                view.Filter.Evaluator = null;

                bool isFirst = true;
                IOrderedQueryable <IFigure> ioqf = null;

                foreach (SortTerm fcs in sort.Terms)
                {
                    if (isFirst)
                    {
                        if (appendfigures != null)
                        {
                            ioqf = appendfigures
                                   .AsQueryable()
                                   .OrderBy(o =>
                                            o[fcs.RubricName],
                                            fcs.Direction,
                                            Comparer <object> .Default);
                        }
                        else
                        {
                            ioqf = _figures
                                   .AsQueryable()
                                   .OrderBy(o =>
                                            o[fcs.RubricName],
                                            fcs.Direction,
                                            Comparer <object> .Default);
                        }
                    }
                    else
                    {
                        ioqf = ioqf
                               .ThenBy(o =>
                                       o[fcs.RubricName],
                                       fcs.Direction,
                                       Comparer <object> .Default);
                    }

                    isFirst = false;
                }

                if (appendfigures != null)
                {
                    view.Add(ioqf);
                }
                else
                {
                    view.Add(ioqf);
                }
            }
            else
            {
                if (stage < 2)
                {
                    view.QueryFormula     = null;
                    view.Filter.Evaluator = null;
                }

                if (appendfigures != null)
                {
                    view.Add(appendfigures);
                }
                else
                {
                    view.Add(figures);
                }
            }

            //  view.PagingDetails.ComputePageCount(view.Count);
            if (stage > 0)
            {
                table.View = view;
            }
            return(view);
        }
示例#11
0
        private static IFigures ExecuteQuery(IFigures _figures, FigureFilter filter, FigureSort sort, int stage = 1, IFigure[] appendfigures = null)
        {
            IFigures trell   = _figures;
            IFigures figures = null;
            IFigures view    = _figures.Exposition;

            if (appendfigures == null)
            {
                if (stage > 1)
                {
                    figures = view;
                }
                else if (stage < 0)
                {
                    figures = _figures;
                    view    = _figures.Exposition = (IFigures)_figures.FiguresType.New();
                }
                else
                {
                    figures = trell;
                }
            }

            if (filter != null && filter.Terms.Count > 0)
            {
                filter.Evaluator = filter.GetExpression(stage).Compile();
                view.Query       = filter.Evaluator;

                if (sort != null && sort.Terms.Count > 0)
                {
                    bool isFirst = true;
                    IEnumerable <IFigure>       tsrt = null;
                    IOrderedQueryable <IFigure> ttby = null;
                    if (appendfigures != null)
                    {
                        tsrt = appendfigures.AsEnumerable().Where(filter.Evaluator);
                    }
                    else
                    {
                        tsrt = figures.AsEnumerable().Where(filter.Evaluator);
                    }

                    foreach (SortTerm fcs in sort.Terms)
                    {
                        if (isFirst)
                        {
                            ttby = tsrt.AsQueryable().OrderBy(o => o[fcs.RubricName], fcs.Direction, Comparer <object> .Default);
                        }
                        else
                        {
                            ttby = ttby.ThenBy(o => o[fcs.RubricName], fcs.Direction, Comparer <object> .Default);
                        }
                        isFirst = false;
                    }

                    if (appendfigures != null)
                    {
                        view.Add(ttby.ToArray());
                    }
                    else
                    {
                        view.Clear();
                        view.Add(ttby.ToArray());
                    }
                }
                else
                {
                    if (appendfigures != null)
                    {
                        view.Add(appendfigures.AsQueryable().Where(filter.Evaluator).ToArray());
                    }
                    else
                    {
                        view.Clear();
                        view.Add(figures.AsEnumerable().AsQueryable().Where(filter.Evaluator).ToArray());
                    }
                }
            }
            else if (sort != null && sort.Terms.Count > 0)
            {
                view.Query            = null;
                view.Filter.Evaluator = null;

                bool isFirst = true;
                IOrderedQueryable <IFigure> ttby = null;

                foreach (SortTerm fcs in sort.Terms)
                {
                    if (isFirst)
                    {
                        if (appendfigures != null)
                        {
                            ttby = appendfigures.AsQueryable().OrderBy(o => o[fcs.RubricName], fcs.Direction, Comparer <object> .Default);
                        }
                        else
                        {
                            ttby = figures.AsEnumerable().AsQueryable().OrderBy(o => o[fcs.RubricName], fcs.Direction, Comparer <object> .Default);
                        }
                    }
                    else
                    {
                        ttby = ttby.ThenBy(o => o[fcs.RubricName], fcs.Direction, Comparer <object> .Default);
                    }

                    isFirst = false;
                }

                if (appendfigures != null)
                {
                    view.Add(ttby);
                }
                else
                {
                    view.Add(ttby);
                }
            }
            else
            {
                if (stage < 2)
                {
                    view.Query            = null;
                    view.Filter.Evaluator = null;
                }

                if (appendfigures != null)
                {
                    view.Add(appendfigures);
                }
                else
                {
                    view.Add(figures);
                }
            }

            //  view.PagingDetails.ComputePageCount(view.Count);
            if (stage > 0)
            {
                trell.Exposition = view;
            }
            return(view);
        }