예제 #1
0
        private static String GetNameToLookup(string entityName)
        {
            var application = MetadataProvider.Applications().FirstOrDefault(a => a.Entity == entityName);

            if (application == null)
            {
                return(MetadataProvider.Entity(entityName).Name);
            }
            return(application.ApplicationName);
        }
예제 #2
0
        public static IEnumerable <CompleteApplicationMetadataDefinition> Applications([NotNull] this InMemoryUser user, ClientPlatform platform)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            return(from application in MetadataProvider.Applications(platform)
                   where user.IsAllowedOnApplication(application)
                   select application);
        }
예제 #3
0
        public MobileMetadataDownloadResponseDefinition DownloadMetadatas()
        {
            var user             = SecurityFacade.CurrentUser();
            var metadatas        = MetadataProvider.Applications(ClientPlatform.Mobile);
            var securedMetadatas = metadatas.Select(metadata => metadata.CloneSecuring(user)).ToList();
            var securedMenu      = user.Menu(ClientPlatform.Mobile);

            var response = new MobileMetadataDownloadResponseDefinition {
                MetadatasJSON = JsonConvert.SerializeObject(securedMetadatas, Newtonsoft.Json.Formatting.None, _jsonSerializerSettings),
                MenuJson      = JsonConvert.SerializeObject(securedMenu, Newtonsoft.Json.Formatting.None, _jsonSerializerSettings)
            };

            return(response);
        }
        public void HandleEvent(ApplicationStartedEvent eventToDispatch)
        {
            var           before       = new Stopwatch();
            var           applications = MetadataProvider.Applications();
            var           completeApplicationMetadataDefinitions = applications as CompleteApplicationMetadataDefinition[] ?? applications.ToArray();
            ISet <String> namesToRegister = new HashedSet <string>();

            AddAllApplicationsAndUsedEntities(namesToRegister, completeApplicationMetadataDefinitions);

            foreach (var name in namesToRegister)
            {
                _facade.Register(name, "", null, false);
            }
            _log.Info(LoggingUtil.BaseDurationMessage("finished registering whereclauses in {0}", before));
        }
예제 #5
0
        public void JsonEntegra()
        {
            var user             = SecurityFacade.CurrentUser();
            var metadatas        = MetadataProvider.Applications(ClientPlatform.Mobile);
            var securedMetadatas = metadatas.Select(metadata => MobileCompleteApplicationMetadata.CloneSecuring(metadata, user)).ToList();
            var workorder        = securedMetadatas.First(f => f.Name == "workorder");

            Assert.AreEqual(2, workorder.Schemas.Count);
            var settings = new JsonSerializerSettings();

            settings.TypeNameHandling = TypeNameHandling.Objects;
            var json = JsonConvert.SerializeObject(securedMetadatas, Formatting.Indented);

            Debug.Write(json);
            //            json = json.Replace("softWrench.sW4.Metadata.Applications.Schema.ApplicationSchema, softWrench.sW4", "" + typeof(TestAppSchema).AssemblyQualifiedName);
            //            Debug.Write(json);
            //            var deserializedMetadatas = JsonConvert.DeserializeObject<IEnumerable<MobileCompleteApplicationMetadata>>(json);
            //            Assert.IsTrue(deserializedMetadatas.First().Schemas.First().Value is TestAppSchema);
        }
 private static void AddAllApplicationsAndUsedEntities(ISet <string> namesToRegister,
                                                       CompleteApplicationMetadataDefinition[] completeApplicationMetadataDefinitions)
 {
     foreach (var application in MetadataProvider.Applications())
     {
         namesToRegister.Add(application.ApplicationName);
         foreach (var schema in application.Schemas())
         {
             foreach (var association in schema.Value.Associations)
             {
                 var entityName             = association.EntityAssociation.To;
                 var associationApplication =
                     completeApplicationMetadataDefinitions.FirstOrDefault(a => a.Entity == entityName);
                 var toAdd = associationApplication == null ? association.EntityAssociation.To : associationApplication.ApplicationName;
                 namesToRegister.Add(toAdd);
             }
         }
     }
 }
        private static IEnumerable <IApplicationAttributeDisplayable> InverseFKsFields(ApplicationSchemaDefinition thisSchema)
        {
            var resultList   = new List <IApplicationAttributeDisplayable>();
            var applications = MetadataProvider.Applications();

            if (MetadataProvider.InternalCache == null)
            {
                MetadataProvider.InternalCache = new MetadataProviderInternalCache();
            }

            var cache = MetadataProvider.InternalCache;

            var relationshipName = EntityUtil.GetRelationshipName(thisSchema.ApplicationName);

            if (!cache.RelationshipsByNameCache.ContainsKey(relationshipName))
            {
                return(resultList);
            }

            var relationships = MetadataProvider.InternalCache.RelationshipsByNameCache[relationshipName];

            foreach (var association in relationships)
            {
                var entityAssociation = association.EntityAssociation;
                foreach (var attribute in entityAssociation.Attributes)
                {
                    if (attribute.To != null)
                    {
                        resultList.Add(ApplicationFieldDefinition.HiddenInstance(thisSchema.ApplicationName,
                                                                                 attribute.To));
                    }
                }
            }


            return(resultList);
        }