public ArrayInstance ListEntities(object filterCriteria)
        {
            var criteria = new EntityFilterCriteriaInstance(Engine.Object.InstancePrototype);

            if (filterCriteria is FolderInstance)
            {
                criteria.EntityFilterCriteria.Path = (filterCriteria as FolderInstance).FullPath;
            }
            else if (filterCriteria is string || filterCriteria is StringInstance || filterCriteria is ConcatenatedString)
            {
                criteria.EntityFilterCriteria.Path = filterCriteria.ToString();
            }
            else if (filterCriteria != null && filterCriteria != Null.Value && filterCriteria != Undefined.Value)
            {
                criteria = JurassicHelper.Coerce <EntityFilterCriteriaInstance>(Engine, filterCriteria);
            }

            var result = Engine.Array.Construct();

            foreach (var entity in m_repository.ListEntities(criteria.EntityFilterCriteria))
            {
                ArrayInstance.Push(result, new EntityInstance(Engine, entity));
            }

            return(result);
        }
        public ArrayInstance ListEntityComments(object entityId, object path)
        {
            if (entityId == Null.Value || entityId == Undefined.Value || entityId == null)
            {
                throw new JavaScriptException(Engine, "Error", "Entity Id must be specified.");
            }

            var id = ConvertFromJsObjectToGuid(entityId);

            var result = Engine.Array.Construct();

            var strPath = String.Empty;

            if (path != Null.Value && path != Undefined.Value && path != null)
            {
                strPath = TypeConverter.ToString(path);
            }

            foreach (var comment in m_repository.ListEntityComments(id, strPath))
            {
                ArrayInstance.Push(result, new CommentInstance(Engine, comment));
            }

            return(result);
        }
        public ArrayInstance ListFolders(object path)
        {
            string stringPath;

            if (path is FolderInstance)
            {
                stringPath = (path as FolderInstance).FullPath;
            }
            else if (path == Undefined.Value || path == Null.Value || path == null)
            {
                stringPath = String.Empty;
            }
            else
            {
                stringPath = path.ToString();
            }

            var result = Engine.Array.Construct();

            var folders = m_repository.ListFolders(stringPath);

            if (folders != null)
            {
                foreach (var folder in folders)
                {
                    ArrayInstance.Push(result, new FolderInstance(Engine, folder));
                }
            }

            return(result);
        }
        public ObjectInstance SearchWindowsPrincipals(SPWebApplicationInstance webApp, string input, string principalType, int maxCount)
        {
            if (webApp == null)
            {
                throw new JavaScriptException(this.Engine, "Error", "A webapp must be specified as the first parameter.");
            }

            SPPrincipalType scopes;

            principalType.TryParseEnum(true, SPPrincipalType.All, out scopes);

            bool reachedMaxCount;
            var  principals    = SPUtility.SearchWindowsPrincipals(webApp.SPWebApplication, input, scopes, maxCount, out reachedMaxCount);
            var  arrPrincipals = this.Engine.Array.Construct();

            foreach (var principal in principals)
            {
                ArrayInstance.Push(arrPrincipals, new SPPrincipalInfoInstance(this.Engine, principal));
            }

            var result = this.Engine.Object.Construct();

            result.SetPropertyValue("principals", arrPrincipals, false);
            result.SetPropertyValue("reachedMaxCount", reachedMaxCount, false);
            return(result);
        }
