コード例 #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)
 {
     writer.WriteStartObject();
     writer.WriteProperty("mod", Module);
     writer.WriteProperty("fun", Function);
     writer.WriteEndObject();
 }
コード例 #3
0
ファイル: DirectMethod.cs プロジェクト: xcrash/ext-direct-mvc
 // Writes JSON representaion of the method to the specified JsonWriter.
 // Used to generate Ext.Direct API
 internal void WriteJson(JsonWriter jsonWriter)
 {
     jsonWriter.WriteStartObject();
     jsonWriter.WriteProperty("name", this.Name);
     jsonWriter.WriteProperty("len", this.Len);
     if (this.IsFormHandler) {
         jsonWriter.WriteProperty("formHandler", true);
     }
     jsonWriter.WriteEndObject();
 }
コード例 #4
0
		private bool WriteFieldValueFactor(JsonWriter writer, IFieldValueFactorFunction value, JsonSerializer serializer)
		{
			if (value == null) return false;
			writer.WritePropertyName("field_value_factor");
			writer.WriteStartObject();
			{
				writer.WriteProperty(serializer, "field", value.Field);
				writer.WriteProperty(serializer, "factor", value.Factor);
				writer.WriteProperty(serializer, "missing", value.Missing);
				writer.WriteProperty(serializer, "modifier", value.Modifier);
			}
			writer.WriteEndObject();
			return true;
		}
コード例 #5
0
        protected override void WriteJson(Entity entity, JsonWriter writer, JsonSerializer serializer)
        {
            var conn = entity as Connection;
            if (conn == null)
                return;

            
            // Write endpoint A
            if (conn.CreateEndpointA == false)
            {
                writer
                    .WriteProperty("__endpointa")
                    .StartObject()
                    .WriteProperty("label", conn.EndpointA.Label)
                    .WriteProperty("articleid", conn.EndpointA.ArticleId)
                    .EndObject();
            }
            else
            {
                writer
                    .WriteProperty("__endpointa")
                    .StartObject()
                    .WriteProperty("label", conn.EndpointA.Label)
                    .WriteProperty("article")
                    .WithWriter( w => WriteArticle(w, conn.EndpointA.Content) )
                    .EndObject();
            }

            // Write endpoint B
            if (conn.CreateEndpointB == false)
            {
                writer
                    .WriteProperty("__endpointb")
                    .StartObject()
                    .WriteProperty("label", conn.EndpointB.Label)
                    .WriteProperty("articleid", conn.EndpointB.ArticleId)
                    .EndObject();
            }
            else
            {
                writer
                    .WriteProperty("__endpointb")
                    .StartObject()
                    .WriteProperty("label", conn.EndpointB.Label)
                    .WriteProperty("article")
                    .WithWriter(w => WriteArticle(w, conn.EndpointB.Content))
                    .EndObject();
            }
        }
コード例 #6
0
        public void WriteJson(JsonWriter writer) {
            writer.WriteStartObject();
            writer.WriteProperty("name", Name);

            if (Params != null) {
                writer.WriteProperty("params", Params);
            } else {
                writer.WriteProperty("len", Len);
            }

            if (IsFormHandler) {
                writer.WriteProperty("formHandler", true);
            }

            writer.WriteEndObject();
        }
