Пример #1
0
        public ResourceTypeSetting GetResourceTypeConfiguration(string modelNamespace, string resourceTypeName)
        {
            Globals.TraceMessage(TraceEventType.Verbose, string.Empty, Properties.Messages.StartedFunctionMessage);
            #region Validating Parameters

            if (string.IsNullOrEmpty(modelNamespace) || string.IsNullOrWhiteSpace(modelNamespace) || string.IsNullOrEmpty(resourceTypeName) || string.IsNullOrWhiteSpace(resourceTypeName))
            {
                Globals.TraceMessage(TraceEventType.Verbose, string.Empty, Properties.Messages.NullEmptyStringMessage);
                return(null);
            }
            #endregion
            IEnumerable <ResourceType> resourceTypes = Utilities.GetResourceTypes(modelNamespace);
            if (resourceTypes == null || resourceTypes.Count() == 0)
            {
                Globals.TraceMessage(TraceEventType.Verbose, string.Empty, Properties.Messages.NullEmptyStringMessage);
                return(null);
            }
            ResourceType specificResourceType = (from ResourceType resourceType in resourceTypes
                                                 where resourceType.Name.Equals(resourceTypeName, StringComparison.OrdinalIgnoreCase)
                                                 select resourceType).FirstOrDefault();

            if (specificResourceType != null)
            {
                if (specificResourceType.ConfigurationXml != null && !string.IsNullOrWhiteSpace(specificResourceType.ConfigurationXml.ToString()))
                {
                    XmlSerializer xmlSerializer   = new XmlSerializer(typeof(ResourceTypeSetting));
                    XmlReader     configXmlReader = specificResourceType.ConfigurationXml.CreateReader();
                    if (xmlSerializer.CanDeserialize(configXmlReader))
                    {
                        ResourceTypeSetting resourceTypeSetting = (ResourceTypeSetting)xmlSerializer.Deserialize(configXmlReader);
                        specificResourceType.ValidateResourceTypeSetting(resourceTypeSetting);
                        Globals.TraceMessage(TraceEventType.Verbose, string.Empty, Properties.Messages.ConfigXmlCreation);
                        return(resourceTypeSetting);
                    }

                    Globals.TraceMessage(TraceEventType.Verbose, string.Empty, Properties.Messages.FinishedFunctionMessage);
                    return(specificResourceType.ToResourceTypeSetting());
                }

                Globals.TraceMessage(TraceEventType.Verbose, string.Empty, Properties.Messages.FinishedFunctionMessage);
                return(specificResourceType.ToResourceTypeSetting());
            }

            Globals.TraceMessage(TraceEventType.Verbose, string.Empty, Properties.Messages.NullEmptyStringMessage);
            return(null);
        }
Пример #2
0
        public void SetResourceTypeConfiguration(string modelNamespace, string resourceTypeName, ResourceTypeSetting resourceTypeConfig)
        {
            Globals.TraceMessage(TraceEventType.Verbose, string.Empty, Properties.Messages.StartedFunctionMessage);
            if (string.IsNullOrWhiteSpace(modelNamespace) || string.IsNullOrWhiteSpace(resourceTypeName))
            {
                throw new FaultException <ArgumentException>(new ArgumentException(Properties.Messages.ArgumentsNullOrEmpty), Properties.Messages.SpecifyNamespaceAndResourceName);
            }

            if (resourceTypeConfig != null && (resourceTypeConfig.Facets == null || resourceTypeConfig.Facets.Count() == 0))
            {
                throw new FaultException(new FaultReason(Properties.Messages.FacetsNullOrEmpty));
            }

            IEnumerable <ResourceType> resourceTypes = Utilities.GetResourceTypes(modelNamespace);

            if (resourceTypes != null)
            {
                ResourceType specificResourceType = resourceTypes.Where(res => res.Name.Equals(resourceTypeName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                if (specificResourceType != null)
                {
                    using (ZentityContext context = Utilities.CreateZentityContext())
                    {
                        if (resourceTypeConfig != null)
                        {
                            resourceTypeConfig.Name = resourceTypeName;
                            specificResourceType.ValidateResourceTypeSetting(resourceTypeConfig);
                            specificResourceType.ConfigurationXml = resourceTypeConfig.SerializeToXElement();
                            Globals.TraceMessage(TraceEventType.Verbose, string.Empty, Properties.Messages.FinishedFunctionMessage);
                        }
                        else
                        {
                            specificResourceType.ConfigurationXml = null;
                            Globals.TraceMessage(TraceEventType.Verbose, string.Empty, Properties.Messages.FinishedFunctionMessage);
                        }

                        specificResourceType.Update(context.StoreConnectionString);
                    }
                }
                else
                {
                    throw new FaultException <ArgumentException>(new ArgumentException(Properties.Messages.ResourceTypeNameParameter), Properties.Messages.NullRResourceTypeNameMessage);
                }
            }
            else
            {
                throw new FaultException <ArgumentException>(new ArgumentException(Properties.Messages.ModelNamespaceParameter), Properties.Messages.NullModelNamespaceMessage);
            }
        }