Ejemplo n.º 5
0
        public object InstallBundle(Jurassic.ScriptEngine engine)
        {
            var baristaInstance = engine.GetGlobalValue("barista") as BaristaGlobal;

            if (baristaInstance == null)
            {
                throw new InvalidOperationException("Barista Global bundle could not be obtained.");
            }

            var dependencyResultObj = engine.Object.Construct();

            //Require all dependencies..
            foreach (var dependency in m_dependencies)
            {
                var result = baristaInstance.Common.Require(dependency.Key, null);
                dependencyResultObj.SetPropertyValue(dependency.Value, result, false);
            }

            //If it's a function dependency, execute that.
            if (this.ScriptFunction != null)
            {
                var args = new List <object>();
                if (this.ScriptFunction is UserDefinedFunction)
                {
                    var udf = this.ScriptFunction as UserDefinedFunction;

                    args.AddRange(udf.ArgumentNames.Select(argumentName => dependencyResultObj.HasProperty(argumentName) ? dependencyResultObj.GetPropertyValue(argumentName) : Null.Value));
                }

                return(this.ScriptFunction.Call(engine.Global, args.ToArray()));
            }

            //Use the implemented "include" function to include the scripts.
            //this promotes loose coupling between the script bundle and the include.
            var variableNames = dependencyResultObj.Properties.Select(pn => pn.Name).ToArray();
            var resultArray   = engine.Array.Construct();

            foreach (var scriptReference in m_scriptReferences)
            {
                //Create a new scope, and eval the script within the new scope.
                var scope = DeclarativeScope.CreateRuntimeScope(engine.CreateGlobalScope(), variableNames);
                foreach (var property in dependencyResultObj.Properties)
                {
                    if (property.Value == Undefined.Value || property.Value == Null.Value || property.Value == null)
                    {
                        continue;
                    }

                    scope.SetValue(property.Name, property.Value);
                }

                var result = baristaInstance.Include(scriptReference, scope, engine.Global, engine.ForceStrictMode);

                ArrayInstance.Push(resultArray, result);
            }

            return(resultArray.Length == 1
        ? resultArray[0]
        : resultArray);
        }
        public ArrayInstance SearchAllDirectoryEntities(string searchText, int maxResults, string principalType)
        {
            var principalTypeEnum = PrincipalType.All;

            if (String.IsNullOrEmpty(principalType) == false)
            {
                principalTypeEnum = (PrincipalType)Enum.Parse(typeof(PrincipalType), principalType);
            }

            var entities = ADHelper.SearchAllDirectoryEntities(searchText, maxResults, principalTypeEnum, LdapPath);

            var result = Engine.Array.Construct();

            foreach (var entity in entities)
            {
                if (entity is ADGroup)
                {
                    ArrayInstance.Push(result, new ADGroupInstance(Engine.Object.InstancePrototype, entity as ADGroup, LdapPath));
                }
                else if (entity is ADUser)
                {
                    ArrayInstance.Push(result, new ADUserInstance(Engine.Object.InstancePrototype, entity as ADUser, LdapPath));
                }
            }

            return(result);
        }
        public void Process(IList <DiffInfoInstance> source, IList <DiffInfoInstance> target)
        {
            foreach (var sourceDiffInfo in source)
            {
                var info           = sourceDiffInfo;
                var targetDiffInfo = target.FirstOrDefault(t => String.Equals(t.Url, info.Url, StringComparison.InvariantCultureIgnoreCase));
                if (targetDiffInfo == null)
                {
                    ArrayInstance.Push(this.Removed, sourceDiffInfo);
                    continue;
                }

                ArrayInstance.Push(
                    String.Equals(sourceDiffInfo.Hash, targetDiffInfo.Hash)
                        ? this.Identical
                        : this.Changed,
                    targetDiffInfo);
            }

            foreach (var targetDiffInfo in target)
            {
                var info           = targetDiffInfo;
                var sourceDiffInfo = source.FirstOrDefault(t => String.Equals(t.Url, info.Url, StringComparison.InvariantCultureIgnoreCase));

                if (sourceDiffInfo == null)
                {
                    ArrayInstance.Push(this.Added, targetDiffInfo);
                }
            }
        }
Ejemplo n.º 8
0
        public object Move(SPContentDatabaseInstance destinationDatabase, ArrayInstance sitesToMove)
        {
            var sitesToMoveList = new List <SPSite>();

            foreach (var site in sitesToMove.ElementValues.OfType <SPSiteInstance>())
            {
                if (site != null)
                {
                    sitesToMoveList.Add(site.Site);
                }
            }

            Dictionary <SPSite, string> failedSites;

            m_contentDatabase.Move(destinationDatabase.SPContentDatabase, sitesToMoveList, out failedSites);

            var result = this.Engine.Array.Construct();

            foreach (var site in failedSites)
            {
                var resultObj = this.Engine.Object.Construct();
                resultObj.SetPropertyValue("site", new SPSiteInstance(this.Engine.Object.InstancePrototype, site.Key), false);
                resultObj.SetPropertyValue("status", site.Value, false);
                ArrayInstance.Push(result, resultObj);
            }
            return(result);
        }