コード例 #7
0
        public void Serialize(JsonWriter writer, object obj, JsonSerializer serializer)
        {
            if (obj == null) return;

            var issue = (Issue) obj;

            writer.WriteStartObject();
            writer.WriteValue(RedmineKeys.ISSUE);

            writer.WriteProperty(RedmineKeys.SUBJECT, issue.Subject);
            writer.WriteProperty(RedmineKeys.DESCRIPTION, issue.Description);
            writer.WriteProperty(RedmineKeys.NOTES, issue.Notes);

            if (issue.Id != 0)
            {
                writer.WriteProperty(RedmineKeys.PRIVATE_NOTES, issue.PrivateNotes);
            }

            writer.WriteProperty(RedmineKeys.IS_PRIVATE, issue.IsPrivate);

            writer.WriteIdIfNotNull(RedmineKeys.PROJECT_ID, issue.Project);
            writer.WriteIdIfNotNull(RedmineKeys.PRIORITY_ID, issue.Priority);
            writer.WriteIdIfNotNull(RedmineKeys.STATUS_ID, issue.Status);
            writer.WriteIdIfNotNull(RedmineKeys.CATEGORY_ID, issue.Category);
            writer.WriteIdIfNotNull(RedmineKeys.TRACKER_ID, issue.Tracker);
            writer.WriteIdIfNotNull(RedmineKeys.ASSIGNED_TO_ID, issue.AssignedTo);
            writer.WriteIdIfNotNull(RedmineKeys.FIXED_VERSION_ID, issue.FixedVersion);
            writer.WriteValueOrEmpty(RedmineKeys.ESTIMATED_HOURS, issue.EstimatedHours);

            writer.WriteIdOrEmpty(RedmineKeys.PARENT_ISSUE_ID, issue.ParentIssue);
            writer.WriteDateOrEmpty(RedmineKeys.START_DATE, issue.StartDate);
            writer.WriteDateOrEmpty(RedmineKeys.DUE_DATE, issue.DueDate);
            writer.WriteDateOrEmpty(RedmineKeys.UPDATED_ON, issue.DueDate);

            if (issue.DoneRatio != null)
                writer.WriteProperty(RedmineKeys.DONE_RATIO, issue.DoneRatio.Value.ToString(CultureInfo.InvariantCulture));

            if (issue.SpentHours != null)
                writer.WriteProperty(RedmineKeys.SPENT_HOURS, issue.SpentHours.Value.ToString(CultureInfo.InvariantCulture));

            writer.WriteArray(RedmineKeys.UPLOADS, issue.Uploads, new UploadConverter(), serializer);
            writer.WriteArray(RedmineKeys.CUSTOM_FIELDS, issue.CustomFields, new IssueCustomFieldConverter(), serializer);

            writer.WriteIdsArray(RedmineKeys.WATCHER_USER_IDS, issue.Watchers);

            writer.WriteEndObject();
        }
コード例 #8
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();
 }
コード例 #9
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var request = value as AtomicCountersRequest;
            if (request == null)
            {
                writer.WriteNull();
                return;
            }

            writer.WriteStartObject();
            writer.WritePropertyName(request.Property );
            writer.WriteStartObject();
            if( request.IncrementBy > 0 )
                writer.WriteProperty("incrementby", request.IncrementBy.ToString());
            if( request.DecrementBy > 0 )
                writer.WriteProperty("decrementby", request.DecrementBy.ToString());
            writer.WriteEndObject();
            writer.WriteEndObject();
        }
コード例 #10
0
 private void WriteWpOptions(JsonWriter writer, WindowsPhoneOptions options)
 {
     writer.WriteProperty("wp");
     if (options.Notification.WPNotificationType == WPNotificationType.Toast)
         WriteToastOptions(writer, options.Notification as ToastNotification);
     else if (options.Notification.WPNotificationType == WPNotificationType.Tile)
         WriteTileOptions(writer, options.Notification as TileNotification);
     if (options.Notification.WPNotificationType == WPNotificationType.Raw)
         WriteRawOptions(writer, options.Notification as RawNotification);
 }
コード例 #11
0
        public void Serialize(JsonWriter writer, object obj, JsonSerializer serializer)
        {
            if (obj == null) return;

            var item = (IssueCustomField)obj;

            if (item.Values == null) return;

            var count = item.Values.Count;

            if (count > 1)
            {
                writer.WriteProperty(RedmineKeys.VALUE, item.Values.Select(x => x.Info).ToArray());
            }
            else
            {
                writer.WriteProperty(RedmineKeys.VALUE, count > 0 ? item.Values[0].Info : null);
            }
        }
