static void Main(string[] args)
        {
            //用sqlite持久化后
            var actorid        = "this1234";
            var dbfile         = @"C:\MyFile\Source\Repos\Asp.NetCoreExperiment\Asp.NetCoreExperiment\ProtoActor\ProtoPersistenceDemo01\data.sqlite";
            var sqliteProvider = new SqliteProvider(new SqliteConnectionStringBuilder()
            {
                DataSource = dbfile
            });
            var counter = new Counter(sqliteProvider, actorid);
            var props   = Actor.FromProducer(() => counter);
            var pid     = Actor.Spawn(props);

            for (int i = 0; i < 2; i++)
            {
                var no = int.Parse(Console.ReadLine());
                pid.Tell(new Added {
                    Amount = no
                });
            }

            Console.ReadLine();
            //完成处理后清理持久化的操作
            sqliteProvider.DeleteEventsAsync(actorid, 10).Wait();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            var system   = new ActorSystem();
            var context  = new RootContext(system);
            var provider = new SqliteProvider(new SqliteConnectionStringBuilder {
                DataSource = "states.db"
            });

            var props = Props.FromProducer(() => new Calculator(provider));
            var pid   = context.Spawn(props);

            system.Root.Send(pid, new AddCommand {
                Value = 100
            });
            system.Root.Send(pid, new SubtractCommand {
                Value = 50
            });

            system.Root.Send(pid, new PrintResultCommand());

            system.Root.Poison(pid);

            pid = context.Spawn(props);

            system.Root.Send(pid, new PrintResultCommand());

            Console.ReadLine();
        }
Esempio n. 3
0
        /// <summary>
        /// 快照
        /// </summary>
        /// <param name="actorid"></param>
        /// <param name="sqliteProvider"></param>
        private static void CallSnapShoot(string actorid, SqliteProvider sqliteProvider)
        {
            var props  = Actor.FromProducer(() => new SnapShootDataActor(sqliteProvider, actorid));
            var pid    = Actor.Spawn(props);
            var result = true;

            while (result)
            {
                Console.WriteLine("1、Tell  2、删除持久化  3、退出");

                switch (Console.ReadLine())
                {
                case "1":
                    var random = new Random();
                    var no     = random.Next(5, 15);
                    Console.WriteLine($"随机产生的数字:{no}");
                    pid.Tell(new Data {
                        Amount = no
                    });
                    break;

                case "2":
                    //完成处理后清理持久化的操作
                    sqliteProvider.DeleteSnapshotsAsync(actorid, 100).Wait();
                    break;

                case "3":
                    result = false;
                    break;
                }
            }
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            //用sqlite持久化后
            var actorid        = "myactorid";
            var dbfile         = @"C:\MyFile\Source\Repos\ProtoActorSample\ProtoActorSample\P008_Persistence\data.sqlite";
            var sqliteProvider = new SqliteProvider(new SqliteConnectionStringBuilder()
            {
                DataSource = dbfile
            });

            while (true)
            {
                Console.WriteLine("1、事件溯源   2、快照   3、带快照的事件溯源  4、退出");
                switch (Console.ReadLine())
                {
                case "1":
                    CallEventSource(actorid, sqliteProvider);
                    break;

                case "2":
                    CallSnapShoot(actorid, sqliteProvider);
                    break;

                case "3":
                    CallSnapShootEventSource(actorid, sqliteProvider);
                    break;

                case "4":
                    return;
                }
            }
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            var wire = new WireSerializer(new[] { typeof(HelloRequest), typeof(HelloResponse) });

            Serialization.RegisterSerializer(wire, true);


            Console.Title = "服务端";
            var actorid        = "this1234";
            var dbfile         = @"C:\MyFile\Source\Repos\Asp.NetCoreExperiment\Asp.NetCoreExperiment\ProtoActor\ServiceA\data.sqlite";
            var sqliteProvider = new SqliteProvider(new SqliteConnectionStringBuilder()
            {
                DataSource = dbfile
            });

            var localActor = new LocalActor(sqliteProvider, actorid);
            var props      = Actor.FromProducer(() => localActor);

            Remote.RegisterKnownKind("hello", props);
            Remote.Start("127.0.0.1", 12000);
            Console.WriteLine("服务端开始……");
            Console.ReadLine();



            Console.ReadLine();
        }
Esempio n. 6
0
        public void Ctor_SuccessfullyCreated()
        {
            var mockMessager = new Mock <IMessageFinder>();
            var mockConfig   = new Mock <IConfig>();
            var sut          = new SqliteProvider(mockMessager.Object, mockConfig.Object);

            Assert.IsNotNull(sut);
        }
