public (IContainer resolver, ILog logToConsole) GetResolver(IReloadingManager <AppSettings> appSettings) { ContainerBuilder containerBuilder = new ContainerBuilder(); IServiceCollection collection = new Microsoft.Extensions.DependencyInjection.ServiceCollection(); containerBuilder.RegisterInstance(appSettings); containerBuilder.RegisterInstance <IBaseSettings>(appSettings.CurrentValue.EthereumCore); containerBuilder.RegisterInstance <ISlackNotificationSettings>(appSettings.CurrentValue.SlackNotifications); containerBuilder.RegisterInstance(appSettings.Nested(x => x.EthereumCore)); containerBuilder.RegisterInstance(appSettings.CurrentValue); var consoleLogger = new LogToConsole(); collection.AddSingleton <ILog>(consoleLogger); RegisterReposExt.RegisterAzureQueues(containerBuilder, appSettings.Nested(x => x.EthereumCore.Db.DataConnString), appSettings.Nested(x => x.SlackNotifications)); RegisterReposExt.RegisterAzureStorages(containerBuilder, appSettings.Nested(x => x.EthereumCore), appSettings.Nested(x => x.SlackNotifications), consoleLogger); RegisterRabbitQueueEx.RegisterRabbitQueue(collection, appSettings.Nested(x => x.EthereumCore.RabbitMq), appSettings.Nested(x => x.EthereumCore.Db.DataConnString), consoleLogger); RegisterDependency.RegisterServices(collection); RegisterDependency.RegisterServices(containerBuilder); containerBuilder.Populate(collection); containerBuilder.RegisterInstance <ILog>(consoleLogger); var resolver = containerBuilder.Build(); resolver.ActivateRequestInterceptor(); return(resolver, consoleLogger); }
public void GetUsuario() { RegisterDependency.Init(); var usuario = Cuenta.Get("admin"); Assert.AreEqual(false, usuario == null); }
public void ObtenerMenu() { RegisterDependency.Init(); var criteria = ModuloFuncionalidadCriteria.New(); criteria.Usuario = "admin"; System.Diagnostics.Trace.WriteLine("Test Cache"); var t1 = DateTime.Now.Ticks; var funcionalidades = ModuloFuncionalidadList.Get(criteria); var t2 = DateTime.Now.Ticks; var funcionalidades1 = ModuloFuncionalidadList.Get(criteria); var t3 = DateTime.Now.Ticks; var funcionalidades3 = ModuloFuncionalidadList.Get(criteria); var t4 = DateTime.Now.Ticks; System.Diagnostics.Trace.WriteLine(string.Format("Tiempos:{0}, {1}, {2}, {3}", t1, t2, t3, t4)); System.Diagnostics.Trace.WriteLine("T1:" + ((t2 - t1) / 1000)); System.Diagnostics.Trace.WriteLine("T2:" + ((t3 - t2) / 1000)); System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t3) / 1000)); Assert.AreEqual(funcionalidades1.Count, funcionalidades.Count); Assert.AreEqual(funcionalidades3.Count, funcionalidades.Count); Assert.AreEqual(funcionalidades1.First().Id, funcionalidades.First().Id); Assert.AreEqual(funcionalidades3.First().Id, funcionalidades.First().Id); }
/// <summary>Registers the type mappings with the Unity container.</summary> /// <param name="container">The unity container to configure.</param> /// <remarks>There is no need to register concrete types such as controllers or API controllers (unless you want to /// change the defaults), as Unity allows resolving a concrete type even if it was not previously registered.</remarks> public static void RegisterTypes(IUnityContainer container) { // NOTE: To load from web.config uncomment the line below. Make sure to add a Microsoft.Practices.Unity.Configuration to the using statements. // container.LoadConfiguration(); // TODO: Register your types here RegisterDependency.Configure(container); }
static void Main(string[] args) { RegisterDependency.Init(); IServiceLocator locator = ServiceLocator.Current; IEncripta e = locator.GetInstance <IEncripta>(); Console.Read(); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); RegisterDependency.Init(); }
protected void Application_Start(object sender, EventArgs e) { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); RegisterDependency.Init(); ModelBinders.Binders.DefaultBinder = new Csla.Web.Mvc.CslaModelBinder(); }
public static IHostBuilder CreateHostBuilder(string[] args) { return(Host.CreateDefaultBuilder(args) .UseWindowsService() .ConfigureServices((hostContext, services) => { RegisterDependency.RegisterAll(services); services.AddHostedService <EmailWorkerService>(); //services.AddSingleton<IEmaiService, EmailService>(); }) .UseSerilog()); }
public void RemoveMongoInfo() { RegisterDependency.Init(); ICache mongoDb = ServiceLocator.Current.GetInstance <ICache>(); mongoDb.RemoveItem(key); var data1 = (ObjTest)(mongoDb.GetData(key)); Assert.IsNull(data1); }
private void WriteRegisterDependency(XmlWriter writer, RegisterDependency dependency) { writer.WriteStartElement("register"); writer.WriteAttributeString("type", dependency.Type); writer.WriteAttributeString("as", dependency.As); if (dependency.Name.IsNotNullOrWhiteSpace()) { writer.WriteAttributeString("name", dependency.Name); } writer.WriteEndElement(); }
public void ActualizarUsuario() { RegisterDependency.Init(); var usuario = Cuenta.Get("admin"); usuario.EnLinea = false; usuario.Accesos = usuario.Accesos + 1; usuario.UltimoAcceso = DateTime.Now; var user = usuario.Save(); Assert.AreEqual(false, user == null); Assert.AreEqual(true, user != null && usuario.Accesos == user.Accesos); }
public void InsertMongoInfo() { RegisterDependency.Init(); ICache mongoDb = ServiceLocator.Current.GetInstance <ICache>(); var data = new ObjTest(); data.Clave = "clave"; data.Valor = "Vaqlor"; mongoDb.AddItem(key, data, ""); var data1 = (ObjTest)(mongoDb.GetData(key)); Assert.AreEqual(data1.Valor, data.Valor); }
public void GetPersonaList() { RegisterDependency.Init(); var t1 = DateTime.Now.Ticks; var personaCriteria = PersonaNaturalCriteria.New(); personaCriteria.Identificacion = "001"; var personaList = PersonaNaturalList.Get(personaCriteria); //var persona = PersonaNatural.Get(personaList.First().Id); var t2 = DateTime.Now.Ticks; System.Diagnostics.Trace.WriteLine("T2:" + ((t2 - t1) / 1000)); Assert.AreNotEqual(personaList.Count, 0); }
private void WriteRegisterDependency(JsonWriter jsonWriter, RegisterDependency dependency) { jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("type"); jsonWriter.WriteValue(dependency.Type); jsonWriter.WritePropertyName("as"); jsonWriter.WriteValue(dependency.As); if (dependency.Name.IsNotNullOrWhiteSpace()) { jsonWriter.WritePropertyName("name"); jsonWriter.WriteValue(dependency.Name); } jsonWriter.WriteEndObject(); }
public static void Register(HttpConfiguration config) { // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); // Force always JSON formatter config.Formatters .JsonFormatter .SupportedMediaTypes .Add(new MediaTypeHeaderValue("text/html")); // IoC config.DependencyResolver = new IoCResolverConfiguration(RegisterDependency.Register()); }
public void GetCatalogo() { RegisterDependency.Init(); var t1 = DateTime.Now.Ticks; CatalogoItemList.Get(CatalogoConstantes.CatIdentificacionTipo); var t2 = DateTime.Now.Ticks; CatalogoItemList.Get(CatalogoConstantes.CatGenero); var t3 = DateTime.Now.Ticks; CatalogoItemList.Get(CatalogoConstantes.CatEstadoCivil); var t4 = DateTime.Now.Ticks; System.Diagnostics.Trace.WriteLine(string.Format("Tiempos:{0}, {1}, {2}, {3}", t1, t2, t3, t4)); System.Diagnostics.Trace.WriteLine("T1:" + ((t2 - t1) / 1000)); System.Diagnostics.Trace.WriteLine("T2:" + ((t3 - t2) / 1000)); System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t3) / 1000)); System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t1) / 1000)); t1 = DateTime.Now.Ticks; CatalogoItemList.Get(CatalogoConstantes.CatIdentificacionTipo); t2 = DateTime.Now.Ticks; CatalogoItemList.Get(CatalogoConstantes.CatGenero); t3 = DateTime.Now.Ticks; CatalogoItemList.Get(CatalogoConstantes.CatEstadoCivil); t4 = DateTime.Now.Ticks; System.Diagnostics.Trace.WriteLine(string.Format("Tiempos:{0}, {1}, {2}, {3}", t1, t2, t3, t4)); System.Diagnostics.Trace.WriteLine("T1:" + ((t2 - t1) / 1000)); System.Diagnostics.Trace.WriteLine("T2:" + ((t3 - t2) / 1000)); System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t3) / 1000)); System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t1) / 1000)); Assert.AreNotEqual(t4, 0); Assert.AreNotEqual(t4, 0); }
static async Task <int> DeployTokenAsync( string settingsUrl, string tokenCfgPath) { #region RegisterDependencies var appSettings = GetCurrentSettingsFromUrl(settingsUrl); ContainerBuilder containerBuilder = new ContainerBuilder(); IServiceCollection collection = new Microsoft.Extensions.DependencyInjection.ServiceCollection(); containerBuilder.RegisterInstance(appSettings); containerBuilder.RegisterInstance <IBaseSettings>(appSettings.CurrentValue.EthereumCore); containerBuilder.RegisterInstance <ISlackNotificationSettings>(appSettings.CurrentValue.SlackNotifications); containerBuilder.RegisterInstance(appSettings.Nested(x => x.EthereumCore)); containerBuilder.RegisterInstance(appSettings.CurrentValue); var consoleLogger = new LogToConsole(); collection.AddSingleton <ILog>(consoleLogger); RegisterReposExt.RegisterAzureQueues(containerBuilder, appSettings.Nested(x => x.EthereumCore.Db.DataConnString), appSettings.Nested(x => x.SlackNotifications)); RegisterReposExt.RegisterAzureStorages(containerBuilder, appSettings.Nested(x => x.EthereumCore), appSettings.Nested(x => x.SlackNotifications), consoleLogger); RegisterRabbitQueueEx.RegisterRabbitQueue(collection, appSettings.Nested(x => x.EthereumCore.RabbitMq), appSettings.Nested(x => x.EthereumCore.Db.DataConnString), consoleLogger); RegisterDependency.RegisterServices(collection); RegisterDependency.RegisterServices(containerBuilder); containerBuilder.Populate(collection); containerBuilder.RegisterInstance <ILog>(consoleLogger); var resolver = containerBuilder.Build(); resolver.ActivateRequestInterceptor(); #endregion var web3 = resolver.Resolve <IWeb3>(); var contractService = resolver.Resolve <IContractService>(); var ercInterfaceService = resolver.Resolve <IErcInterfaceService>(); var exchangeContractService = resolver.Resolve <IExchangeContractService>(); var text = File.ReadAllText(tokenCfgPath); var tokenCfg = Newtonsoft.Json.JsonConvert.DeserializeObject <TokenCfg>(text); var addressUtil = new AddressUtil(); if (!exchangeContractService.IsValidAddress(tokenCfg.HotwalletAddress)) { await consoleLogger.WriteInfoAsync(nameof(Main), tokenCfg.ToJson(), $"HotwalletAddress is not a valid address."); return(0); } await consoleLogger.WriteInfoAsync(nameof(Main), "", $"Started Deployment"); foreach (var tokenDescr in tokenCfg.Tokens) { await consoleLogger.WriteInfoAsync(nameof(Main), "", $"Processing {tokenDescr.TokenName}"); if (!BigInteger.TryParse(tokenDescr.InitialSupply, out var initialSupply) || initialSupply == 0) { await consoleLogger.WriteInfoAsync(nameof(Main), tokenDescr.ToJson(), $"Can't parse initial supply value. It is not a BigInt or zero"); continue; } if (!exchangeContractService.IsValidAddress(tokenDescr.IssuerAddress)) { await consoleLogger.WriteInfoAsync(nameof(Main), tokenDescr.ToJson(), $"Issuer address is not a valid address."); continue; } var(abi, bytecode) = GetContractDeploymentForTokenType(tokenDescr.TokenType); string address = tokenDescr.TokenType == TokenType.Emissive ? await contractService.CreateContract(abi, bytecode, 4000000, tokenDescr.IssuerAddress, tokenDescr.TokenName, tokenDescr.Divisibility, tokenDescr.TokenSymbol, tokenDescr.Version) : await contractService.CreateContract(abi, bytecode, 4000000, tokenDescr.IssuerAddress, tokenDescr.TokenName, tokenDescr.Divisibility, tokenDescr.TokenSymbol, tokenDescr.Version, initialSupply); await consoleLogger.WriteInfoAsync(nameof(Main), tokenDescr.ToJson(), $"Deployed at address {address}"); if (tokenDescr.TokenType == TokenType.Emissive) { await consoleLogger.WriteInfoAsync(nameof(Main), tokenDescr.ToJson(), $"Starting Emission to {tokenCfg.HotwalletAddress}"); var transactionHash = await ercInterfaceService.Transfer(address, addressUtil.ConvertToChecksumAddress(tokenDescr.IssuerAddress), //Should be in SigningService tokenCfg.HotwalletAddress, initialSupply); await consoleLogger.WriteInfoAsync(nameof(Main), tokenDescr.ToJson(), $"Emission txHash is {transactionHash}. " + $"Waiting for compleation"); WaitForTransactionCompleation(web3, transactionHash); await consoleLogger.WriteInfoAsync(nameof(Main), tokenDescr.ToJson(), "Completed."); } } await consoleLogger.WriteInfoAsync(nameof(Main), "", "Completed processing all tokens."); return(0); }
/// <summary> /// Load your modules or register your services here! /// </summary> /// <param name="kernel">The kernel.</param> private static void RegisterServices(IKernel kernel) { RegisterDependency.RegisterDependencies(kernel, GlobalConstants.DBConn, GlobalConstants.DefaultPageListSize, GetAllConfigs()); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { RegisterDependency.Register(services); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddDbContext <ApiContext>(o => o.UseNpgsql(Configuration.GetConnectionString("SgpConnection"))); var jwtConfiguration = Configuration .GetSection(nameof(JwtTokenSettings)); services.Configure <JwtTokenSettings>(jwtConfiguration); var jwtTokenSettings = jwtConfiguration .Get <JwtTokenSettings>(); services.AddAuthentication(o => { o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(o => { o.TokenValidationParameters = new TokenValidationParameters { ValidateLifetime = true, ValidateAudience = true, ValidAudience = jwtTokenSettings.Audience, ValidateIssuer = true, ValidIssuer = jwtTokenSettings.Issuer, ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(UTF8 .GetBytes(jwtTokenSettings.IssuerSigningKey)) }; }); services.Configure <ConnectionStrings>(Configuration .GetSection(nameof(ConnectionStrings))); services.Configure <PaginacaoSettings>(Configuration .GetSection(nameof(PaginacaoSettings))); services.Configure <AutorizacaoSettings>(Configuration .GetSection(nameof(AutorizacaoSettings))); // CORS (Cross-Origin Requests) services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => builder .AllowAnyOrigin() //.WithOrigins("https://origem1.com", "http://origem2.com.br") .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials() .Build()); }); services.AddSwaggerGen(o => { o.SwaggerDoc("v1", new Info { Title = "SME - API Pedagógico", Version = "v1" }); }); }
public static void Main(string[] args) { var exit = false; var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json").AddEnvironmentVariables(); var configuration = configurationBuilder.Build(); var settings = GetCurrentSettingsFromUrl(); SaveSettings(settings); IServiceCollection collection = new Microsoft.Extensions.DependencyInjection.ServiceCollection(); collection.AddSingleton(settings); collection.AddSingleton <IBaseSettings>(settings.CurrentValue.EthereumCore); collection.AddSingleton <ISlackNotificationSettings>(settings.CurrentValue.SlackNotifications); collection.AddSingleton(settings.Nested(x => x.EthereumCore)); collection.AddSingleton(settings.CurrentValue); var consoleLogger = new LogToConsole(); collection.AddSingleton <ILog>(consoleLogger); RegisterReposExt.RegisterAzureQueues(collection, settings.Nested(x => x.EthereumCore), settings.Nested(x => x.SlackNotifications)); RegisterReposExt.RegisterAzureStorages(collection, settings.Nested(x => x.EthereumCore), settings.Nested(x => x.SlackNotifications)); ServiceProvider = collection.BuildServiceProvider(); RegisterRabbitQueueEx.RegisterRabbitQueue(collection, settings.Nested(x => x.EthereumCore), ServiceProvider.GetService <ILog>()); RegisterDependency.RegisterServices(collection); Lykke.Job.EthereumCore.Config.RegisterDependency.RegisterJobs(collection); //var web3 = ServiceProvider.GetService<Web3>(); //web3.Eth.GetBalance.SendRequestAsync(""); // web3.Eth.Transactions.SendTransaction.SendRequestAsync(new Nethereum.RPC.Eth.DTOs.TransactionInput() //{ // //}).Result; //var key = EthECKey.GenerateKey().GetPrivateKeyAsBytes(); //var stringKey = Encoding.Unicode.GetString(key); GetAllContractInJson(); ServiceProvider = collection.BuildServiceProvider(); ServiceProvider.ActivateRequestInterceptor(); //var lykkeSigningAPI = ServiceProvider.GetService<ILykkeSigningAPI>(); //lykkeSigningAPI.ApiEthereumAddkeyPost(new AddKeyRequest() //{ // Key = "", //}); //var eventService = ServiceProvider.GetService<ITransactionEventsService>(); //eventService.IndexCashinEventsForAdapter("0x1c4ca817d1c61f9c47ce2bec9d7106393ff981ce", // "0x512867d36f1d6ee43f2056a7c41606133bce514fbc8e911c1834eeae80800ceb").Wait(); #region DBE TOKEN //string tokenAddress; //string depositAddress; //Contract contract; //var web3 = ServiceProvider.GetService<IWeb3>(); //{ // var abi = GetFileContent("Erc20DepositContract.abi"); // var bytecode = GetFileContent("Erc20DepositContract.bin"); // depositAddress = // ServiceProvider.GetService<IContractService>() // .CreateContract(abi, bytecode, 4000000) // .Result; //} //{ // var abi = GetFileContent("debtoken.abi"); // var bytecode = GetFileContent("debtoken.bin"); // tokenAddress = // ServiceProvider.GetService<IContractService>() // .CreateContract(abi, bytecode, 4000000) // .Result; // contract = web3.Eth.GetContract(abi, tokenAddress); //} //{ // var unfreezeFunc = contract.GetFunction("unfreeze"); // var transactionHash = unfreezeFunc.SendTransactionAsync(settings.CurrentValue.EthereumCore.EthereumMainAccount, // new HexBigInteger(BigInteger.Parse("200000")), new HexBigInteger(0)).Result; //} //{ // var erc20Service = ServiceProvider.GetService<IErcInterfaceService>(); // var transactionHash = erc20Service.Transfer(tokenAddress, settings.CurrentValue.EthereumCore.EthereumMainAccount, // depositAddress, System.Numerics.BigInteger.Parse("1000000000000000000")).Result; //} #endregion #region StatusExamples //var service = ServiceProvider.GetService<ICoinTransactionService>(); //{ // //fail // var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage() // { // TransactionHash = "0xf86efe1b8de285b8255519ca7d0ac76088132e6c5306f88dfc27312c6d7127ea", // }).Result; //} //{ // //ok // var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage() // { // TransactionHash = "0xa237230df97a0d6710241597a0186662928afa373c13b8d4eac86f36aa678985", // }).Result; //} //{ // //fail // var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage() // { // TransactionHash = "0xb63ac4f94006cbbfe58a1d651e173c56dc74a45e4d1141ac57fc51a0d4202e95", // }).Result; //} //{ // //fail // var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage() // { // TransactionHash = "0x1df50ee79d0af8b433f7f0be2a84cbb5dc3e29e5822e78b9c6a7ec33d027e286", // }).Result; //} //{ // //fail // var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage() // { // TransactionHash = "0xa3d4c1da523273371fe45c928b9236b353976e7b9e6d2b31e659f7a4c781a764", // }).Result; //} #endregion //0xf86efe1b8de285b8255519ca7d0ac76088132e6c5306f88dfc27312c6d7127ea 0x0 //0xa237230df97a0d6710241597a0186662928afa373c13b8d4eac86f36aa678985 0x1 //0xb63ac4f94006cbbfe58a1d651e173c56dc74a45e4d1141ac57fc51a0d4202e95 var service = ServiceProvider.GetService <IErcInterfaceService>(); service.Transfer("0x5adbf411faf2595698d80b7f93d570dd16d7f4b2", settings.CurrentValue.EthereumCore.EthereumMainAccount, "0xae4d8b0c887508750ddb6b32752a82431941e2e7", System.Numerics.BigInteger.Parse("10000000000000000000")).Wait(); //var paymentService = ServiceProvider.GetService<IPaymentService>(); // string result = paymentService.SendEthereum(settings.EthereumMainAccount, // "0xbb0a9c08030898cdaf1f28633f0d3c8556155482", new System.Numerics.BigInteger(5000000000000000)).Result; //var coinEv = ServiceProvider.GetService<ICoinEventService>(); //var ev1 = coinEv.GetCoinEvent("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Result; //var ev2 = coinEv.GetCoinEvent("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Result; //coinEv.InsertAsync(ev1).Wait(); //coinEv.InsertAsync(ev2).Wait(); //var paymentService = ServiceProvider.GetService<ICoinTransactionService>(); //paymentService.PutTransactionToQueue("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Wait(); //paymentService.PutTransactionToQueue("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Wait(); //var pendingOperationService = ServiceProvider.GetService<IPendingOperationService>(); //var op = pendingOperationService.GetOperationAsync("40017691-1656-4d71-a8a6-4187200dca73").Result; //pendingOperationService.CreateOperation(op).Wait(); //var op2 = pendingOperationService.GetOperationAsync("41e19fd5-2660-469b-9315-b768f701e742").Result; //pendingOperationService.CreateOperation(op2).Wait(); while (!exit) { Console.WriteLine("Choose number: "); //Console.WriteLine("1. Deploy main contract from local json file"); Console.WriteLine("2. Deploy main exchange contract"); Console.WriteLine("3. Deploy coin contract using local json file"); Console.WriteLine("4. Deploy transfer"); Console.WriteLine("5. Deploy BCAP Token"); Console.WriteLine("6. Deploy main exchange contract with multiple owners!(Make sure that jobs are stopped)"); Console.WriteLine("7. Add more owners to Main Exchange Contract with multiple owners!(Add addresses with some eth on it)"); Console.WriteLine("9. Deploy And Migrate To NM!(Make sure that jobs are stopped)"); Console.WriteLine("10. Send transaction to MainExchange!(Make sure that jobs are stopped)"); Console.WriteLine("0. Exit"); var input = Console.ReadLine(); switch (input) { case "2": DeployMainExchangeContract().Wait(); break; case "3": //DeployCoinContract().Wait(); break; case "4": DeployTokenTransferContract().Wait(); break; case "0": exit = true; break; case "5": DeployBCAP().Wait(); break; case "6": DeployAndMigrateMainExchangeContractWithMultipleOwners().Wait(); break; case "7": AddOwners().Wait(); break; //case "8": // MigrateAdapter(,).Wait(); // break; case "9": DeployAndMigrateToNM().Wait(); break; case "10": SendTransactionFromMainExchange().Wait(); break; default: Console.WriteLine("Bad input!"); continue; } Console.WriteLine("Done!"); } }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext <PaymentContext>(opt => opt.UseSqlServer(Configuration.GetConnectionString("PaymentDB"))); RegisterDependency.RegisterDI(services); services.AddControllers(); }
static void Main(string[] args) { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json").AddEnvironmentVariables(); var configuration = configurationBuilder.Build(); var settings = GetCurrentSettings(); IServiceCollection collection = new Microsoft.Extensions.DependencyInjection.ServiceCollection(); collection.AddSingleton <IBaseSettings>(settings.CurrentValue.EthereumCore); collection.AddSingleton <ISlackNotificationSettings>(settings.CurrentValue.SlackNotifications); //RegisterReposExt.RegisterAzureLogs(collection, settings.EthereumCore, ""); RegisterReposExt.RegisterAzureQueues(collection, settings.Nested(x => x.EthereumCore), settings.Nested(x => x.SlackNotifications)); RegisterReposExt.RegisterAzureStorages(collection, settings.Nested(x => x.EthereumCore), settings.Nested(x => x.SlackNotifications)); ServiceProvider = collection.BuildServiceProvider(); RegisterRabbitQueueEx.RegisterRabbitQueue(collection, settings.Nested(x => x.EthereumCore), ServiceProvider.GetService <ILog>()); RegisterDependency.RegisterServices(collection); ServiceProvider = collection.BuildServiceProvider(); var web3 = ServiceProvider.GetService <Web3>(); try { var blockNumber = web3.Eth.Blocks.GetBlockNumber.SendRequestAsync().Result; Console.WriteLine($"RPC Works! {blockNumber.Value.ToString()}"); } catch (Exception e) { Console.WriteLine($"Rpc does not work at all! {e.Message}"); } Console.WriteLine($"Type 0 to exit"); Console.WriteLine($"Type 1 to SHOW pending Transactions"); Console.WriteLine($"Type 2 to REPEAT all operation without hash"); Console.WriteLine($"Type 3 to CHECK pending operations"); Console.WriteLine($"Type 4 to SCAN transfer contracts for issues"); Console.WriteLine($"Type 5 to REASSIGN contracts"); Console.WriteLine($"Type 6 to List all sucesful coin events"); Console.WriteLine($"Type 7 to RESUBMIT all succesful coin events(except cashin)"); Console.WriteLine($"Type 8 to RESUBMIT all cashin coin events"); Console.WriteLine($"Type 9 to REMOVE DUPLICATE user transfer wallet locks"); Console.WriteLine($"Type 10 to move from pending-poison to processing"); Console.WriteLine($"Type 11 to PUT EVERYTHING IN PENDING WITH zero dequeue count"); var command = ""; do { command = Console.ReadLine(); switch (command) { case "1": ShowPendingTransactionsAmount(); break; case "2": OperationResubmit(); break; case "3": OperationCheck(); break; case "4": GetAllFailedAssignments(); break; case "5": StartReassignment(); break; case "6": ListUnPublishedCoinEvents(); break; case "7": ResubmittUnPublishedCoinEventsWithMatches(); break; case "8": ResubmittUnPublishedCoinEventsCashinOnly(); break; case "9": RemoveDuplicateUserTransferWallets(); break; case "10": MoveFromPoisonToProcessing(); break; case "11": MoveFromPendingAndPoisonToProcessing(); break; default: break; } }while (command != "0"); Console.WriteLine("Exited"); }
public void Logear() { RegisterDependency.Init(); Assert.AreEqual(true, LoginCmd.Execute("admin", "Adm1nAdm1n").Identity.IsAuthenticated); }
public static void Main(string[] args) { if (args == null || !args.Any()) { throw new Exception("Specify parameters! url to EtherteumCore service"); } var exit = false; string settingsArg = args.First(); var settings = new SettingsServiceReloadingManager <AppSettings>(settingsArg); SaveSettings(settings); ContainerBuilder containerBuilder = new ContainerBuilder(); IServiceCollection collection = new Microsoft.Extensions.DependencyInjection.ServiceCollection(); containerBuilder.RegisterInstance(settings); containerBuilder.RegisterInstance <IBaseSettings>(settings.CurrentValue.EthereumCore); containerBuilder.RegisterInstance <ISlackNotificationSettings>(settings.CurrentValue.SlackNotifications); containerBuilder.RegisterInstance(settings.Nested(x => x.EthereumCore)); containerBuilder.RegisterInstance(settings.CurrentValue); var consoleLogger = new LogToConsole(); collection.AddSingleton <ILog>(consoleLogger); //TODO: Uncomment and fix registrations RegisterReposExt.RegisterAzureQueues(containerBuilder, settings.Nested(x => x.EthereumCore.Db.DataConnString), settings.Nested(x => x.SlackNotifications)); RegisterReposExt.RegisterAzureStorages(containerBuilder, settings.Nested(x => x.EthereumCore), settings.Nested(x => x.SlackNotifications), consoleLogger); RegisterRabbitQueueEx.RegisterRabbitQueue(collection, settings.Nested(x => x.EthereumCore.RabbitMq), settings.Nested(x => x.EthereumCore.Db.DataConnString), consoleLogger); RegisterDependency.RegisterServices(collection); RegisterDependency.RegisterServices(containerBuilder); //Lykke.Job.EthereumCore.Config.RegisterDependency.RegisterJobs(collection); //var web3 = ServiceProvider.GetService<Web3>(); //web3.Eth.GetBalance.SendRequestAsync(""); // web3.Eth.Transactions.SendTransaction.SendRequestAsync(new Nethereum.RPC.Eth.DTOs.TransactionInput() //{ // //}).Result; //var key = EthECKey.GenerateKey().GetPrivateKeyAsBytes(); //var stringKey = Encoding.Unicode.GetString(key); GetAllContractInJson(); containerBuilder.Populate(collection); ServiceProvider = containerBuilder.Build(); ServiceProvider.ActivateRequestInterceptor(); //var signApi = ServiceProvider.Resolve<ILykkeSigningAPI>(); //var signed = signApi.ApiEthereumSignPostWithHttpMessagesAsync(new EthereumTransactionSignRequest() //{ // FromProperty = "0x406561F72e25af10fD28b41200FA3D52badC5A21", // Transaction = "f86b8201618483215600830186a094db6ea754f2afb4257b9bea0828771b19504aeac380b844a9059cbb00000000000000000000000033c6b8907d65d5a53cc301c544abf99f2e783242000000000000000000000000000000000000000000000000000000000000000c808080" //}).Result; //var xa = 1; //var lykkeSigningAPI = ServiceProvider.Resolve<ILykkeSigningAPI>(); //var key1 = lykkeSigningAPI.ApiEthereumKeyGetAsync().Result; //var eventService = ServiceProvider.GetService<ITransactionEventsService>(); //eventService.IndexCashinEventsForAdapter("0x1c4ca817d1c61f9c47ce2bec9d7106393ff981ce", // "0x512867d36f1d6ee43f2056a7c41606133bce514fbc8e911c1834eeae80800ceb").Wait(); //#region EmissiveErc223 TOKEN //string tokenAddress = ""; //string depositAddress = ""; //Contract contract; //var web3 = ServiceProvider.Resolve<IWeb3>(); //{ // var abi = GetFileContent("Erc20DepositContract.abi"); // var bytecode = GetFileContent("Erc20DepositContract.bin"); // depositAddress = string.IsNullOrEmpty(depositAddress) ? // ServiceProvider.Resolve<IContractService>() // .CreateContract(abi, // bytecode, // 4000000) // .Result : depositAddress; //} //{ // //address issuer, // //string tokenName, // //uint8 divisibility, // //string tokenSymbol, // //string version // var abi = GetFileContent("EmissiveErc223Token.abi"); // var bytecode = GetFileContent("EmissiveErc223Token.bin"); // tokenAddress = string.IsNullOrEmpty(tokenAddress) ? // ServiceProvider.Resolve<IContractService>() // .CreateContract(abi, // bytecode, // 4000000, // settings.CurrentValue.EthereumCore.EthereumMainAccount, // "LykkeErc223Token", // 18, // "LTE223", // "1.0.0") // .Result : tokenAddress; // contract = web3.Eth.GetContract(abi, tokenAddress); //} //{ // //Transfer to the deposit contract // var erc20Service = ServiceProvider.Resolve<IErcInterfaceService>(); // var balanceOld = erc20Service.GetBalanceForExternalTokenAsync(depositAddress, tokenAddress).Result; // var transactionHash = erc20Service.Transfer(tokenAddress, settings.CurrentValue.EthereumCore.EthereumMainAccount, // depositAddress, System.Numerics.BigInteger.Parse("1000000000000000000")).Result; // WaitForTransactionCompleation(web3, transactionHash); // var balance = erc20Service.GetBalanceForExternalTokenAsync(depositAddress, tokenAddress).Result; // var isPossibleToWithdrawWithTokenFallback = erc20Service.CheckTokenFallback(depositAddress).Result; // var isPossibleToWithdrawToExternal = // erc20Service.CheckTokenFallback("0x856924997fa22efad8dc75e83acfa916490989a4").Result; //} //{ // //Transfer to the account managed by external private key // var toAddress = "0x856924997fa22efad8dc75e83acfa916490989a4"; // var erc20Service = ServiceProvider.Resolve<IErcInterfaceService>(); // var balanceOld = erc20Service.GetBalanceForExternalTokenAsync(toAddress, tokenAddress).Result; // var transactionHash = erc20Service.Transfer(tokenAddress, settings.CurrentValue.EthereumCore.EthereumMainAccount, // toAddress, System.Numerics.BigInteger.Parse("1000000000000000000")).Result; // WaitForTransactionCompleation(web3, transactionHash); // var balance = erc20Service.GetBalanceForExternalTokenAsync(toAddress, tokenAddress).Result; //} //{ // //Transfer to the contract without fallback function // string contractWithoutFallback = "0xd6ff42fa358403e0f9462c08e78c4baea1093945"; // var erc20Service = ServiceProvider.Resolve<IErcInterfaceService>(); // var balanceOld = erc20Service.GetBalanceForExternalTokenAsync(contractWithoutFallback, tokenAddress).Result; // var transactionHash = erc20Service.Transfer(tokenAddress, settings.CurrentValue.EthereumCore.EthereumMainAccount, // contractWithoutFallback, System.Numerics.BigInteger.Parse("1000000000000000000")).Result; // WaitForTransactionCompleation(web3, transactionHash); // var balance = erc20Service.GetBalanceForExternalTokenAsync(contractWithoutFallback, tokenAddress).Result; // var isPossibleToWithdrawWithoutTokenFallback = erc20Service.CheckTokenFallback(contractWithoutFallback).Result; //} //#endregion //#region DBE TOKEN //{ // //var abi = GetFileContent("Erc20DepositContract.abi"); // //var bytecode = GetFileContent("Erc20DepositContract.bin"); // //depositAddress = // // ServiceProvider.Resolve<IContractService>() // // .CreateContract(abi, bytecode, 4000000) // // .Result; //} //{ // var abi = GetFileContent("debtoken.abi"); // var bytecode = GetFileContent("debtoken.bin"); // //tokenAddress = // // ServiceProvider.Resolve<IContractService>() // // .CreateContract(abi, bytecode, 4000000) // // .Result; // contract = web3.Eth.GetContract(abi, tokenAddress); //} //{ // //var unfreezeFunc = contract.GetFunction("unfreeze"); // //var transactionHash = unfreezeFunc.SendTransactionAsync(settings.CurrentValue.EthereumCore.EthereumMainAccount, // // new HexBigInteger(BigInteger.Parse("200000")), new HexBigInteger(0)).Result; //} //{ // var erc20Service = ServiceProvider.Resolve<IErcInterfaceService>(); // var transactionHash = erc20Service.Transfer(tokenAddress, settings.CurrentValue.EthereumCore.EthereumMainAccount, // depositAddress, System.Numerics.BigInteger.Parse("1000000000000000000")).Result; //} //#endregion //#region StatusExamples ////var service = ServiceProvider.GetService<ICoinTransactionService>(); ////{ //// //fail //// var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage() //// { //// TransactionHash = "0xf86efe1b8de285b8255519ca7d0ac76088132e6c5306f88dfc27312c6d7127ea", //// }).Result; ////} ////{ //// //ok //// var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage() //// { //// TransactionHash = "0xa237230df97a0d6710241597a0186662928afa373c13b8d4eac86f36aa678985", //// }).Result; ////} ////{ //// //fail //// var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage() //// { //// TransactionHash = "0xb63ac4f94006cbbfe58a1d651e173c56dc74a45e4d1141ac57fc51a0d4202e95", //// }).Result; ////} ////{ //// //fail //// var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage() //// { //// TransactionHash = "0x1df50ee79d0af8b433f7f0be2a84cbb5dc3e29e5822e78b9c6a7ec33d027e286", //// }).Result; ////} ////{ //// //fail //// var x = service.ProcessTransaction(new Services.Coins.Models.CoinTransactionMessage() //// { //// TransactionHash = "0xa3d4c1da523273371fe45c928b9236b353976e7b9e6d2b31e659f7a4c781a764", //// }).Result; ////} //#endregion //0xf86efe1b8de285b8255519ca7d0ac76088132e6c5306f88dfc27312c6d7127ea 0x0 //0xa237230df97a0d6710241597a0186662928afa373c13b8d4eac86f36aa678985 0x1 //0xb63ac4f94006cbbfe58a1d651e173c56dc74a45e4d1141ac57fc51a0d4202e95 //var service = ServiceProvider.Resolve<IErcInterfaceService>(); //service.Transfer("0x5adbf411faf2595698d80b7f93d570dd16d7f4b2", settings.CurrentValue.EthereumCore.EthereumMainAccount, // "0xae4d8b0c887508750ddb6b32752a82431941e2e7", System.Numerics.BigInteger.Parse("10000000000000000000")).Wait(); //var paymentService = ServiceProvider.GetService<IPaymentService>(); // string result = paymentService.SendEthereum(settings.EthereumMainAccount, // "0xbb0a9c08030898cdaf1f28633f0d3c8556155482", new System.Numerics.BigInteger(5000000000000000)).Result; //var coinEv = ServiceProvider.GetService<ICoinEventService>(); //var ev1 = coinEv.GetCoinEvent("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Result; //var ev2 = coinEv.GetCoinEvent("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Result; //coinEv.InsertAsync(ev1).Wait(); //coinEv.InsertAsync(ev2).Wait(); //var paymentService = ServiceProvider.GetService<ICoinTransactionService>(); //paymentService.PutTransactionToQueue("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Wait(); //paymentService.PutTransactionToQueue("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Wait(); //var pendingOperationService = ServiceProvider.GetService<IPendingOperationService>(); //var op = pendingOperationService.GetOperationAsync("40017691-1656-4d71-a8a6-4187200dca73").Result; //pendingOperationService.CreateOperation(op).Wait(); //var op2 = pendingOperationService.GetOperationAsync("41e19fd5-2660-469b-9315-b768f701e742").Result; //pendingOperationService.CreateOperation(op2).Wait(); while (!exit) { Console.WriteLine("Choose number: "); //Console.WriteLine("1. Deploy main contract from local json file"); Console.WriteLine("2. Deploy main exchange contract"); Console.WriteLine("3. Deploy coin contract using local json file"); Console.WriteLine("4. Deploy transfer"); Console.WriteLine("5. Deploy BCAP Token"); Console.WriteLine("6. Deploy main exchange contract with multiple owners!(Make sure that jobs are stopped)"); Console.WriteLine("7. Add more owners to Main Exchange Contract with multiple owners!(Add addresses with some eth on it)"); Console.WriteLine("9. Deploy And Migrate To NM!(Make sure that jobs are stopped)"); Console.WriteLine("10. Send transaction to MainExchange!(Make sure that jobs are stopped)"); Console.WriteLine("0. Exit"); var input = Console.ReadLine(); switch (input) { case "2": DeployMainExchangeContract().Wait(); break; case "3": //DeployCoinContract().Wait(); break; case "4": DeployTokenTransferContract().Wait(); break; case "0": exit = true; break; case "5": DeployBCAP().Wait(); break; case "6": DeployAndMigrateMainExchangeContractWithMultipleOwners().Wait(); break; case "7": AddOwners().Wait(); break; //case "8": // MigrateAdapter(,).Wait(); // break; case "9": DeployAndMigrateToNM().Wait(); break; case "10": SendTransactionFromMainExchange().Wait(); break; default: Console.WriteLine("Bad input!"); continue; } Console.WriteLine("Done!"); } }
public static void Main(string[] args) { var exit = false; var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json").AddEnvironmentVariables(); var configuration = configurationBuilder.Build(); var settings = GetCurrentSettingsFromUrl(); SaveSettings(settings); IServiceCollection collection = new Microsoft.Extensions.DependencyInjection.ServiceCollection(); collection.AddSingleton <IBaseSettings>(settings.EthereumCore); collection.AddSingleton <ISlackNotificationSettings>(settings.SlackNotifications); RegisterReposExt.RegisterAzureLogs(collection, settings.EthereumCore, ""); RegisterReposExt.RegisterAzureQueues(collection, settings.EthereumCore, settings.SlackNotifications); RegisterReposExt.RegisterAzureStorages(collection, settings.EthereumCore, settings.SlackNotifications); ServiceProvider = collection.BuildServiceProvider(); RegisterRabbitQueueEx.RegisterRabbitQueue(collection, settings.EthereumCore, ServiceProvider.GetService <ILog>()); RegisterDependency.RegisterServices(collection); EthereumJobs.Config.RegisterDependency.RegisterJobs(collection); //var web3 = ServiceProvider.GetService<Web3>(); //web3.Eth.GetBalance.SendRequestAsync(""); // web3.Eth.Transactions.SendTransaction.SendRequestAsync(new Nethereum.RPC.Eth.DTOs.TransactionInput() //{ // //}).Result; //var key = EthECKey.GenerateKey().GetPrivateKeyAsBytes(); //var stringKey = Encoding.Unicode.GetString(key); GetAllContractInJson(); ServiceProvider = collection.BuildServiceProvider(); ServiceProvider.ActivateRequestInterceptor(); //var lykkeSigningAPI = ServiceProvider.GetService<ILykkeSigningAPI>(); //lykkeSigningAPI.ApiEthereumAddkeyPost(new AddKeyRequest() //{ // Key = "", //}); var service = ServiceProvider.GetService <IErcInterfaceService>(); service.Transfer("0x5adbf411faf2595698d80b7f93d570dd16d7f4b2", settings.EthereumCore.EthereumMainAccount, "0xae4d8b0c887508750ddb6b32752a82431941e2e7", System.Numerics.BigInteger.Parse("10000000000000000000")).Wait(); //var paymentService = ServiceProvider.GetService<IPaymentService>(); // string result = paymentService.SendEthereum(settings.EthereumMainAccount, // "0xbb0a9c08030898cdaf1f28633f0d3c8556155482", new System.Numerics.BigInteger(5000000000000000)).Result; //var coinEv = ServiceProvider.GetService<ICoinEventService>(); //var ev1 = coinEv.GetCoinEvent("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Result; //var ev2 = coinEv.GetCoinEvent("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Result; //coinEv.InsertAsync(ev1).Wait(); //coinEv.InsertAsync(ev2).Wait(); //var paymentService = ServiceProvider.GetService<ICoinTransactionService>(); //paymentService.PutTransactionToQueue("0xbfb8d6a561c1a088c347efb989e19cb02c1028b34a337e001b146fd1360dc714").Wait(); //paymentService.PutTransactionToQueue("0xa0876a676d695ab145fcf70ac0b2ae02e8b00351a5193352ffb37ad37dce6848").Wait(); //var pendingOperationService = ServiceProvider.GetService<IPendingOperationService>(); //var op = pendingOperationService.GetOperationAsync("40017691-1656-4d71-a8a6-4187200dca73").Result; //pendingOperationService.CreateOperation(op).Wait(); //var op2 = pendingOperationService.GetOperationAsync("41e19fd5-2660-469b-9315-b768f701e742").Result; //pendingOperationService.CreateOperation(op2).Wait(); while (!exit) { Console.WriteLine("Choose number: "); //Console.WriteLine("1. Deploy main contract from local json file"); Console.WriteLine("2. Deploy main exchange contract"); Console.WriteLine("3. Deploy coin contract using local json file"); Console.WriteLine("4. Deploy transfer"); Console.WriteLine("5. Deploy BCAP Token"); Console.WriteLine("6. Deploy main exchange contract with multiple owners!(Make sure that jobs are stopped)"); Console.WriteLine("7. Add more owners to Main Exchange Contract with multiple owners!(Add addresses with some eth on it)"); Console.WriteLine("9. Deploy And Migrate To NM!(Make sure that jobs are stopped)"); Console.WriteLine("10. Send transaction to MainExchange!(Make sure that jobs are stopped)"); Console.WriteLine("0. Exit"); var input = Console.ReadLine(); switch (input) { case "2": DeployMainExchangeContract().Wait(); break; case "3": DeployCoinContract().Wait(); break; case "4": DeployTokenTransferContract().Wait(); break; case "0": exit = true; break; case "5": DeployBCAP().Wait(); break; case "6": DeployAndMigrateMainExchangeContractWithMultipleOwners().Wait(); break; case "7": AddOwners().Wait(); break; //case "8": // MigrateAdapter(,).Wait(); // break; case "9": DeployAndMigrateToNM().Wait(); break; case "10": SendTransactionFromMainExchange().Wait(); break; default: Console.WriteLine("Bad input!"); continue; } Console.WriteLine("Done!"); } }
public void PersonaCreate() { RegisterDependency.Init(); var persona = PersonaNatural.New(); persona.FechaNacimiento = DateTime.Now.AddYears(-5); persona.Identificacion = "1103776313"; persona.PrimerApellido = "Sinche"; persona.SegundoApellido = "Salinas"; persona.PrimerNombre = "Junior"; persona.SegundoNombre = "Ulises"; var correo = persona.Correos.AddNew(); correo.Correo = "*****@*****.**"; persona.Correos.Add(correo); var t1 = DateTime.Now.Ticks; persona.TipoIdentificacion = CatalogoItemList.Get(CatalogoConstantes.CatIdentificacionTipo).GetItem(CatalogoConstantes.IdentificacionCedula).Id; var t2 = DateTime.Now.Ticks; persona.Genero = CatalogoItemList.Get(CatalogoConstantes.CatGenero).GetItem(CatalogoConstantes.GeneroMasculino).Id; var t3 = DateTime.Now.Ticks; persona.EstadoCivil = CatalogoItemList.Get(CatalogoConstantes.CatEstadoCivil).GetItem(CatalogoConstantes.EstadoCivilUnionlibre).Id; var t4 = DateTime.Now.Ticks; System.Diagnostics.Trace.WriteLine(string.Format("Tiempos:{0}, {1}, {2}, {3}", t1, t2, t3, t4)); System.Diagnostics.Trace.WriteLine("T1:" + ((t2 - t1) / 1000)); System.Diagnostics.Trace.WriteLine("T2:" + ((t3 - t2) / 1000)); System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t3) / 1000)); System.Diagnostics.Trace.WriteLine("T3:" + ((t4 - t1) / 1000)); persona.Save(); var personaCriteria = PersonaNaturalCriteria.New(); var personaList = PersonaNaturalList.Get(personaCriteria); var id = personaList.First(x => x.Identificacion == persona.Identificacion).Id; var persona1 = PersonaNatural.Get(id); persona1.EstadoCivil = CatalogoItemList.Get(CatalogoConstantes.CatEstadoCivil).GetItem(CatalogoConstantes.EstadoCivilUnionlibre).Id; persona1.Save(); var persona2 = PersonaNatural.Get(id); persona2.Delete(); persona2.Save(); Assert.AreNotEqual(personaList.Count, 0); var personaList1 = PersonaNaturalList.Get(personaCriteria); Assert.AreNotEqual(personaList1.Count, personaList.Count); }