コード例 #1
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var push = value as PushNotification;
            if (push == null)
            {
                writer.WriteNull();
                return;
            }

            writer.StartObject();
            // Write push type
            if (string.IsNullOrWhiteSpace(push.Query) == false)
                writer.WriteProperty("query", push.Query);
            else if( push.Channels.Count() > 0 )
                writer.WriteArray("channels", push.Channels);
            else if( push.DeviceIds.Count() > 0 )
                writer.WriteArray("deviceids", push.DeviceIds);
            else
                writer.WriteProperty("broadcast", true);
            // Write data
            WriteData(writer, push);
            // Write platform options
            WritePlatformOptions(writer, push.PlatformOptions);
            writer.EndObject();

        }
コード例 #2
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var request = value as AuthenticateUserRequest;
            if (request == null)
            {
                writer.WriteNull();
                return;
            }

            writer
                .StartObject()
                .WithWriter(w =>
                {
                    if (string.IsNullOrWhiteSpace(request.Type) == false)
                        w.WriteProperty("type", request.Type);
                    if (request.MaxAttempts > 0)
                        w.WriteProperty("attempts").WriteValue(request.MaxAttempts);
                    if (request.TimeoutInSeconds > 0)
                        w.WriteProperty("expiry").WriteValue(request.TimeoutInSeconds);
                    if (request.CreateUserIfNotExists)
                        w.WriteProperty("createnew").WriteValue(request.CreateUserIfNotExists);
                    foreach (var key in request.Attributes.Keys)
                        w.WriteProperty(key, request[key]);
                })
                .EndObject();
        }
コード例 #3
0
 private void WriteTileOptions(JsonWriter writer, TileNotification option)
 {
     writer.StartObject();
     writer.WriteProperty("notificationtype", "tile");
     WriteTile(writer, "wp8", option.WP8Tile);
     WriteTile(writer, "wp75", option.WP75Tile);
     WriteTile(writer, "wp7", option.WP7Tile);
     writer.EndObject();
 }
コード例 #4
0
 private void WritePlatformOptions(JsonWriter writer, PlatformOptions options)
 {
     if (options == null || options.IsEmpty == true ) return;
     writer.WriteProperty("platformoptions");
     writer.StartObject();
     if (options.iOS != null)
         WriteIosOptions(writer, options.iOS);
     if (options.Android != null)
         WriteAndroidOptions(writer, options.Android);
     if (options.WindowsPhone != null)
         WriteWpOptions(writer, options.WindowsPhone);
     writer.EndObject();
 }
コード例 #5
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     var request = value as IObjectUpdateRequest;
     if (request == null)
     {
         writer.WriteNull();
         return;
     }
     
     writer
         .StartObject()
         // Write id
         .WriteProperty("__id", request.Id)
         // Write id
         .WriteProperty("__type", request.Type)
         // Write properties
         .WithWriter( w => request.PropertyUpdates.For( p => WriteProperty(w, p.Key, p.Value)))
         // Write atttributes
         .WithWriter( w => 
             {
                 if (request.AttributeUpdates.Count > 0)
                 {
                     w.WriteProperty("__attributes")
                      .StartObject()
                      .WithWriter(w2 => request.AttributeUpdates.For(a => w2.WriteProperty(a.Key, a.Value)))
                      .EndObject();
                 }
             })
         // Write acls
         .WithWriter( w => 
             {
                 if (request.AllowClaims.Count == 0 && request.DenyClaims.Count == 0) return;
                 w.WritePropertyName("__acls");
                 WriteAcls(w, request.AllowClaims, request.DenyClaims, request.ResetClaims);
             })
         // Write add tags
         .WithWriter( w => 
             {
                 if (request.AddedTags.Count > 0)
                     w.WriteArray("__addtags", request.AddedTags);
             })
         // Write remove tags
         .WithWriter(w =>
         {
             if (request.RemovedTags.Count > 0)
                 w.WriteArray("__removetags", request.RemovedTags);
         })
         .EndObject();
 }