Esempio n. 7
0
        private static void CreateSqlFile(string fileName)
        {
            File.Delete(fileName);
            var sqliteProvider = new SqliteProvider();

            sqliteProvider.CreateConnection("Filename=" + fileName);
            sqliteProvider.Save(SceneInUse.Instance.Scene);
            sqliteProvider.CloseConnection();
        }
Esempio n. 8
0
 public void DeleteBook(string bookId)
 {
     using (SqliteProvider db = new SqliteProvider())
     {
         db.Books.Remove(db.Books.Single(b => b.Id == int.Parse(bookId)));
         db.SaveChanges();
         List <Author> authors = db.Authors.Where(a => a.BooksAuthors.Any(ba => ba == null)).ToList();
     }
 }
Esempio n. 9
0
        public void sqlite_test_pagination_strings()
        {
            var    m = new SqliteProvider(Config.SqlServerProviderName);
            string cnt;
            string sel;

            m.MakePaged("select * from test", out sel, out cnt);
            Assert.Equal("select count(*) from test", cnt);
            Assert.Equal(string.Format("select * from test limit @{0},@{1}", PreparePagedStatement.SkipParameterName, PreparePagedStatement.TakeParameterName), sel);
        }
Esempio n. 10
0
    static void Main(string[] args)
    {
        var provider = new SqliteProvider();

        var props = Actor.FromProducer(() => new MyPersistenceActor(provider));

        var pid = Actor.Spawn(props);

        Console.ReadLine();
    }
Esempio n. 11
0
    static void Main(string[] args)
    {
        var provider = new SqliteProvider();

        var props = Actor.FromProducer(() => new MyPersistenceActor())
                    .WithReceiveMiddleware(Persistence.Using(provider));

        var pid = Actor.Spawn(props);

        Console.ReadLine();
    }
Esempio n. 12
0
 public void ShowBooks()
 {
     using (SqliteProvider db = new SqliteProvider())
     {
         Book[] books = db.Books.ToArray();
         foreach (var book in books)
         {
             Console.WriteLine($"Id - {book.Id},book title - {book.Title} ");
         }
     }
 }
Esempio n. 13
0
 public void ShowAuthors()
 {
     using (SqliteProvider db = new SqliteProvider())
     {
         Author[] authors = db.Authors.ToArray();
         foreach (var author in authors)
         {
             Console.WriteLine($"Id - {author.Id},last name - {author.LastName} ");
         }
     }
 }
        /// <summary>
        /// Starts a new TaskListManager and defaults to the global task list, and loads all tasks in the database
        /// </summary>
        public TaskListManager()
        {
            _sqliteProvider = new SqliteProvider();
            CreateAppDataFolder();
            CreateAppDatabases();

            // Get databases for loaded solution and projects - if a solution/project is open
            GetDatabaseList();

            // Default to using Global database for now
            SwitchDatabase(_taskDatabases[GLOBAL_DB_DATASOURCE_NAME]);
        }
Esempio n. 15
0
    static void Main(string[] args)
    {
        var provider = new SqliteProvider(new SqliteConnectionStringBuilder {
            DataSource = "states.db"
        });

        var props = Actor.FromProducer(() => new MyPersistenceActor(provider));

        var pid = Actor.Spawn(props);

        Console.ReadLine();
    }
Esempio n. 16
0
        public static IConfigureEventStore UseSqlite(this IConfigureEventStore store, Func <DbConnection> factory, string cnx, string schema = null)
        {
            SqlFuManager.Configure(d =>
            {
                d.AddProfile(new SqlFu.Providers.Sqlite.SqliteProvider(factory), cnx, "sqlite");
                RegisterSqlFuConfig(d, schema);
            });

            var provider = new SqliteProvider(SqlFuManager.GetDbFactory("sqlite"));

            store.WithProvider(provider);
            return(store);
        }
Esempio n. 17
0
    private static void Main(string[] args)
    {
        var context  = new RootContext(new ActorSystem());
        var provider = new SqliteProvider(new SqliteConnectionStringBuilder {
            DataSource = "states.db"
        });

        var props = Props.FromProducer(() => new MyPersistenceActor(provider));

        var pid = context.Spawn(props);

        Console.ReadLine();
    }
Esempio n. 18
0
        private static Scene ImportSqliteFile(int index, string fileName)
        {
            var sqliteProvider = new SqliteProvider();

            sqliteProvider.CreateConnection("Filename=" + fileName);
            var scene = sqliteProvider.LoadScene(sqliteProvider.LoadScenes()[index].SceneId);

            sqliteProvider.CloseConnection();
            int sceneIdInFile = scene.SceneId;
            var insertedScene = DataAccessFacade.Instance.GetSceneAccess().SaveNew(scene);

            SceneInUse.Instance.Set(insertedScene);
            return(insertedScene);
        }
