예제 #1
0
        public async Task <IMutationResult> PrependAsync(string id, byte[] value, PrependOptions?options = null)
        {
            //sanity check for deferred bootstrapping errors
            _bucket.ThrowIfBootStrapFailed();

            //Get the collection ID
            await PopulateCidAsync().ConfigureAwait(false);

            options ??= PrependOptions.Default;
            using var rootSpan = RootSpan(OuterRequestSpans.ServiceSpan.Kv.Prepend);
            using var op       = new Prepend <byte[]>(_bucket.Name, id)
                  {
                      Cid             = Cid,
                      CName           = Name,
                      SName           = ScopeName,
                      Content         = value,
                      DurabilityLevel = options.DurabilityLevel,
                      Span            = rootSpan
                  };
            _operationConfigurator.Configure(op, options);

            using var cts = CreateRetryTimeoutCancellationTokenSource(options, op, out var tokenPair);
            await _bucket.RetryAsync(op, tokenPair).ConfigureAwait(false);

            return(new MutationResult(op.Cas, null, op.MutationToken));
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Value"></param>
        /// <param name="Prepend"></param>
        /// <returns></returns>
        public static string Prepend(this string Value, params string[] Prepend)
        {
            var Result = string.Empty;

            Prepend.ForEach(i => Result += i);
            return(Result + Value);
        }
        /// <summary>
        /// Prepends a value to a give key.
        /// </summary>
        /// <param name="key">The key to Prepend too.</param>
        /// <param name="value">The value to prepend to the key.</param>
        /// <returns></returns>
        public IOperationResult <string> Prepend(string key, string value)
        {
            var keyMapper = _configInfo.GetKeyMapper(Name);
            var bucket    = keyMapper.MapKey(key);
            var server    = bucket.LocatePrimary();

            var operation       = new Prepend <string>(key, value, _serializer, null, _converter);
            var operationResult = server.Send(operation);

            return(operationResult);
        }
예제 #4
0
        public void Prepend_Test()
        {
            var sut    = new Prepend();
            var Result = sut.Funktion(new int[] { 2, 3, 4, 5, 6 }, 1);

            Assert.AreEqual(Result[1], 2);
            Assert.AreEqual(Result[2], 3);
            Assert.AreEqual(Result[3], 4);
            Assert.AreEqual(Result[4], 5);
            Assert.AreEqual(Result[5], 6);
            Assert.AreEqual(Result[0], 1);
            Assert.AreEqual(Result.Length, 6);
        }
        /// <summary>
        /// Prepends a value to a give key.
        /// </summary>
        /// <param name="key">The key to Prepend too.</param>
        /// <param name="value">The value to prepend to the key.</param>
        /// <returns></returns>
        public IOperationResult <string> Prepend(string key, string value)
        {
            IVBucket vBucket;
            var      server = GetServer(key, out vBucket);

            var operation       = new Prepend <string>(key, value, _serializer, vBucket, _converter);
            var operationResult = server.Send(operation);

            if (CheckForConfigUpdates(operationResult))
            {
                Log.Info(m => m("Requires retry {0}", key));
            }
            return(operationResult);
        }
        public async Task <IMutationResult> PrependAsync(string id, byte[] value, PrependOptions options)
        {
            using (var op = new Prepend <byte[]>
            {
                Cid = Cid,
                Key = id,
                Content = value,
                DurabilityLevel = options.DurabilityLevel
            })
            {
                await ExecuteOp(op, options.Token, options.Timeout);

                return(new MutationResult(op.Cas, null, op.MutationToken));
            }
        }
        public async Task <IMutationResult> PrependAsync(string id, byte[] value, PrependOptions?options = null)
        {
            //sanity check for deferred bootstrapping errors
            _bucket.ThrowIfBootStrapFailed();

            options ??= new PrependOptions();
            using var op = new Prepend <byte[]>(_bucket.Name, id)
                  {
                      Cid             = Cid,
                      Content         = value,
                      DurabilityLevel = options.DurabilityLevel,
                      Transcoder      = _transcoder
                  };
            await _bucket.SendAsync(op, options.TokenValue, options.TimeoutValue).ConfigureAwait(false);

            return(new MutationResult(op.Cas, null, op.MutationToken));
        }
        public async Task <IMutationResult> PrependAsync(string id, byte[] value, PrependOptions options = null)
        {
            options = options ?? new PrependOptions();
            using (var op = new Prepend <byte[]>
            {
                Cid = Cid,
                Key = id,
                Content = value,
                DurabilityLevel = options.DurabilityLevel,
                Transcoder = _transcoder
            })
            {
                await _bucket.SendAsync(op, options.Token, options.Timeout);

                return(new MutationResult(op.Cas, null, op.MutationToken));
            }
        }
예제 #9
0
        public override IOperation Clone()
        {
            var cloned = new Prepend <T>(BucketName, Key)
            {
                ReplicaIdx              = ReplicaIdx,
                Content                 = Content,
                Transcoder              = Transcoder,
                VBucketId               = VBucketId,
                Opaque                  = Opaque,
                Attempts                = Attempts,
                Cas                     = Cas,
                CreationTime            = CreationTime,
                MutationToken           = MutationToken,
                LastConfigRevisionTried = LastConfigRevisionTried,
                ErrorCode               = ErrorCode
            };

            return(cloned);
        }
예제 #10
0
        public async Task <IMutationResult> PrependAsync(string id, byte[] value, PrependOptions?options = null)
        {
            //sanity check for deferred bootstrapping errors
            _bucket.ThrowIfBootStrapFailed();

            options ??= new PrependOptions();
            using var rootSpan = RootSpan(OperationNames.Prepend);
            using var op       = new Prepend <byte[]>(_bucket.Name, id)
                  {
                      Cid             = Cid,
                      CName           = Name,
                      Content         = value,
                      DurabilityLevel = options.DurabilityLevel,
                      Span            = rootSpan
                  };
            _operationConfigurator.Configure(op, options);

            await RetryUntilTimeoutOrSuccessAsync(options.TokenValue, options.TimeoutValue, op).ConfigureAwait(false);

            return(new MutationResult(op.Cas, null, op.MutationToken));
        }
예제 #11
0
        protected override void Execute(CodeActivityContext context)
        {
            var chID         = Channel__ID.Get(context);
            var readKey      = Read_API_Key.Get(context) == null ? "" : "api_key=" + Read_API_Key.Get(context);
            var chosenField  = (FieldNumber.GetHashCode() + 1).ToString();
            var chosenFormat = Format.GetHashCode() == 0 ? "" : "." + Format.ToString();

            var timezone = Timezone.Get(context) == null ? "" : "&timezone=" + Timezone.Get(context);
            var offset   = Offset.Get(context) == 0 ? "" : "&offset=" + Offset.Get(context).ToString();
            var status   = Status.Get(context) == true ? "&status=true" : "";
            var location = Location.Get(context) == true ? "&location=true" : "";
            var callback = Callback.Get(context) == null ? "" : "&callback=" + Callback.Get(context);
            var prepend  = Prepend.Get(context) == null ? "" : "&prepend=" + Prepend.Get(context);
            var append   = Append.Get(context) == null ? "" : "&append=" + Append.Get(context);

            string URL = "https://api.thingspeak.com/channels/" + chID + "/fields/" + chosenField + "/last" + chosenFormat + "?";

            URL = URL + readKey + timezone + offset + status + location + callback + prepend + append;

            WebRequest   wrGETURL  = WebRequest.Create(URL);
            Stream       objStream = wrGETURL.GetResponse().GetResponseStream();
            StreamReader objReader = new StreamReader(objStream);

            string sLine        = "";
            string httpResponse = "";

            while (sLine != null)
            {
                sLine = objReader.ReadLine();
                if (sLine != null)
                {
                    httpResponse = httpResponse + sLine + "\n";
                }
            }
            objStream.Close();
            //objReader.Close();
            Response.Set(context, httpResponse);
        }
        public RoutineDumpTransformer BuildLines(
            string paramsString           = null,
            bool dbObjectsCreateOrReplace = false,
            bool ignorePrepend            = false,
            Action <string> lineCallback  = null)
        {
            Prepend.Clear();
            Create.Clear();
            Append.Clear();

            if (lineCallback == null)
            {
                lineCallback = s => { };
            }

            bool isPrepend = true;
            bool isCreate  = false;
            bool isAppend  = true;

            var name1 = $"{Item.Schema}.{Item.Name}{paramsString ?? "("}";
            var name2 = $"{Item.Schema}.\"{Item.Name}\"{paramsString ?? "("}";
            var name3 = $"\"{Item.Schema}\".\"{Item.Name}\"{paramsString ?? "("}";
            var name4 = $"\"{Item.Schema}\".{Item.Name}{paramsString ?? "("}";

            var startSequence1 = $"CREATE {Item.TypeName} {name1}";
            var startSequence2 = $"CREATE {Item.TypeName} {name2}";
            var startSequence3 = $"CREATE {Item.TypeName} {name3}";
            var startSequence4 = $"CREATE {Item.TypeName} {name4}";

            string statement   = "";
            string endSequence = null;

            foreach (var l in lines)
            {
                var line = l;
                if (!isCreate && (line.StartsWith("--") || line.StartsWith("SET ") || line.StartsWith("SELECT ")))
                {
                    continue;
                }
                if (!isCreate && string.IsNullOrEmpty(statement) && !line.Contains(name1) && !line.Contains(name2) && !line.Contains(name3) && !line.Contains(name4))
                {
                    continue;
                }

                var createStart = line.StartsWith(startSequence1) || line.StartsWith(startSequence2) || line.StartsWith(startSequence3) || line.StartsWith(startSequence4);
                var createEnd   = endSequence != null && line.Contains($"{endSequence};");
                if (createStart)
                {
                    if (dbObjectsCreateOrReplace)
                    {
                        line = line.Replace("CREATE", "CREATE OR REPLACE");
                    }
                    isPrepend = false;
                    isCreate  = true;
                    isAppend  = false;
                    if (Create.Count > 0)
                    {
                        Create.Add("");
                    }
                }
                if (isCreate)
                {
                    if (endSequence == null)
                    {
                        endSequence = line.GetSequence();
                    }
                    Create.Add(line);
                    if (createEnd)
                    {
                        isPrepend = false;
                        isCreate  = false;
                        isAppend  = true;
                    }
                    if (!createStart && !createEnd && !isAppend)
                    {
                        lineCallback(line);
                    }
                }
                else
                {
                    statement = string.Concat(statement, statement == "" ? "" : Environment.NewLine, line);
                    if (statement.EndsWith(";"))
                    {
                        if (isPrepend && !ignorePrepend)
                        {
                            Prepend.Add(statement);
                        }
                        else if (isAppend)
                        {
                            Append.Add(statement);
                        }
                        statement = "";
                    }
                }
            }
            return(this);
        }
        /// <summary>
        /// Called when the tag helper is being processed.
        /// </summary>
        /// <param name="context">The context within which the tag helper is processed</param>
        /// <param name="output">The output from the tag helper</param>
        public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            var fc = context.GetFieldConfiguration();

            if (Append != null)
            {
                fc.Append(Append.ToHtml());
            }

            if (AppendHtml != null)
            {
                fc.Append(AppendHtml);
            }

            if (AppendHtmlContent != null)
            {
                fc.Append(AppendHtmlContent);
            }

            if (Prepend != null)
            {
                fc.Prepend(Prepend.ToHtml());
            }

            if (PrependHtml != null)
            {
                fc.Prepend(PrependHtml);
            }

            if (PrependHtmlContent != null)
            {
                fc.Prepend(PrependHtmlContent);
            }

            if (Hint != null)
            {
                fc.WithHint(Hint);
            }

            if (HintHtml != null)
            {
                fc.WithHint(HintHtml);
            }

            if (HintHtmlContent != null)
            {
                fc.WithHint(HintHtmlContent);
            }

            if (OverrideFieldHtml != null)
            {
                fc.OverrideFieldHtml(OverrideFieldHtml);
            }

            if (OverrideFieldHtmlContent != null)
            {
                fc.OverrideFieldHtml(OverrideFieldHtmlContent);
            }

            if (!string.IsNullOrWhiteSpace(AddContainerClass))
            {
                fc.AddFieldContainerClass(AddContainerClass);
            }

            if (!string.IsNullOrWhiteSpace(HintId))
            {
                fc.WithHintId(HintId);
            }

            return(Task.CompletedTask);
        }
        public SequenceDumpTransformer BuildLines(
            bool ignorePrepend           = false,
            Action <string> lineCallback = null)
        {
            Prepend.Clear();
            Create.Clear();
            Append.Clear();

            if (lineCallback == null)
            {
                lineCallback = s => { };
            }

            bool isPrepend = true;
            bool isCreate  = false;
            bool isAppend  = true;

            var startSequence = $"CREATE SEQUENCE ";

            string       statement   = "";
            const string endSequence = ";";

            foreach (var l in lines)
            {
                var line = l;
                if (!isCreate && (line.StartsWith("--") || line.StartsWith("SET ") || line.StartsWith("SELECT ")))
                {
                    continue;
                }

                var createStart = line.StartsWith(startSequence);
                var createEnd   = line.EndsWith(endSequence);
                if (createStart)
                {
                    isPrepend = false;
                    isCreate  = true;
                    isAppend  = false;
                    if (Create.Count > 0)
                    {
                        Create.Add("");
                    }
                }
                if (isCreate)
                {
                    Create.Add(line);
                    if (createEnd)
                    {
                        isPrepend = false;
                        isCreate  = false;
                        isAppend  = true;
                    }
                    if (!createStart && !createEnd && !isAppend)
                    {
                        lineCallback(line);
                    }
                }
                else
                {
                    statement = string.Concat(statement, statement == "" ? "" : Environment.NewLine, line);
                    if (statement.EndsWith(";"))
                    {
                        if (isPrepend && !ignorePrepend)
                        {
                            Prepend.Add(statement);
                        }
                        else if (isAppend)
                        {
                            Append.Add(statement);
                        }
                        statement = "";
                    }
                }
            }
            return(this);
        }
예제 #15
0
        /// <summary>
        /// Prepends a value to a give key.
        /// </summary>
        /// <param name="key">The key to Prepend too.</param>
        /// <param name="value">The value to prepend to the key.</param>
        /// <returns></returns>
        public IOperationResult <string> Prepend(string key, string value)
        {
            var operation = new Prepend <string>(key, value, _transcoder, null, _converter);

            return(SendWithRetry(operation));
        }
        public TypeDumpTransformer BuildLines(
            bool ignorePrepend           = false,
            Action <string> lineCallback = null)
        {
            Prepend.Clear();
            Create.Clear();
            Append.Clear();

            if (lineCallback == null)
            {
                lineCallback = s => { };
            }

            bool isPrepend = true;
            bool isCreate  = false;
            bool isAppend  = true;

            var name1          = $"{Item.Schema}.{Item.Name}";
            var startSequence1 = $"CREATE TYPE {name1} AS ";

            string       statement   = "";
            const string endSequence = ";";

            bool shouldContinue(string line)
            {
                return(!isCreate && string.IsNullOrEmpty(statement) &&
                       !line.Contains(string.Concat(name1, ";")) &&
                       !line.Contains(string.Concat(name1, " ")));
            }

            foreach (var l in lines)
            {
                var line = l;
                if (!isCreate && (line.StartsWith("--") || line.StartsWith("SET ") || line.StartsWith("SELECT ")))
                {
                    continue;
                }
                if (shouldContinue(line))
                {
                    continue;
                }

                var createStart = line.StartsWith(startSequence1);
                var createEnd   = line.EndsWith(endSequence);
                if (createStart)
                {
                    isPrepend = false;
                    isCreate  = true;
                    isAppend  = false;
                    if (Create.Count > 0)
                    {
                        Create.Add("");
                    }
                }
                if (isCreate)
                {
                    Create.Add(line);
                    if (createEnd)
                    {
                        isPrepend = false;
                        isCreate  = false;
                        isAppend  = true;
                    }
                    if (!createStart && !createEnd && !isAppend)
                    {
                        lineCallback(line);
                    }
                }
                else
                {
                    statement = string.Concat(statement, statement == "" ? "" : Environment.NewLine, line);
                    if (statement.EndsWith(";"))
                    {
                        if (isPrepend && !ignorePrepend)
                        {
                            Prepend.Add(statement);
                        }
                        else if (isAppend)
                        {
                            Append.Add(statement);
                        }
                        statement = "";
                    }
                }
            }
            return(this);
        }
 public static Func <IEnumerable <KeyValuePair <TKey, TValue> >, IEnumerable <KeyValuePair <TKey, TValue> > > Prepend <TKey, TValue>(TKey key, TValue value)
 {
     return(Prepend <TKey, TValue>(key)(value));
 }
        public ViewDumpTransformer BuildLines(
            bool dbObjectsCreateOrReplace = false,
            bool ignorePrepend            = false,
            Action <string> lineCallback  = null)
        {
            Prepend.Clear();
            Create.Clear();
            Append.Clear();

            if (lineCallback == null)
            {
                lineCallback = s => { };
            }

            bool isPrepend = true;
            bool isCreate  = false;
            bool isAppend  = true;

            const string startSequence = "CREATE VIEW ";
            const string endSequence   = ";";

            string statement = "";

            foreach (var l in lines)
            {
                var line = l;
                if (line.StartsWith("--") || line.StartsWith("SET ") || (!isCreate && line.StartsWith("SELECT ")))
                {
                    continue;
                }

                var createStart = line.StartsWith(startSequence);
                var createEnd   = line.EndsWith(endSequence);
                if (createStart)
                {
                    if (dbObjectsCreateOrReplace)
                    {
                        line = line.Replace("CREATE", "CREATE OR REPLACE");
                    }
                    isPrepend = false;
                    isCreate  = true;
                    isAppend  = false;
                }
                if (isCreate)
                {
                    Create.Add(line);
                    if (createEnd)
                    {
                        isPrepend = false;
                        isCreate  = false;
                        isAppend  = true;
                    }
                    if (!createStart)
                    {
                        lineCallback(line);
                    }
                }
                else
                {
                    statement = string.Concat(statement, statement == "" ? "" : Environment.NewLine, line);
                    if (statement.EndsWith(";"))
                    {
                        if (isPrepend && !ignorePrepend)
                        {
                            Prepend.Add(statement);
                        }
                        else if (isAppend)
                        {
                            Append.Add(statement);
                        }
                        statement = "";
                    }
                }
            }

            return(this);
        }