コード例 #1
0
        public void Overrides(bool isInterface, bool isSealed, bool isAbstract)
        {
            var mGenerics = Enumerable.Range(0, 2).Select(i => GenericParameter.Create("U" + i)).ToArray();
            var baseType  = isInterface ? TypeSignature.Interface("Base", ns, Accessibility.APublic)
                                       : TypeSignature.Class("BaseC", ns, Accessibility.APublic, isAbstract: true);

            var baseMethod1  = MethodSignature.Abstract("M1", baseType, isInterface ? Accessibility.APublic : Accessibility.AProtected, TypeSignature.Object).With(isAbstract: isInterface);
            var baseMethod2  = MethodSignature.Abstract("M2", baseType, Accessibility.APublic, mGenerics[0], new MethodParameter(mGenerics[1], "a")).With(typeParameters: mGenerics.ToImmutableArray());
            var baseProperty = PropertySignature.Abstract("P1", baseType, TypeSignature.Boolean, Accessibility.APublic, null);

            cx.AddType(TypeDef.Empty(baseType).AddMember(
                           isInterface ? MethodDef.InterfaceDef(baseMethod1) : MethodDef.Create(baseMethod1, _ => Expression.Constant <object>(null)),
                           MethodDef.InterfaceDef(baseMethod2),
                           PropertyDef.InterfaceDef(baseProperty)
                           ));

            var type     = TypeSignature.Class("C", ns, Accessibility.APublic, canOverride: !isSealed, isAbstract: isAbstract);
            var method1  = MethodSignature.Override(type, baseMethod1, isAbstract: isAbstract);
            var method2  = MethodSignature.Override(type, baseMethod2);
            var property = PropertySignature.Override(type, baseProperty);

            cx.AddType(TypeDef.Empty(type, isInterface ? null : baseType.Specialize())
                       .AddImplements(isInterface ? new [] { baseType.Specialize() } : new SpecializedType[0])
                       .AddMember(
                           isAbstract ? MethodDef.InterfaceDef(method1) : MethodDef.Create(method1, _ => Expression.Constant(1).Box()),
                           MethodDef.Create(method2, (_, __) => Expression.Default(method2.TypeParameters[0])),
                           PropertyDef.Create(property, @this => Expression.Default(property.Type))
                           ));

            check.CheckOutput(cx, $"ifc({isInterface})-sealed({isSealed})-abstract({isAbstract})");
        }
コード例 #2
0
        public List <RegistroGraficoUm> Exemplificar()
        {
            using (UnitOfWork UoW = new UnitOfWork())
            {
                DbParameter parametro = GenericParameter.Create("@SIGLA_UE", System.Data.DbType.AnsiString);
                parametro.Value = "72435";

                List <DbParameter> lstParametros = new List <DbParameter>();
                lstParametros.Add(parametro);


                List <RegistroGraficoUm> lst = UoW.GetContext().Database.SqlQuery <RegistroGraficoUm>("spListarBensPrefeitos @SIGLA_UE", lstParametros.ToArray()).ToList();

                return(lst);
            }
        }
コード例 #3
0
ファイル: Metadata.cs プロジェクト: exyi/coberec
        public void GenericClass()
        {
            var paramT         = GenericParameter.Create("T");
            var myContainerSgn = TypeSignature.Class(
                "MyContainer",
                NamespaceSignature.Parse("NS"),
                Accessibility.APublic,
                genericParameters: new [] { paramT }
                );

            var(item_field, item_prop) = PropertyBuilders.CreateAutoProperty(
                myContainerSgn,
                name: "Item",
                propertyType: paramT,
                isReadOnly: false
                );

            var listType = TypeSignature.FromType(typeof(List <>))
                           .Specialize(paramT);
            var toListSgn = MethodSignature.Instance(
                "ToList",
                myContainerSgn,
                Accessibility.APublic,
                returnType: listType
                );

            var toListDef = MethodDef.Create(toListSgn, thisParam => {
                var resultVar = ParameterExpression.Create(listType, "result");
                var listCtor  = MethodReference.FromLambda(() => new List <int>())
                                .Signature
                                .Specialize(paramT);
                var listAdd = MethodReference.FromLambda <List <int> >(l => l.Add(0))
                              .Signature
                              .Specialize(paramT);

                return(Expression.LetIn(
                           // result = new List<T>()
                           resultVar, Expression.NewObject(listCtor),
                           new [] {
                    // result.Add(this.Item)
                    resultVar.Read().CallMethod(listAdd,
                                                thisParam.Read().ReadField(item_field.Signature.SpecializeFromDeclaringType())
                                                )
                }.ToBlock(resultVar)
                           ));
            });

            var copyFromSgn = MethodSignature.Instance(
                "CopyFrom",
                myContainerSgn,
                Accessibility.APublic,
                returnType: TypeSignature.Void,
                new MethodParameter(
                    myContainerSgn.SpecializeByItself(),
                    "other"
                    )
                );

            var copyFromDef = MethodDef.Create(copyFromSgn, (thisParam, otherParam) => {
                var field = item_field.Signature.SpecializeFromDeclaringType();
                return(thisParam.Read().AssignField(
                           field,
                           otherParam.Read().ReadField(field)
                           ));
            });


            var myContainerDef =
                TypeDef.Empty(myContainerSgn)
                .AddMember(item_field, item_prop, toListDef, copyFromDef);

            cx.AddType(myContainerDef);

            check.CheckOutput(cx);
        }
