Exemple #1
0
        public static XElement MakeConfigResourceGroup(DfsClient dfsClient, Uri dfsDirectory,
                                                       XDocument config, string configName, ILogger logger = null)
        {
            dfsClient.EnsureDirectory(dfsDirectory, false);

            XElement resourceElement = MakeConfigResource(dfsClient, dfsDirectory, config, configName, logger);

            XElement groupElement = MakeDfsResourceGroupElement(dfsClient, dfsDirectory, false);
            groupElement.Add(resourceElement);

            return groupElement;
        }
Exemple #2
0
        public static XElement MakeResourceGroup(DfsClient dfsClient, Uri dfsDirectory,
                                                 bool isPublic, IEnumerable<string> localFiles,
                                                 ILogger logger = null)
        {
            ConsoleLogger.EnsureLogger(ref logger);

            dfsClient.EnsureDirectory(dfsDirectory, isPublic);

            XElement groupElement = MakeDfsResourceGroupElement(dfsClient, dfsDirectory, isPublic);

            if (dfsClient.IsThreadSafe)
            {
                List<Task<XElement>> waiters = new List<Task<XElement>>();
                foreach (string filePath in localFiles)
                {
                    Task<XElement> waiter = Task.Run(() => MakeDfsResourceFromFile(filePath, dfsClient, dfsDirectory, logger));
                    waiters.Add(waiter);
                }

                try
                {
                    Task.WaitAll(waiters.ToArray());
                }
                catch (Exception e)
                {
                    throw new ApplicationException("Dfs resource make failed", e);
                }

                foreach (Task<XElement> t in waiters)
                {
                    groupElement.Add(t.Result);
                }
            }
            else
            {
                try
                {
                    foreach (string filePath in localFiles)
                    {
                        groupElement.Add(MakeDfsResourceFromFile(filePath, dfsClient, dfsDirectory, logger));
                    }
                }
                catch (Exception e)
                {
                    throw new ApplicationException("Dfs resource make failed", e);
                }
            }

            return groupElement;
        }