Beispiel #1
0
        // TODO convert to multithreaded usage
        private IEnumerable <string> GenerateRandomStrings(IStringRequest stringRequest, CancellationToken cancellationToken)
        {
            var strings = new Queue <string>(1000);

            for (var bi = BigInteger.Zero; bi < stringRequest.Iterations; bi++)
            {
                cancellationToken.ThrowIfCancellationRequested();
                strings.Enqueue(GenerateRandomString(stringRequest.StringLength, characterList.Value.Length));
            }

            return(strings);
        }
Beispiel #2
0
        /// <summary>
        /// Generates <paramref name="numberOfIterations"/> of random string(s) of
        /// <paramref name="stringLength"/>.
        /// </summary>
        /// <param name="numberOfIterations">The number of strings to generate.</param>
        /// <param name="stringLength">The length of the string to generate.</param>
        /// <returns></returns>
        public async Task <IStringResult> GenerateAsync(IStringRequest stringRequest, CancellationToken cancellationToken)
        {
            var startTime = DateTime.Now;
            var strings   = await Task.Run(() => GenerateRandomStrings(stringRequest, cancellationToken));

            var endTime = DateTime.Now;

            var duration = endTime - startTime;

            var result = new StringResult(stringRequest, strings, duration);

            return(result);
        }
Beispiel #3
0
        public bool AskFolder(IStringRequest request)
        {
            var dialog = new System.Windows.Forms.FolderBrowserDialog();

            var result = dialog.ShowDialog();

            if (result == System.Windows.Forms.DialogResult.OK)
            {
                request.Input = dialog.SelectedPath;
                return(true);
            }

            return(false);
        }
Beispiel #4
0
        private IStringResult GenerateInternal(IStringRequest stringRequest, CancellationToken cancellationToken)
        {
            characterList = new Lazy <char[]>(stringRequest.ToCharArray());

            var startTime = DateTime.Now;
            var strings   = GenerateRandomStrings(stringRequest, cancellationToken);
            var endTime   = DateTime.Now;

            var duration = endTime - startTime;

            var result = new StringResult(stringRequest, strings, duration);

            return(result);
        }
Beispiel #5
0
 /// <summary>
 /// Generates <paramref name="numberOfIterations"/> of random string(s) of
 /// <paramref name="stringLength"/>.
 /// </summary>
 /// <param name="stringRequest">The request holding information about how to generate strings.</param>
 /// <param name="cancellationToken"></param>
 /// <returns>A <see cref="IStringResult"/> as a result.</returns>
 public IStringResult Generate(IStringRequest stringRequest, CancellationToken cancellationToken)
 {
     return(GenerateInternal(stringRequest, cancellationToken));
 }