コード例 #6
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            Entity entity = value as Entity;
            if (entity == null)
            {
                writer.WriteNull();
                return;
            }

            writer.StartObject();
            writer
                // Write id
                .WithWriter(w =>
                {
                    if (string.IsNullOrWhiteSpace(entity.Id) == false)
                        w.WriteProperty("__id", entity.Id);
                })
                // Write created by
                .WriteProperty("__createdby", entity.CreatedBy)
                // Write properties
                .WithWriter(w =>
                {
                    
                    foreach (var property in entity.Properties)
                        w.WriteProperty(property.Key, property.Value);
                })
                .WithWriter( w => WriteJson(entity, w, serializer) )
                .WithWriter(w =>
                {
                    var attr = entity.Attributes.ToArray();
                    if (attr.Length > 0)
                    {
                        w.WriteProperty("__attributes")
                         .StartObject();
                        // Write attributes
                        for (int i = 0; i < attr.Length; i++)
                            w.WriteProperty(attr[i].Key, attr[i].Value);
                        w.EndObject();
                    }

                })
                .WithWriter(w =>
                {
                    if (entity.Tags.Count() > 0)
                        w.WriteArray("__tags", entity.Tags);
                });
            writer.EndObject();
        }
コード例 #7
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     // Manage the open and closing of the object.
     // Write APObject specific content (e.g., acls)
     // Call appropriate helpers to write common stuff.
     APObject obj = value as APObject;
     if (obj == null)
     {
         writer.WriteNull();
         return;
     }
     writer.StartObject();
     EntityParser.WriteJson(writer, obj, serializer);
     AclParser.WriteAcl(writer, obj, serializer);
     writer.WriteEndObject();
 }
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     var request = value as UpdateConnectionRequest;
     if (request == null)
     {
         writer.WriteNull();
         return;
     }
     
     writer
         .StartObject()
         // Write id and type
         .WriteProperty("__id", request.Id)
         .WriteProperty("__relationtype", request.Type)
         // Write properties
         .WithWriter( w => request.PropertyUpdates.For( p => WriteProperty(w, p.Key, p.Value)))
         // Write atttributes
         .WithWriter( w => 
             {
                 if (request.AttributeUpdates.Count > 0)
                 {
                     w.WriteProperty("__attributes")
                      .StartObject()
                      .WithWriter(w2 => request.AttributeUpdates.For(a => w2.WriteProperty(a.Key, a.Value)))
                      .EndObject();
                 }
             })
         // Write add tags
         .WithWriter( w => 
             {
                 if (request.AddedTags.Count > 0)
                     w.WriteArray("__addtags", request.AddedTags);
             })
         // Write remove tags
         .WithWriter(w =>
         {
             if (request.RemovedTags.Count > 0)
                 w.WriteArray("__removetags", request.RemovedTags);
         })
         .EndObject();
 }
コード例 #9
0
 private void WriteData(JsonWriter writer, PushNotification push)
 {
     writer.WritePropertyName("data");
     writer.StartObject();
     writer
         .WriteProperty("alert", push.Alert)
         .WriteProperty("badge", push.Badge, true);
     foreach (var key in push.Data.Keys)
     {
         if (key.Equals("alert", StringComparison.OrdinalIgnoreCase) == true ||
             key.Equals("badge", StringComparison.OrdinalIgnoreCase) == true)
             continue;
         writer.WriteProperty(key, push.Data[key]);
     }
     writer.EndObject();
 }
コード例 #10
0
 private void WriteToastOptions(JsonWriter writer, ToastNotification option)
 {
     writer
         .StartObject()
         .WriteProperty("notificationtype", "toast")
         .WriteProperty("text1", option.Text1, true)
         .WriteProperty("text2", option.Text2, true)
         .WriteProperty("navigatepath", option.Path, true)
         .EndObject();
 }
コード例 #11
0
 private void WriteRawOptions(JsonWriter writer, RawNotification option)
 {
     writer
         .StartObject()
         .WriteProperty("notificationtype", "raw")
         .WriteProperty("data", option.RawData, true)
         .EndObject();
 }