コード例 #12
0
 protected override void WriteJson(Entity entity, JsonWriter writer, JsonSerializer serializer)
 {
     if (entity == null)
         return;
     var device = entity as Device;
     if (device != null)
     {
         writer
             .WriteProperty("__schemaid", device.SchemaId);
     }
 }
コード例 #13
0
		private bool WriteRandomScore(JsonWriter writer, IRandomScoreFunction value, JsonSerializer serializer)
		{
			if (value == null) return false;
			writer.WritePropertyName("random_score");
			writer.WriteStartObject();
			{
				writer.WriteProperty(serializer, "seed", value.Seed);
			}
			writer.WriteEndObject();
			return true;
		}
コード例 #14
0
 protected override void WriteJson(Entity entity, JsonWriter writer, JsonSerializer serializer)
 {
     if (entity == null)
         return;
     var user = entity as User;
     if (user != null)
     {
         writer
             .WriteProperty("__schemaid", user.SchemaId);
     }
 }
コード例 #15
0
		private bool WriteScriptScore(JsonWriter writer, IScriptScoreFunction value, JsonSerializer serializer)
		{
			if (value == null) return false;
			writer.WritePropertyName("script_score");
			writer.WriteStartObject();
			{
				writer.WriteProperty(serializer, "script", value.Script);
			}
			writer.WriteEndObject();
			return true;
		}
コード例 #16
0
 protected override void WriteJson(Entity entity, JsonWriter writer, JsonSerializer serializer)
 {
     if (entity == null)
         return;
     var article = entity as Article;
     if (article != null)
     {
         writer
             .WriteProperty("__schematype", article.Type)
             .WriteProperty("__schemaid", article.SchemaId);
     }
 }
コード例 #17
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();
 }
コード例 #18
0
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var v = value as IScriptQuery;
			if (v == null) return;

			writer.WriteStartObject();
			if (!v.Name.IsNullOrEmpty()) writer.WriteProperty(serializer, "_name", v.Name);
			if (v.Boost != null) writer.WriteProperty(serializer, "boost", v.Boost);
			writer.WritePropertyName("script");
			writer.WriteStartObject();
			{
				if (v.Id != null) writer.WriteProperty(serializer, "id", v.Id);
				if (v.File != null) writer.WriteProperty(serializer, "file", v.File);
				if (v.Inline != null) writer.WriteProperty(serializer, "inline", v.Inline);
				if (v.Lang != null) writer.WriteProperty(serializer, "lang", v.Lang);
				if (v.Params != null) writer.WriteProperty(serializer, "params", v.Params);
			}
			writer.WriteEndObject();
			writer.WriteEndObject();
		}
コード例 #19
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();
     }
 }
コード例 #20
0
 private void WriteRawBody(JsonWriter writer, RawEmailBody raw)
 {
     if (raw == null)
         writer.WriteProperty("body").WriteNull();
     else
         writer
             .WriteProperty("body")
             .StartObject()
                 .WriteProperty("content", raw.Content)
                 .WriteProperty("ishtml", raw.IsHtml)
             .EndObject();
 }
コード例 #21
0
 private void WriteSmtp(JsonWriter writer, SmtpServer server)
 {
     if (server == null )
         return;
     writer
         .WriteProperty("smtp")
         .StartObject()
             .WriteProperty("host", server.Host ?? null)
             .WriteProperty("port", server.Port <= 0 ? server.DefaultPort : server.Port)
             .WriteProperty("username", server.Username)
             .WriteProperty("password", server.Password)
             .WriteProperty("enablessl", server.EnableSSL)
         .EndObject();
 }
コード例 #22
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();
 }
