Example #1
0
        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 })}]");
            }
        }
Example #2
0
        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 })}]");
        }