static string GenerateConcurrencyModeHandler(string propertyName, DotvvmBindableObject obj) { var mode = (obj.GetValue(PostBack.ConcurrencyProperty) as PostbackConcurrencyMode?) ?? PostbackConcurrencyMode.Default; // determine concurrency queue string queueName = null; var queueSettings = obj.GetValueRaw(PostBack.ConcurrencyQueueSettingsProperty) as ConcurrencyQueueSettingsCollection; if (queueSettings != null) { queueName = queueSettings.FirstOrDefault(q => string.Equals(q.EventName, propertyName, StringComparison.OrdinalIgnoreCase))?.ConcurrencyQueue; } if (queueName == null) { queueName = obj.GetValue(PostBack.ConcurrencyQueueProperty) as string ?? "default"; } // return the handler script if (mode == PostbackConcurrencyMode.Default && "default".Equals(queueName)) { return(null); } var handlerName = $"concurrency-{mode.ToString().ToLower()}"; if ("default".Equals(queueName)) { return(JsonConvert.ToString(handlerName)); } else { return($"[{JsonConvert.ToString(handlerName)},{GenerateHandlerOptions(obj, new Dictionary<string, object> { ["q"] = queueName })}]"); } }
static string GenerateConcurrencyModeHandler(DotvvmBindableObject obj) { var mode = (obj.GetValue(PostBack.ConcurrencyProperty) as PostbackConcurrencyMode?) ?? PostbackConcurrencyMode.Default; var queueName = obj.GetValueRaw(PostBack.ConcurrencyQueueProperty) ?? "default"; if (mode == PostbackConcurrencyMode.Default && "default".Equals(queueName)) { return(null); } var handlerName = $"concurrency-{mode.ToString().ToLower()}"; if ("default".Equals(queueName)) { return(JsonConvert.ToString(handlerName)); } return($"[{JsonConvert.ToString(handlerName)},{GenerateHandlerOptions(obj, new Dictionary<string, object> { ["q"] = queueName })}]"); }