Esempio n. 19
0
        static void Main(string[] args)
        {
            Console.Title = "Order系统";
            System.Threading.Thread.Sleep(100);
            var actorid        = "order_actor_ids";
            var dbfile         = @"C:\MyFile\Source\Repos\ProtoActorSample\ProtoActorSample\P010_Order\data.sqlite";
            var sqliteProvider = new SqliteProvider(new SqliteConnectionStringBuilder()
            {
                DataSource = dbfile
            });
            var props = Actor.FromProducer(() => new OrderActor(sqliteProvider, actorid));//.WithChildSupervisorStrategy(new OneForOneStrategy(SupervisorMode.Decide,5, TimeSpan.FromSeconds(1))); ;
            var pid   = Actor.SpawnNamed(props, "order");

            Console.ReadLine();
        }
Esempio n. 20
0
        static void Main(string[] args)
        {
            var actorid        = "order_actor_id";
            var dbfile         = @"C:\MyFile\Source\Repos\ProtoActorSample\ProtoActorSample\P010_Order\data.sqlite";
            var sqliteProvider = new SqliteProvider(new SqliteConnectionStringBuilder()
            {
                DataSource = dbfile
            });
            var props = Actor.FromProducer(() => new OrderActor(sqliteProvider, actorid));
            var pid   = Actor.SpawnNamed(props, "order");

            pid.Tell(new Order {
                OrderNo = "DJ000012352", Total = 1524631.25m, OrderTime = DateTime.Now
            });
            Console.ReadLine();
        }
Esempio n. 21
0
 public void ShowAuthorsBooks(string authorId)
 {
     using (SqliteProvider db = new SqliteProvider())
     // {
     {
         // Author author = db.Authors.Single(a => a.Id == int.Parse(authorId)).BooksAuthors.Where(ba=>ba.AuthorId==)
         List <Book> books = db.Books.Where(b => b.BooksAuthors.Any(ba => ba.AuthorId == int.Parse(authorId))).ToList();
         if (books == null)
         {
             Console.WriteLine(Text.invalidIndexAuthors);
         }
         foreach (var book in books)
         {
             Console.WriteLine($"Id-{book.Id}, title - {book.Title}, year of publish -{book.YearOfPublish} ");
         }
     }
 }
Esempio n. 22
0
 public void ShowBooksAuthors(string bookId)
 {
     using (SqliteProvider db = new SqliteProvider())
     // {
     {
         // Author author = db.Authors.Single(a => a.Id == int.Parse(authorId)).BooksAuthors.Where(ba=>ba.AuthorId==)
         List <Author> authors = db.Authors.Where(b => b.BooksAuthors.Any(ba => ba.BookId == int.Parse(bookId))).ToList();
         if (authors == null)
         {
             Console.WriteLine(Text.invalidIndexAuthors);
         }
         foreach (var author in authors)
         {
             Console.WriteLine($"Id-{author.Id}, last name - {author.LastName}");
         }
     }
 }
Esempio n. 23
0
        public void AddBook(string book, string yearOfPublish, string[] authors)
        {
            using (SqliteProvider db = new SqliteProvider())
            {
                Book newBook = new Book {
                    Title = $"{book}", YearOfPublish = $"{yearOfPublish}"
                };
                db.Books.Add(newBook);
                var authorsToSaveList  = new List <Author>();
                var existingAuthorsIds = new List <int>();
                foreach (string authorLastName in authors)
                {
                    var author = db.Authors.Where(a => a.LastName == $"{authorLastName}").FirstOrDefault <Author>();
                    if (author != null)
                    {
                        existingAuthorsIds.Add(author.Id);
                        continue;
                    }
                    authorsToSaveList.Add(new Author {
                        LastName = authorLastName
                    });
                }
                db.Authors.AddRange(authorsToSaveList);
                db.SaveChanges();

                foreach (var authorIndex in existingAuthorsIds)
                {
                    newBook.BooksAuthors.Add(new BooksAuthors {
                        BookId = newBook.Id, AuthorId = authorIndex
                    });
                }

                for (int count = 0; count < authorsToSaveList.Count; count++)
                {
                    newBook.BooksAuthors.Add(new BooksAuthors {
                        BookId = newBook.Id, AuthorId = authorsToSaveList.ElementAt(count).Id
                    });
                }

                db.SaveChanges();
                Console.WriteLine(Text.successAddBook);
            }
        }
 public static void TrySqlite()
 {
     if (!IsTrySqlite)
     {
         try
         {
             SqliteProvider db   = new SqliteProvider();
             var            conn = db.GetAdapter();
             IsTrySqlite = true;
         }
         catch
         {
             var message = ErrorMessage.GetThrowMessage(
                 "You need to refer to System.Data.SQLite.Core",
                 "你需要引用System.Data.SQLite.Core,如果有版本兼容问题请先删除原有引用");
             throw new Exception(message);
         }
     }
 }
