Beispiel #1
0
 public Volume.Volume GetVolume(string hash)
 {
     if (string.IsNullOrEmpty(hash))
     {
         return(null);
     }
     return(Volumes.FirstOrDefault(v => hash.StartsWith(v.VolumeId)));
 }
Beispiel #2
0
        /// <summary>
        /// Загружает исходный текст с переводом в кингу
        /// </summary>
        /// <param name="package"></param>
        /// <returns></returns>
        public async Task Upload(SCIPackage package)
        {
            await CreateContext();

            await ReadVolumes();

            var document = await GetDocumentAsync(_bookUrl);

            Console.WriteLine("Getting strings");
            var resources = package.GetTextResources();

            List <ResStrings> resStrings = new List <ResStrings>();

            foreach (var res in resources)
            {
                var en = res.GetStrings(false);
                if (en == null || en.Length == 0)
                {
                    continue;
                }
                if (!en.Any(s => s.Length > 0))
                {
                    continue;                             // Full empty resource
                }
                var tr = res.GetStrings(true);
                resStrings.Add(new ResStrings {
                    Resource = res, En = en, Tr = tr
                });
            }

            resStrings = resStrings.OrderBy(r => r.Resource.Type)
                         .ThenBy(r => r.Resource.Number)
                         .ToList();

            resStrings = resStrings.Take(10).ToList(); // DEBUG!!

            Console.WriteLine($"Create {resStrings.Count} volumes");
            foreach (var res in resStrings)
            {
                var vol = Volumes.FirstOrDefault(v => v.Name.Equals(res.Resource.FileName, StringComparison.OrdinalIgnoreCase));
                if (vol != null)
                {
                    res.Url = vol.URL;
                }
                else
                {
                    res.Url = await CreateVolume(document, res.Resource.FileName);
                }
            }

            var tasks = resStrings
                        .Select(r => UploadRes(r))
                        .ToArray();
            await Task.WhenAll(tasks);
        }
        public void AddToVolumes(string productName, int quantity)
        {
            Volume volume = Volumes.FirstOrDefault(v => v.ProductName.Equals(productName));

            if (volume == null)
            {
                volume = new Volume(productName, quantity);
                Volumes.Add(volume);
            }
            else
            {
                volume.TotalQuantity += quantity;
            }
        }
Beispiel #4
0
        /// <summary>
        /// Загружает исходный текст с переводом в кингу
        /// </summary>
        /// <param name="package"></param>
        /// <returns></returns>
        public async Task Upload(SCIPackage package, string resourceName)
        {
            await CreateContext();

            await ReadVolumes();

            var document = await GetDocumentAsync(_bookUrl);

            Console.WriteLine("Getting strings");
            var res = package.GetResouce(resourceName);

            List <ResStrings> resStrings = new List <ResStrings>();
            var en = res.GetStrings(false);

            if (en == null || en.Length == 0)
            {
                return;
            }
            if (!en.Any(s => s.Length > 0))
            {
                return;                             // Full empty resource
            }
            var tr  = res.GetStrings(true);
            var str = new ResStrings {
                Resource = res, En = en, Tr = tr
            };

            resStrings.Add(str);

            Console.WriteLine($"Create {resStrings.Count} volumes");
            var vol = Volumes.FirstOrDefault(v => v.Name.Equals(res.FileName, StringComparison.OrdinalIgnoreCase));

            if (vol != null)
            {
                str.Url = vol.URL;
            }
            else
            {
                str.Url = await CreateVolume(document, res.FileName);
            }

            var tasks = resStrings
                        .Select(r => UploadRes(r))
                        .ToArray();
            await Task.WhenAll(tasks);
        }
Beispiel #5
0
            private async Task GetAllVolumes()
            {
                const string query = @"
SELECT Caption,
       DeviceID,
       Description,
       FreeSpace,
       Name,
       Size,
       VolumeSerialNumber
  FROM Win32_LogicalDisk
 WHERE DriveType = 3"; //fixed disks

                using (var q = Wmi.Query(Name, query))
                {
                    foreach (var disk in await q.GetDynamicResult())
                    {
                        var id = $"{disk.DeviceID}";
                        var v  = Volumes.FirstOrDefault(x => x.Id == id);
                        if (v == null)
                        {
                            v = new Volume();
                            Volumes.Add(v);
                        }

                        v.Id          = $"{disk.DeviceID}";
                        v.Available   = disk.FreeSpace;
                        v.Caption     = disk.VolumeSerialNumber;
                        v.Description = disk.Name + " - " + disk.Description;
                        v.Name        = disk.Name;
                        v.NodeId      = Id;
                        v.Size        = disk.Size;
                        v.Type        = "Fixed Disk";
                        v.Status      = NodeStatus.Active;
                        v.Used        = v.Size - v.Available;
                        if (v.Size > 0)
                        {
                            v.PercentUsed = (float)(100 * v.Used / v.Size);
                        }
                    }
                }
            }
Beispiel #6
0
 public Volume GetVolume(string id) => Volumes.FirstOrDefault(v => v.Id == id);