Пример #1
0
        public void UpdateResourceProvidersList()
        {
            _allBaseResourceProvidersList.Clear();
            bool selected = false;
            List <ResourceProviderMetadata> resourceProviderMDs = new List <ResourceProviderMetadata>(
                GetAvailableBaseResourceProviders().Where(metadata =>
                                                          !metadata.TransientMedia &&
                                                          (metadata.ProviderSystemAffinity & SystemAffinity) != ResourceProviderMetadata.SystemAffinity.Undefined));

            resourceProviderMDs.Sort((a, b) => a.Name.CompareTo(b.Name));
            ResourceProviderMetadata choosenBaseResourceProvider = BaseResourceProvider;

            foreach (ResourceProviderMetadata metadata in resourceProviderMDs)
            {
                ListItem resourceProviderItem = new ListItem(Consts.KEY_NAME, metadata.Name);
                resourceProviderItem.AdditionalProperties[Consts.KEY_RESOURCE_PROVIDER_METADATA] = metadata;
                if ((choosenBaseResourceProvider != null && choosenBaseResourceProvider.ResourceProviderId == metadata.ResourceProviderId) ||
                    resourceProviderMDs.Count == 1 && !MultipleSources) /* pre-select single option only, if there are not multiple share proxies used */
                {
                    resourceProviderItem.Selected = true;
                    selected = true;
                }
                resourceProviderItem.SelectedProperty.Attach(OnResourceProviderItemSelectionChanged);
                _allBaseResourceProvidersList.Add(resourceProviderItem);
            }
            IsResourceProviderSelected = selected;
        }
Пример #2
0
        protected override ResourcePath ExpandResourcePathFromString(string pathStr)
        {
            ResourceProviderMetadata rpm = BaseResourceProvider;
            IBaseResourceProvider    rp  = GetResourceProvider(rpm.ResourceProviderId);

            return(rp.ExpandResourcePathFromString(pathStr));
        }
Пример #3
0
        public void UpdateResourceProvidersList()
        {
            _allBaseResourceProvidersList.Clear();
            bool selected = false;
            List <ResourceProviderMetadata> resourceProviderMDs = new List <ResourceProviderMetadata>(
                GetAvailableBaseResourceProviders().Where(metadata => !metadata.TransientMedia));

            resourceProviderMDs.Sort((a, b) => a.Name.CompareTo(b.Name));
            ResourceProviderMetadata choosenBaseResourceProvider = BaseResourceProvider;

            foreach (ResourceProviderMetadata metadata in resourceProviderMDs)
            {
                ListItem resourceProviderItem = new ListItem(Consts.KEY_NAME, metadata.Name);
                resourceProviderItem.AdditionalProperties[Consts.KEY_RESOURCE_PROVIDER_METADATA] = metadata;
                if ((choosenBaseResourceProvider != null && choosenBaseResourceProvider.ResourceProviderId == metadata.ResourceProviderId) ||
                    resourceProviderMDs.Count == 1)
                {
                    resourceProviderItem.Selected = true;
                    selected = true;
                }
                resourceProviderItem.SelectedProperty.Attach(OnResourceProviderItemSelectionChanged);
                _allBaseResourceProvidersList.Add(resourceProviderItem);
            }
            IsResourceProviderSelected = selected;
        }
        protected override object DoDeserializeValue(XmlReader reader, bool isSimpleValue)
        {
            reader.ReadStartElement(); // Read start of enclosing element
            ResourceProviderMetadata result = ResourceProviderMetadata.Deserialize(reader);

            reader.ReadEndElement(); // End of enclosing element
            return(result);
        }
        protected void UpdateSharesList_NoLock(ItemsList list, List <Share> shareDescriptors, ShareOrigin origin, bool selectFirstItem)
        {
            list.Clear();
            bool selectShare = selectFirstItem;

            shareDescriptors.Sort((a, b) => a.Name.CompareTo(b.Name));
            foreach (Share share in shareDescriptors)
            {
                ListItem shareItem = new ListItem(Consts.KEY_NAME, share.Name);
                shareItem.AdditionalProperties[Consts.KEY_SHARE] = share;
                try
                {
                    string path = origin == ShareOrigin.Local ?
                                  LocalShares.GetLocalResourcePathDisplayName(share.BaseResourcePath) :
                                  ServerShares.GetServerResourcePathDisplayName(share.BaseResourcePath);
                    if (string.IsNullOrEmpty(path))
                    {
                        // Error case: The path is invalid
                        path = LocalizationHelper.Translate(Consts.RES_INVALID_PATH, share.BaseResourcePath);
                    }
                    shareItem.SetLabel(Consts.KEY_PATH, path);
                    Guid?firstResourceProviderId = SharesProxy.GetBaseResourceProviderId(share.BaseResourcePath);
                    if (firstResourceProviderId.HasValue)
                    {
                        ResourceProviderMetadata firstResourceProviderMetadata = origin == ShareOrigin.Local ?
                                                                                 LocalShares.GetLocalResourceProviderMetadata(firstResourceProviderId.Value) :
                                                                                 ServerShares.GetServerResourceProviderMetadata(firstResourceProviderId.Value);
                        shareItem.AdditionalProperties[Consts.KEY_RESOURCE_PROVIDER_METADATA] = firstResourceProviderMetadata;
                    }
                    string categories = StringUtils.Join(", ", share.MediaCategories);
                    shareItem.SetLabel(Consts.KEY_MEDIA_CATEGORIES, categories);
                    Share shareCopy = share;
                    shareItem.Command = new MethodDelegateCommand(() => ShowShareInfo(shareCopy, origin));
                }
                catch (NotConnectedException)
                {
                    throw;
                }
                catch (Exception e)
                {
                    ServiceRegistration.Get <ILogger>().Warn("Problems building share item '{0}' (path '{1}')", e, share.Name, share.BaseResourcePath);
                }
                if (selectShare)
                {
                    selectShare        = false;
                    shareItem.Selected = true;
                }
                shareItem.SelectedProperty.Attach(OnShareItemSelectionChanged);
                lock (_syncObj)
                    list.Add(shareItem);
            }
            list.FireChange();
        }
