Пример #1
0
        public void AddCloud(AvailableCloud selectedItem)
        {
            var name    = selectedItem.Name;
            var letters = VirtualDriveWrapper.GetFreeDriveLettes();

            if (letters.Count == 0)
            {
                throw new InvalidOperationException("No free letters");
            }

            if (Clouds.Any(c => c.CloudInfo.Name == name))
            {
                int i = 1;
                while (Clouds.Any(c => c.CloudInfo.Name == name + " " + i))
                {
                    i++;
                }

                name = name + " " + i;
            }

            var info = new CloudInfo
            {
                Id               = Guid.NewGuid().ToString(),
                Name             = name,
                ClassName        = selectedItem.ClassName,
                AssemblyFileName = selectedItem.AssemblyFileName,
                DriveLetter      = letters[0]
            };
            var mount = new CloudMount(info, this);

            Clouds.Add(mount);
            SaveClouds();
        }