public static DatabaseSmugglerOptionsServerSide Create(HttpContext httpContext)
        {
            var result = new DatabaseSmugglerOptionsServerSide();

            foreach (var item in httpContext.Request.Query)
            {
                try
                {
                    var key = item.Key;
                    if (string.Equals(key, nameof(OperateOnTypes), StringComparison.OrdinalIgnoreCase))
                    {
                        result.OperateOnTypes = (DatabaseItemType)Enum.Parse(typeof(DatabaseItemType), item.Value[0]);
                    }
                    else if (string.Equals(key, nameof(IncludeExpired), StringComparison.OrdinalIgnoreCase))
                    {
                        result.IncludeExpired = bool.Parse(item.Value[0]);
                    }
                    else if (string.Equals(key, nameof(IncludeArtificial), StringComparison.OrdinalIgnoreCase))
                    {
                        result.IncludeArtificial = bool.Parse(item.Value[0]);
                    }
                    else if (string.Equals(key, nameof(RemoveAnalyzers), StringComparison.OrdinalIgnoreCase))
                    {
                        result.RemoveAnalyzers = bool.Parse(item.Value[0]);
                    }
                    else if (string.Equals(key, nameof(TransformScript), StringComparison.OrdinalIgnoreCase))
                    {
                        result.TransformScript = Uri.UnescapeDataString(item.Value[0]);
                    }
                    else if (string.Equals(key, nameof(MaxStepsForTransformScript), StringComparison.OrdinalIgnoreCase))
                    {
                        result.MaxStepsForTransformScript = int.Parse(item.Value[0]);
                    }
                    else if (string.Equals(key, "collection", StringComparison.OrdinalIgnoreCase))
                    {
                        result.Collections.AddRange(item.Value);
                    }
                    else if (string.Equals(key, nameof(SkipRevisionCreation), StringComparison.OrdinalIgnoreCase))
                    {
                        result.SkipRevisionCreation = bool.Parse(item.Value[0]);
                    }
                }
                catch (Exception e)
                {
                    throw new ArgumentException($"Could not handle query string parameter '{item.Key}' (value: {item.Value})", e);
                }
            }

            return(result);
        }
Example #2
0
        public static DatabaseSmugglerOptionsServerSide Create(HttpContext httpContext, JsonOperationContext context)
        {
            var result = new DatabaseSmugglerOptionsServerSide();

            foreach (var item in httpContext.Request.Query)
            {
                try
                {
                    var key = item.Key;
                    if (string.Equals(key, "operateOnTypes", StringComparison.OrdinalIgnoreCase))
                    {
                        result.OperateOnTypes = (DatabaseItemType)Enum.Parse(typeof(DatabaseItemType), item.Value[0]);
                    }
                    else if (string.Equals(key, "revisionDocumentsLimit", StringComparison.OrdinalIgnoreCase))
                    {
                        result.RevisionDocumentsLimit = int.Parse(item.Value[0]);
                    }
                    else if (string.Equals(key, "includeExpired", StringComparison.OrdinalIgnoreCase))
                    {
                        result.IncludeExpired = bool.Parse(item.Value[0]);
                    }
                    else if (string.Equals(key, "removeAnalyzers", StringComparison.OrdinalIgnoreCase))
                    {
                        result.RemoveAnalyzers = bool.Parse(item.Value[0]);
                    }
                    else if (string.Equals(key, "disableVersioningBundle", StringComparison.OrdinalIgnoreCase))
                    {
                        result.DisableVersioningBundle = bool.Parse(item.Value[0]);
                    }
                    else if (string.Equals(key, "transformScript", StringComparison.OrdinalIgnoreCase))
                    {
                        result.TransformScript = Uri.UnescapeDataString(item.Value[0]);
                    }
                    else if (string.Equals(key, "maxStepsForTransformScript", StringComparison.OrdinalIgnoreCase))
                    {
                        result.MaxStepsForTransformScript = int.Parse(item.Value[0]);
                    }
                    else if (string.Equals(key, "collection", StringComparison.OrdinalIgnoreCase))
                    {
                        result.CollectionsToExport.AddRange(item.Value);
                    }
                }
                catch (Exception e)
                {
                    throw new ArgumentException($"Could not handle query string parameter '{item.Key}' (value: {item.Value})", e);
                }
            }

            return(result);
        }