Ejemplo n.º 9
0
        public ArrayInstance ListTeamProjectCollections()
        {
            var configurationServer = TfsConfigurationServerFactory.GetConfigurationServer(m_tfsUri);

            configurationServer.Credentials = m_credentialsProvider.Credential;

            configurationServer.EnsureAuthenticated();

            var catalogNode = configurationServer.CatalogNode;

            var tpcNodes = catalogNode.QueryChildren(
                new[] { CatalogResourceTypes.ProjectCollection },
                false, CatalogQueryOptions.None);

            var result = this.Engine.Array.Construct();

            foreach (var teamProjectCollection in tpcNodes
                     .Select(p => configurationServer.GetTeamProjectCollection(new Guid(p.Resource.Properties["InstanceId"])))
                     .Where(teamProjectCollection => teamProjectCollection != null))
            {
                ArrayInstance.Push(result, new TfsTeamProjectCollectionInstance(this.Engine.Object.InstancePrototype, teamProjectCollection));
            }

            return(result);
        }
Ejemplo n.º 10
0
            public override object CallLateBound(object thisObject, params object[] argumentValues)
            {
                var path = argumentValues.ElementAtOrDefault(0);

                if (path == Undefined.Value ||
                    path == Null.Value || path == null)
                {
                    return(thisObject);
                }

                var sPath = TypeConverter.ToString(path);

                var s1 = JSONObject.Stringify(this.Engine, thisObject, null, null);
                var o1 = JToken.Parse(s1);

                var tokens = o1.SelectTokens(sPath, false);
                var result = this.Engine.Array.Construct();

                foreach (var token in tokens)
                {
                    ArrayInstance.Push(result, JSONObject.Parse(this.Engine, token.ToString(), null));
                }

                return(result);
            }
Ejemplo n.º 11
0
 private void GetAllIterationsRecursive(Node node, ArrayInstance array)
 {
     foreach (Node item in node.ChildNodes)
     {
         ArrayInstance.Push(array, node.Name);
         GetAllIterationsRecursive(item, array);
     }
 }
Ejemplo n.º 12
0
        public ArrayInstance ToArray()
        {
            var result = Engine.Array.Construct();

            foreach (var listTemplate in m_listTemplateCollection.OfType <SPListTemplate>())
            {
                ArrayInstance.Push(result, new SPListTemplateInstance(Engine.Object.InstancePrototype, listTemplate));
            }
            return(result);
        }
        public ArrayInstance ToArray()
        {
            var result = Engine.Array.Construct();

            foreach (var roleDefinition in m_roleDefinitionCollection.OfType <SPRoleDefinition>())
            {
                ArrayInstance.Push(result, new SPRoleDefinitionInstance(Engine.Object.InstancePrototype, roleDefinition));
            }
            return(result);
        }
        public ArrayInstance GetActivityDetails()
        {
            var result = Engine.Array.Construct();

            foreach (var ad in m_workflow.GetActivityDetails())
            {
                ArrayInstance.Push(result, ad.ToString());
            }
            return(result);
        }
        public ArrayInstance ToArray()
        {
            var result = this.Engine.Array.Construct();

            foreach (var sheet in this.m_excelWorksheets)
            {
                ArrayInstance.Push(result, new ExcelWorksheetInstance(this.Engine.Object.InstancePrototype, sheet));
            }
            return(result);
        }
Ejemplo n.º 16
0
        public ArrayInstance GetTerms()
        {
            var result = Engine.Array.Construct();

            foreach (var term in m_termSet.Terms)
            {
                ArrayInstance.Push(result, new TermInstance(Engine.Object.InstancePrototype, term));
            }
            return(result);
        }
        public ArrayInstance ToArray()
        {
            var result = Engine.Array.Construct();

            foreach (var navigationNode in m_navigationNodeCollection.OfType <SPNavigationNode>())
            {
                ArrayInstance.Push(result, new SPNavigationNodeInstance(Engine.Object.InstancePrototype, navigationNode));
            }
            return(result);
        }