Esempio n. 25
0
        static IDbFactory GetFactory(string cnxString)
        {
            cnxString.MustNotBeEmpty("We need a valid connection string");


#if NET461
            Func <DbConnection> cnx = SQLiteFactory.Instance.CreateConnection;
#endif
#if NETCORE
            Func <DbConnection> cnx = SqliteFactory.Instance.CreateConnection;
#endif
            var provider = new SqliteProvider(cnx);
            return(new DbFactory(new DbAccessProfile()
            {
                ConnectionString = cnxString,
                Name = "dbussql",
                Provider = provider
            }));
        }
Esempio n. 26
0
        public static void Init(IServiceProvider serviceProvider, IWebHostEnvironment env)
        {
            IAdminSecurityApplication securityApplication = new AdminSecurityApplication();

            securityApplication.ResetIpFilter();
            securityApplication = null;

            var cache = SqlCache.Instance;

            ISqlProvider provider = new SqlServerProvider();

            provider.Init(cache);
            provider = new MySqlProvider();
            provider.Init(cache);
            provider = new SqliteProvider();
            provider.Init(cache);
            provider = new PostgreSQLProvider();
            provider.Init(cache);
            provider = null;

            //var assList = AppDomain.CurrentDomain.GetAssemblies().Where(q => q.FullName?.Contains("Plugin") ?? false).ToList();
            //foreach (var ass in assList) {
            //    SqlProviderInit(cache,  ass);
            //}

            //var dir = Path.Combine(env.ContentRootPath, "Plugins");
            //if (Directory.Exists(dir)) {
            //    var files = Directory.GetFiles(dir, "*.Plugin*.dll", SearchOption.AllDirectories);
            //    foreach (var file in files) {
            //        try {
            //            var ass = Assembly.LoadFrom(file);
            //            SqlProviderInit(cache, ass);
            //        } catch (Exception) { }
            //    }
            //}
        }
Esempio n. 27
0
 protected override string EscapeName(string name)
 {
     return(SqliteProvider.EscapeIdentifier(name));
 }
        public void Insert_OrderCrudOperation()
        {
            // Arrange
            var provider = new SqliteProvider(_context);

            // Act

            // Insert test order detail.
            provider.Insert(new Order {
                Latitude   = Latitude,
                Longitude  = Longitude,
                OrderTitle = OrderTitle,
                Status     = Status
            });

            // Fetch inserted order detail.
            var orders = provider.GetAll();

            // Validate
            Assert.Equal(1, orders.Count);
            Assert.Equal(Latitude, orders.First().Latitude);
            Assert.Equal(Longitude, orders.First().Longitude);
            Assert.Equal(OrderTitle, orders.First().OrderTitle);
            Assert.Equal(Status, orders.First().Status);

            // Fetch Order
            var orders1 = provider.GetAll().First();

            // Update Order
            var newOrder = new Order {
                Id         = orders1.Id,
                Latitude   = Latitude2,
                Longitude  = Longitude2,
                Status     = orders1.Status,
                OrderTitle = orders1.OrderTitle
            };

            provider.Update(newOrder);

            // Fetching Updated Order
            var orders2 = provider.GetAll();

            // Validate
            Assert.Equal(1, orders2.Count);
            Assert.Equal(Latitude2, orders2.First().Latitude);
            Assert.Equal(Longitude2, orders2.First().Longitude);
            Assert.Equal(OrderTitle, orders2.First().OrderTitle);
            Assert.Equal(Status, orders2.First().Status);

            // Remove Test Records
            foreach (var order in orders)
            {
                provider.Remove(order);
            }

            // Fetch order detail.
            var orders3 = provider.GetAll();

            // Validate
            Assert.Equal(0, orders3.Count);
        }
Esempio n. 29
0
 public override void provider_escape_name()
 {
     Assert.Equal("\"main.test\"", SqliteProvider.EscapeIdentifier("main.test"));
 }
Esempio n. 30
0
 protected override void WriteColumn(IndexColumn column)
 {
     Builder.Append(SqliteProvider.EscapeIdentifier(column.Name));
 }