public override string Save(BlogPost model) { var mapOp = new UpdateMap.MapOperation(); mapOp.SetRegister(titleRegister, model.Title); mapOp.SetRegister(authorRegister, model.Author); mapOp.SetRegister(contentRegister, model.Content); mapOp.AddToSet(keywordsSet, model.Keywords); string datePostedSolrFormatted = model.DatePosted .ToUniversalTime() .ToString("yyyy-MM-dd'T'HH:mm:ss'Z'", CultureInfo.InvariantCulture); mapOp.SetRegister(datePostedRegister, datePostedSolrFormatted); mapOp.SetFlag(publishedFlag, model.Published); // NB: no key so Riak will generate it var cmd = new UpdateMap.Builder() .WithBucketType(BucketType) .WithBucket(this.bucket) .WithMapOperation(mapOp) .Build(); RiakResult rslt = client.Execute(cmd); CheckResult(rslt); MapResponse response = cmd.Response; return(response.Key); }
public override string Save(User model) { var mapOperation = new UpdateMap.MapOperation(); mapOperation.SetRegister(firstNameRegister, model.FirstName); mapOperation.SetRegister(lastNameRegister, model.LastName); mapOperation.IncrementCounter(pageVisitsCounter, model.PageVisits); mapOperation.AddToSet(interestsSet, model.Interests); // Insert does not require context RiakString key = UpdateMap(model, mapOperation, fetchFirst: false); return((string)key); }
public void Maps() { var builder = new UpdateMap.Builder() .WithBucketType("maps") .WithBucket("customers") .WithKey("ahmed_info"); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Initial import of Ahmed's data and contact"); var mapOperation = new UpdateMap.MapOperation(); // Ahmed's first name mapOperation.SetRegister("first_name", "Ahmed"); // Ahmed's phone number mapOperation.SetRegister("phone_number", "5551234567"); builder.WithMapOperation(mapOperation); MapResponse response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Set Ahmed to NOT be an enterprise customer right now"); mapOperation = new UpdateMap.MapOperation(); mapOperation.SetFlag("enterprise_customer", false); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("enterprise_customer flag value"); Map ahmedMap = response.Value; Console.WriteLine("Ahmed enterprise_customer: {0}", ahmedMap.Flags["enterprise_customer"]); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Add page visits counter for Ahmed"); mapOperation = new UpdateMap.MapOperation(); mapOperation.IncrementCounter("page_visits", 1); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Add Ahmed's interests set"); var interestsAdds = new[] { "robots", "opera", "motorcycles" }; mapOperation = new UpdateMap.MapOperation(); mapOperation.AddToSet("interests", interestsAdds); builder.WithMapOperation(mapOperation); response = SaveMap(builder); ahmedMap = response.Value; Assert.True(ahmedMap.Sets.GetValue("interests").Contains("robots")); Assert.True(ahmedMap.Sets.GetValue("interests").Contains("opera")); Assert.True(ahmedMap.Sets.GetValue("interests").Contains("motorcycles")); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Updating Ahmed's interests"); mapOperation = new UpdateMap.MapOperation(); mapOperation.AddToSet("interests", "indie pop"); mapOperation.RemoveFromSet("interests", "opera"); builder .WithMapOperation(mapOperation) .WithContext(response.Context); response = SaveMap(builder); ahmedMap = response.Value; Assert.False(ahmedMap.Sets.GetValue("interests").Contains("opera")); Assert.True(ahmedMap.Sets.GetValue("interests").Contains("indie pop")); Assert.True(ahmedMap.Sets.GetValue("interests").Contains("robots")); Assert.True(ahmedMap.Sets.GetValue("interests").Contains("motorcycles")); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Adding Annika map"); mapOperation = new UpdateMap.MapOperation(); UpdateMap.MapOperation annikaInfoOperation = mapOperation.Map("annika_info"); annikaInfoOperation.SetRegister("first_name", "Annika"); annikaInfoOperation.SetRegister("last_name", "Weiss"); annikaInfoOperation.SetRegister("phone_number", "5559876543"); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Annika's first name"); ahmedMap = response.Value; Console.WriteLine(ahmedMap.Maps["annika_info"].Registers.GetValue("first_name")); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Removing Annika's first name"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info").RemoveRegister("first_name"); builder .WithMapOperation(mapOperation) .WithContext(response.Context); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Storing Annika's plan flags"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info") .SetFlag("enterprise_plan", false) .SetFlag("family_plan", false) .SetFlag("free_plan", true); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Is Annika on enterprise plan?"); ahmedMap = response.Value; Console.WriteLine(ahmedMap.Maps["annika_info"].Flags["enterprise_plan"]); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Adding Annika's widget_purchases counter"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info").IncrementCounter("widget_purchases", 1); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Adding Annika's interests in a set"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info").AddToSet("interests", "tango dancing"); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Remove \"tango dancing\" from Annika's interests"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info").RemoveFromSet("interests", "tango dancing"); builder .WithMapOperation(mapOperation) .WithContext(response.Context); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Add specific purchase info to Annika's data"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info").Map("purchase") .SetFlag("first_purchase", true) .SetRegister("amount", "1271") .AddToSet("items", "large widget"); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("Context: {0}", Convert.ToBase64String(response.Context)); }