コード例 #23
0
        private static void WriteAcls(JsonWriter writer, List<Claim> allowed, List<Claim> denied, List<ResetRequest> reset)
        {
            var map = new Dictionary<SidTypeKey, ClaimGroup>();
            allowed.For(x =>
            {
                ClaimGroup group;
                var key = new SidTypeKey { Sid = x.Sid, Type = x.ClaimType };
                if (map.TryGetValue(key, out group) == false)
                    group = new ClaimGroup { Sid = x.Sid, Type = x.ClaimType };
                group.Allowed.Add(x.AccessType);
            });
            denied.For(x =>
            {
                ClaimGroup group;
                var key = new SidTypeKey { Sid = x.Sid, Type = x.ClaimType };
                if (map.TryGetValue(key, out group) == false)
                    group = new ClaimGroup { Sid = x.Sid, Type = x.ClaimType };
                group.Denied.Add(x.AccessType);
            });
            reset.For(x =>
            {
                ClaimGroup group;
                var key = new SidTypeKey { Sid = x.Sid, Type = x.Type };
                if (map.TryGetValue(key, out group) == false)
                    group = new ClaimGroup { Sid = x.Sid, Type = x.Type };
                group.Reset.Add(x.Access);
            });

            writer.WriteStartArray();
            map.Values.For(x =>
            {
                writer.WriteStartObject();
                writer.WriteProperty("sid", x.Sid);
                writer.WriteProperty("type", x.Type.ToString().ToLower());
                if (x.Allowed.Count > 0)
                    writer.WriteArray("allow", x.Allowed.Select(y => y.ToString().ToLower()));
                if (x.Denied.Count > 0)
                    writer.WriteArray("deny", x.Denied.Select(y => y.ToString().ToLower()));
                if (x.Reset.Count > 0)
                    writer.WriteArray("dontcare", x.Reset.Select(y => y.ToString().ToLower()));
                writer.WriteEndObject();
            });
            writer.WriteEndArray();
        }
コード例 #24
0
 private void WriteAndroidOptions(JsonWriter writer, AndroidOptions options)
 {
     writer
         .WriteProperty("android")
         .StartObject()
         .WriteProperty("title", options.NotificationTitle)
         .EndObject();
 }
コード例 #25
0
 private void WriteIosOptions(JsonWriter writer, IOsOptions options)
 {
     writer
         .WriteProperty("ios")
         .StartObject()
         .WriteProperty("sound", options.SoundFile)
         .EndObject();
 }
コード例 #26
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();
 }
コード例 #27
0
 private void WriteTemplateBody(JsonWriter writer, TemplateBody body)
 {
     
     if (body == null)
         writer.WriteProperty("body").WriteNull();
     else
         writer
             .WriteProperty("body")
             .StartObject()
                 .WriteProperty("templatename", body.TemplateName)
                 .WithWriter( w => 
                     {
                         if (body.Keys.Count() == 0)
                             return;
                         w.WritePropertyName("data");
                         w.StartObject();
                         foreach (var key in body.Keys)
                             w.WriteProperty(key, body[key]);
                         w.EndObject();
                     })
                 .WriteProperty("ishtml", body.IsHtml)
             .EndObject();
 }
コード例 #28
0
 public static void WriteJson(JsonWriter writer, Entity entity, JsonSerializer serializer)
 {
     // Write id
     if (string.IsNullOrWhiteSpace(entity.Id) == false)
         writer.WriteProperty("__id", entity.Id);
     // Write properties.
     WriteProperties(writer, entity, serializer);
     // Write attributes
     WriteAttributes(writer, entity, serializer);
     // Write Tags
     WriteTags(writer, entity, serializer);
 }
コード例 #29
0
 public override void WriteJson(JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WriteProperty("name", Name);
     writer.WriteEndObject();
 }
コード例 #30
0
 private static void WriteProperties(JsonWriter writer, Entity entity, JsonSerializer serializer)
 {
     foreach (var property in entity.Properties)
     {
         if (property.Value is NullValue)
         {
             writer.WritePropertyName(property.Key);
             writer.WriteNull();
         }
         else if (property.Value is MultiValue)
         {
             var collection = property.Value.GetValues<string>();
             writer.WriteArray(property.Key, collection);
         }
         else
             writer.WriteProperty(property.Key, property.Value.GetValue<string>());
     }
 }