Skip to content

Instantly share code, notes, and snippets.

View JudahGabriel's full-sized avatar

Judah Gabriel Himango JudahGabriel

View GitHub Profile
@JudahGabriel
JudahGabriel / main.js
Created April 7, 2020 21:56
pwa-auth: Listening for signin-completed event
const pwaAuth = document.querySelector("pwa-auth");
pwaAuth.addEventListener("signin-completed", ev => {
const signIn = ev.detail;
if (signIn.error) {
console.error("Sign in failed", signIn.error);
} else {
console.log("Email: ", signIn.email);
console.log("Name: ", signIn.name);
console.log("Picture: ", signIn.imageUrl);
console.log("Provider (MS, Google, FB): ", signIn.provider);
@JudahGabriel
JudahGabriel / CowboysController.cs
Created August 1, 2019 20:50
Querying for orange-lovin' cowboys in a RavenDB Cloud cluster
using (var session = raven.OpenSession())
{
var cowboys = session.Query<Cowboy>().Where(c => c.FavoriteColor == "Orange");
}
@JudahGabriel
JudahGabriel / CowboysController.cs
Created August 1, 2019 20:49
Saving a real Cowboy to a RavenDB Cloud cluster
using (var session = raven.OpenSession())
{
var cowboy = new Cowboy
{
Name = "Maunder, C.",
FavoriteColor = "Orange"
};
session.Store(outlaw);
session.SaveChanges();
}
@JudahGabriel
JudahGabriel / Startup.cs
Created August 1, 2019 20:47
Configuring a connection to a RavenDB Cloud cluster
// Connect to our RavenDB Cloud cluster.
// Notice the only thing that has changed is that we're passing 3 URLs in, one for each node in our cluster.
var raven = new DocumentStore
{
Database = "OldWestHeroes",
Urls = new[]
{
"https://a.cluster.clistctrl.ravendb.cloud",
"https://b.cluster.clistctrl.ravendb.cloud",
"https://c.cluster.clistctrl.ravendb.cloud",
@JudahGabriel
JudahGabriel / OutlawsController.cs
Created August 1, 2019 20:26
Querying with RavenDB
using (var session = raven.OpenSession())
{
var gunslingers = session.Query<Outlaw>().Where(o => o.IsGunslinger);
}
@JudahGabriel
JudahGabriel / HomeController.cs
Created August 1, 2019 20:23
Using RavenDB to store an object
using (var session = raven.OpenSession())
{
var outlaw = new Outlaw
{
Name = "Simmons, J.",
IsGunslinger = true
};
session.Store(outlaw);
session.SaveChanges();
}
var raven = new DocumentStore
{
Urls = new[] { "https://a.free.clistctrl.ravendb.cloud" },
Database = "Outlaws",
Certificate = new X509Certificate2("\path\to\free.clistctrl.client.certificate.pfx", "")
};
raven.Initialize();
public class AccountController : Controller
{
private UserManager<AppUser> userManager;
private SignInManager<AppUser> signInManager;
// RavenDB.Identity provides a UserManager and SignInManager for dependency injection.
public AccountController(UserManager<AppUser> userManager, SignInManager<AppUser> signInManager)
{
this.userManager = userManager;
this.signInManager = signInManager;
public class HomeController : Controller
{
[Authorize] // Authorize: the user must be signed in
public IActionResult Index()
{
}
[Authorize(Roles = "Admin"] // Authorize: the signed in user must be an admin
public IActionResult Index()
{
public void ConfigureServices(IServiceCollection services)
{
// Add RavenDB and identity.
services
.AddRavenDb(Configuration.GetConnectionString("RavenDbConnection")) // Create a RavenDB DocumentStore singleton.
.AddRavenDbAsyncSession() // Create a RavenDB IAsyncDocumentSession for each request.
.AddRavenDbIdentity<AppUser>(); // Use Raven for users and roles. AppUser is your class, a simple DTO to hold user data. See https://github.com/JudahGabriel/RavenDB.Identity/blob/master/Sample/Models/AppUser.cs
...
}