コード例 #4
0
ファイル: ConsultasBL.cs プロジェクト: janderlvf/DadosTSE
        public List <ANALISE2_1> Escolaridade(AnaliseFiltro filtro)
        {
            List <ANALISE2_1> lst = null;

            #region Parametros

            List <DbParameter> lstParametros = new List <DbParameter>();
            DbParameter        parametro     = null;

            parametro = GenericParameter.Create("@ANO", System.Data.DbType.Int32);
            if (filtro.Ano > 0)
            {
                parametro.Value = filtro.Ano;
            }
            else
            {
                parametro.Value = DBNull.Value;
            }
            lstParametros.Add(parametro);

            parametro = GenericParameter.Create("@SEXO", System.Data.DbType.AnsiString);
            if (!String.IsNullOrEmpty(filtro.Sexo))
            {
                parametro.Value = filtro.Sexo;
            }
            else
            {
                parametro.Value = DBNull.Value;
            }
            lstParametros.Add(parametro);

            parametro = GenericParameter.Create("@IDESCOLARIDADE", System.Data.DbType.Int32);
            if (filtro.EscolaridadeID > -1)
            {
                parametro.Value = filtro.EscolaridadeID;
            }
            else
            {
                parametro.Value = DBNull.Value;
            }
            lstParametros.Add(parametro);


            parametro = GenericParameter.Create("@OCUPACAO", System.Data.DbType.AnsiString);
            if (!String.IsNullOrEmpty(filtro.Ocupacao))
            {
                parametro.Value = filtro.Ocupacao;
            }
            else
            {
                parametro.Value = DBNull.Value;
            }
            lstParametros.Add(parametro);

            parametro = GenericParameter.Create("@REGIAO", System.Data.DbType.AnsiString);
            if (!String.IsNullOrEmpty(filtro.Regiao))
            {
                parametro.Value = filtro.Regiao;
            }
            else
            {
                parametro.Value = DBNull.Value;
            }
            lstParametros.Add(parametro);

            parametro = GenericParameter.Create("@SIGLAESTADO", System.Data.DbType.AnsiString);
            if (!String.IsNullOrEmpty(filtro.EstadoSigla))
            {
                parametro.Value = filtro.EstadoSigla;
            }
            else
            {
                parametro.Value = DBNull.Value;
            }
            lstParametros.Add(parametro);


            parametro = GenericParameter.Create("@IDMUNICIPIO", System.Data.DbType.Int32);
            if (filtro.MunicipioID > 0)
            {
                parametro.Value = filtro.MunicipioID;
            }
            else
            {
                parametro.Value = DBNull.Value;
            }
            lstParametros.Add(parametro);

            parametro = GenericParameter.Create("@SIGLAPARTIDO", System.Data.DbType.AnsiString);
            if (!String.IsNullOrEmpty(filtro.PartidoSigla))
            {
                parametro.Value = filtro.PartidoSigla;
            }
            else
            {
                parametro.Value = DBNull.Value;
            }
            lstParametros.Add(parametro);

            parametro = GenericParameter.Create("@IDCARGOPRETENDIDO", System.Data.DbType.Int32);
            if (filtro.CargoPretendidoID > -1)
            {
                parametro.Value = filtro.CargoPretendidoID;
            }
            else
            {
                parametro.Value = DBNull.Value;
            }
            lstParametros.Add(parametro);

            #endregion Parametros

            using (UnitOfWork UoW = new UnitOfWork())
            {
                string script = "SP_ANALISE2_1  @ANO, @SEXO, @IDESCOLARIDADE, @OCUPACAO, @REGIAO, @SIGLAESTADO, @IDMUNICIPIO, @SIGLAPARTIDO, @IDCARGOPRETENDIDO ";

                lst = UoW.GetContext().Database.SqlQuery <ANALISE2_1>(script, lstParametros.ToArray()).ToList();
            }

            return(lst);
        }