Пример #6
0
        /// <summary>
        /// Updates the data for the resource provider path tree.
        /// </summary>
        public void UpdateResourceProviderPathTree()
        {
            ResourceProviderMetadata rpm = BaseResourceProvider;

            if (rpm == null)
            { // This happens when the WF-Manager navigates back to the overview screen - all properties have been cleared before
                _resourceProviderPathsTree.Clear();
                _resourceProviderPathsTree.FireChange();
                return;
            }
            RefreshResourceProviderPathList(_resourceProviderPathsTree, ResourcePath.BuildBaseProviderPath(rpm.ResourceProviderId, "/"));
            UpdateIsChoosenPathValid();
        }
Пример #7
0
 public NetworkNeighborhoodResourceProvider()
 {
     _metadata        = new ResourceProviderMetadata(NETWORK_NEIGHBORHOOD_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, false, true, DEFAULT_SYSTEM_AFFINITY);
     _browserService  = new NeighborhoodBrowserService();
     _settings        = new SettingsChangeWatcher <NetworkNeighborhoodResourceProviderSettings>();
     _registeredPaths = new ConcurrentBag <ResourcePath>();
     RegisterCredentials();
     _settings.SettingsChanged += (sender, args) =>
     {
         UnregisterCredentials();
         RegisterCredentials();
     };
 }
        protected override object DoDeserializeValue(XmlReader reader, bool isSimpleValue)
        {
            ICollection <ResourceProviderMetadata> result = new List <ResourceProviderMetadata>();

            if (SoapHelper.ReadEmptyStartElement(reader)) // Read start of enclosing element
            {
                return(result);
            }
            while (reader.NodeType != XmlNodeType.EndElement)
            {
                result.Add(ResourceProviderMetadata.Deserialize(reader));
            }
            reader.ReadEndElement(); // End of enclosing element
            return(result);
        }
 public void SelectResourceProviderAndContinue()
 {
     try
     {
         ResourceProviderMetadata rpm = _shareProxy.GetSelectedBaseResourceProvider();
         if (rpm == null)
         {
             // Error case: Should not happen
             return;
         }
         ResourceProviderMetadata oldResourceProvider = _shareProxy.BaseResourceProvider;
         if (oldResourceProvider == null ||
             oldResourceProvider.ResourceProviderId != rpm.ResourceProviderId)
         {
             _shareProxy.ClearAllConfiguredProperties();
         }
         _shareProxy.BaseResourceProvider = rpm;
         // Check if the choosen MP implements a known path navigation interface and go to that screen,
         // if supported
         IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>();
         if (_shareProxy.ResourceProviderSupportsResourceTreeNavigation)
         {
             workflowManager.NavigatePush(Consts.WF_STATE_ID_SHARE_EDIT_CHOOSE_PATH);
         }
         else // If needed, add other path navigation screens here
              // Fallback: Simple TextBox path editor screen
         {
             workflowManager.NavigatePush(Consts.WF_STATE_ID_SHARE_EDIT_EDIT_PATH);
         }
     }
     catch (NotConnectedException)
     {
         DisconnectedError();
     }
     catch (Exception e)
     {
         ErrorEditShare(e);
     }
 }
        internal IDictionary <string, ZipResourceProxy> _zipUsages = new Dictionary <string, ZipResourceProxy>(); // Keys to proxy objects

        #endregion

        #region Ctor

        public ZipResourceProvider()
        {
            _metadata = new ResourceProviderMetadata(ZIP_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, false, false);
        }
 public RawUrlResourceProvider()
 {
     _metadata = new ResourceProviderMetadata(RAW_URL_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, true, true);
 }
Пример #12
0
 public RemoteResourceProvider()
 {
     _metadata = new ResourceProviderMetadata(REMOTE_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, true);
 }
Пример #13
0
 public LocalFsResourceProvider()
 {
     _metadata = new ResourceProviderMetadata(LOCAL_FS_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, false);
     _instance = this;
 }
 public AudioCDResourceProvider()
 {
     _metadata = new ResourceProviderMetadata(AUDIO_CD_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, true, false);
 }
        protected override void DoSerializeValue(object value, bool forceSimpleValue, XmlWriter writer)
        {
            ResourceProviderMetadata rpm = (ResourceProviderMetadata)value;

            rpm.Serialize(writer);
        }
 public SlimTvResourceProvider()
 {
     _metadata = new ResourceProviderMetadata(SLIMTV_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, true, true);
 }
 public NetworkNeighborhoodResourceProvider()
 {
     _metadata       = new ResourceProviderMetadata(NETWORK_NEIGHBORHOOD_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, false, true, DEFAULT_SYSTEM_AFFINITY);
     _browserService = new NeighborhoodBrowserService();
 }
 public NetworkNeighborhoodResourceProvider()
 {
     _metadata = new ResourceProviderMetadata(NETWORK_NEIGHBORHOOD_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, false);
 }
Пример #19
0
 public VirtualResourceProvider()
 {
     _metadata = new ResourceProviderMetadata(VIRTUAL_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, true, false);
 }