Ejemplo n.º 18
0
        public ArrayInstance GetTerms([DefaultParameterValue(0)] int pagingLimit)
        {
            var result = Engine.Array.Construct();

            foreach (var term in m_term.GetTerms(pagingLimit))
            {
                ArrayInstance.Push(result, new TermInstance(Engine.Object.InstancePrototype, term));
            }
            return(result);
        }
Ejemplo n.º 19
0
        public ArrayInstance GetLabels(int lcid)
        {
            var result = Engine.Array.Construct();

            foreach (var label in m_term.Labels)
            {
                ArrayInstance.Push(result, new TermLabelInstance(Engine.Object.InstancePrototype, label));
            }
            return(result);
        }
        public ArrayInstance ToArray()
        {
            var result = Engine.Array.Construct();

            foreach (SPWeb web in m_webCollection)
            {
                ArrayInstance.Push(result, new SPWebInstance(Engine, web));
            }
            return(result);
        }
Ejemplo n.º 21
0
        public ArrayInstance ToArray()
        {
            var result = Engine.Array.Construct();

            foreach (var serviceInstance in m_serviceInstanceDependencyCollection)
            {
                ArrayInstance.Push(result, new SPServiceInstanceInstance(Engine.Object.InstancePrototype, serviceInstance));
            }
            return(result);
        }
Ejemplo n.º 22
0
        public ArrayInstance ToArray()
        {
            var result = Engine.Array.Construct();

            foreach (var termSet in m_termSetCollection)
            {
                ArrayInstance.Push(result, new TermSetInstance(Engine.Object.InstancePrototype, termSet));
            }
            return(result);
        }
Ejemplo n.º 23
0
        public ArrayInstance GetFeatures()
        {
            var result = Engine.Array.Construct();

            foreach (var feature in m_webApplication.Features)
            {
                ArrayInstance.Push(result, new SPFeatureInstance(Engine.Object.InstancePrototype, feature));
            }
            return(result);
        }
Ejemplo n.º 24
0
        public ArrayInstance GetGroups()
        {
            var result = Engine.Array.Construct();

            foreach (var group in m_termStore.Groups)
            {
                ArrayInstance.Push(result, new TermGroupInstance(Engine.Object.InstancePrototype, group));
            }
            return(result);
        }
Ejemplo n.º 25
0
        public ArrayInstance ToArray()
        {
            var result = this.Engine.Array.Construct();

            foreach (SPFolder folder in this.m_folderCollection)
            {
                ArrayInstance.Push(result, new SPFolderInstance(this.Engine.Object.InstancePrototype, folder.ParentWeb.Site, folder.ParentWeb, folder));
            }
            return(result);
        }
Ejemplo n.º 26
0
        public ArrayInstance ToArray()
        {
            var result = this.Engine.Array.Construct();

            foreach (var item in m_recycleBinItemCollection.OfType <SPRecycleBinItem>())
            {
                ArrayInstance.Push(result, new SPRecycleBinItemInstance(this.Engine.Object.InstancePrototype, item));
            }
            return(result);
        }
Ejemplo n.º 27
0
        public ArrayInstance GetAllTermSets()
        {
            var result = Engine.Array.Construct();

            foreach (var exportObject in m_exportObjectCollection.OfType <SPExportObject>())
            {
                ArrayInstance.Push(result, new SPExportObjectInstance(Engine.Object.InstancePrototype, exportObject));
            }
            return(result);
        }
        public ArrayInstance ToArray()
        {
            var result = this.Engine.Array.Construct();

            foreach (var version in m_fileVersionCollection.OfType <SPFileVersion>())
            {
                ArrayInstance.Push(result, new SPFileVersionInstance(this.Engine.Object.InstancePrototype, version));
            }
            return(result);
        }
        public ArrayInstance ToArray()
        {
            var result = this.Engine.Array.Construct();

            foreach (var feature in m_featureCollection)
            {
                ArrayInstance.Push(result, new SPFeatureInstance(this.Engine.Object.InstancePrototype, feature));
            }
            return(result);
        }
        public ArrayInstance ToArray()
        {
            var result = Engine.Array.Construct();

            foreach (var user in m_userCollection.OfType <SPUser>())
            {
                ArrayInstance.Push(result, new SPUserInstance(Engine, user));
            }
            return(result);
        }