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})"); }
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); } }
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); }
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); }