Esempio n. 1
0
        private static void OnRestore(object?sender, RestoreEventArgs e)
        {
            using var db = new BloggingContext();
            var articlesElement = e.Root.GetProperty("article");

            foreach (var article in articlesElement.EnumerateArray())
            {
                var author = article.GetProperty("author").GetString();
                var user   = db.Users.FirstOrDefault(u => u.Username == author);
                if (user == null)
                {
                    user = new User
                    {
                        Username = author
                    };
                    db.Users.Add(user);
                    db.SaveChanges();
                }

                var createdArticle = new Article
                {
                    Title     = article.GetProperty("title").GetString(),
                    Body      = article.GetProperty("body").GetString(),
                    Timestamp = DateTimeOffset.FromUnixTimeSeconds(article.GetProperty("timestamp").GetInt64())
                                .UtcDateTime,
                    Author = user
                };
                db.Articles.Add(createdArticle);
            }

            db.SaveChanges();
        }
Esempio n. 2
0
        protected override async Task <bool> OnDataLossAsync(RestoreContext restoreCtx, CancellationToken cancellationToken)
        {
            Log.WriteLine("{0}", $"Partition {GraphEngineStatefulServiceRuntime.Instance.PartitionId} received OnDataLossAsync. Triggering data restore.");
            RestoreEventArgs rstArgs = new RestoreEventArgs(restoreCtx, cancellationToken);

            RequestRestore(this, rstArgs);
            await rstArgs.Wait();

            return(true);
        }
 private void OnServiceFabricRequestRestore(object sender, RestoreEventArgs e)
 {
     RequestPartitionRestore(sender, e);
 }