コード例 #12
0
 private void WriteFlipTile(JsonWriter writer, FlipTile tile)
 {
     writer
         .StartObject()
         .WriteProperty("tiletemplate", "flip")
         .WriteProperty("tileid", tile.TileId, true)
         .WriteProperty("title", tile.FrontTitle, true)
         .WriteProperty("count", tile.FrontCount, true)
         .WriteProperty("backgroundimage", tile.FrontBackgroundImage, true)
         .WriteProperty("smallbackgroundimage", tile.SmallBackgroundImage, true)
         .WriteProperty("widebackgroundimage", tile.WideBackgroundImage, true)
         .WriteProperty("backtitle", tile.BackTitle, true)
         .WriteProperty("backbackgroundimage", tile.BackBackgroundImage, true)
         .WriteProperty("backcontent", tile.BackContent, true)
         .WriteProperty("widebackbackgroundimage", tile.WideBackBackgroundImage, true)
         .WriteProperty("widebackcontent", tile.WideBackContent, true)
         .EndObject();
 }
コード例 #13
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var email = value as Email;
            if (email == null)
            {
                writer.WriteNull();
                return;
            }

            writer
                .StartObject()
                // Write subject
                .WriteProperty("subject", email.Subject ?? string.Empty)
                // from
                .WithWriter( w => 
                    {
                        if (string.IsNullOrWhiteSpace(email.FromAddress) == false)
                            w.WriteProperty("from", email.FromAddress);
                    })
                // reply-to
                .WithWriter(w =>
                {
                    if (string.IsNullOrWhiteSpace(email.FromAddress) == false)
                        w.WriteProperty("replyto", email.ReplyTo);
                })
                // to
                .WriteArray("to", email.To)
                // cc
                .WriteArray("cc", email.Cc)
                // bcc
                .WriteArray("bcc", email.Bcc)
                // write body
                .WithWriter(w =>
                    {
                        if (email.Body is RawEmailBody)
                            WriteRawBody(w, email.Body as RawEmailBody);
                        else
                            WriteTemplateBody(w, email.Body as TemplateBody);
                    })
                // write smtp settings
                .WithWriter( w => WriteSmtp(w, email.Server))
                .EndObject();
        }
コード例 #14
0
 private static void WriteAttributes(JsonWriter writer, Entity entity, JsonSerializer serializer)
 {
     var attr = entity.Attributes.ToArray();
     if (attr.Length > 0)
     {
         writer.WriteProperty("__attributes");
         writer.StartObject();
         // Write attributes
         for (int i = 0; i < attr.Length; i++)
             writer.WriteProperty(attr[i].Key, attr[i].Value);
         writer.EndObject();
     }
 }
コード例 #15
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     // Manage the open and closing of the object.
     // Write APConnection specific content (e.g., endpoints)
     // Call appropriate helpers to write common stuff.
     APConnection conn = value as APConnection;
     if (conn == null)
     {
         writer.WriteNull();
         return;
     }
     writer.StartObject();
     EntityParser.WriteJson(writer, conn, serializer);
     WriteEndpoints(writer, conn, serializer);
     writer.WriteEndObject();
 }
コード例 #16
0
 private void WriteIconicTile(JsonWriter writer, IconicTile tile)
 {
     writer
         .StartObject()
         .WriteProperty("tiletemplate", "iconic")
         .WriteProperty("tileid", tile.TileId, true)
         .WriteProperty("title", tile.FrontTitle, true)
         .WriteProperty("iconimage", tile.IconImage, true)
         .WriteProperty("smalliconimage", tile.SmallIconImage, true)
         .WriteProperty("backgroundcolor", tile.BackgroundColor, true)
         .WriteProperty("widecontent1", tile.WideContent1, true)
         .WriteProperty("widecontent2", tile.WideContent2, true)
         .WriteProperty("widecontent3", tile.WideContent3, true)
         .EndObject();
 }
コード例 #17
0
 private void WriteCyclicTile(JsonWriter writer, CyclicTile tile)
 {
     writer
         .StartObject()
         .WriteProperty("tiletemplate", "cycle")
         .WriteProperty("tileid", tile.TileId, true)
         .WriteProperty("title", tile.FrontTitle, true)
         .WithWriter( w => 
             {
                 int index = 1;
                 foreach (var image in tile.Images.ToArray())
                 {
                     writer.WriteProperty(string.Format("cycleimage{0}", index++), image);
                 }
             })
         .EndObject();
 }