예제 #1
0
        private SortedDictionary <long, CloudBlob> GetVerBlobs(CloudBlobContainer cloudBlobContainer, IEnumerable <IListBlobItem> blobItems)
        {
            SortedDictionary <long, CloudBlob> verBlobs = new SortedDictionary <long, CloudBlob>();

            foreach (IListBlobItem blobItem in blobItems)
            {
                var    blob = cloudBlobContainer.GetBlobReference(blobItem.Uri.ToString());
                string name = blob.Name;

                if (name.Contains(VersionPrefix))
                {
                    string version = name.Split(VersionPrefix.ToCharArray()).LastOrDefault();
                    if (!string.IsNullOrEmpty(version))
                    {
                        long versionNumber = 0;
                        if (long.TryParse(version.Replace(".", ""), out versionNumber))
                        {
                            verBlobs.Add(versionNumber, blob);
                        }
                    }
                }
            }

            return(verBlobs);
        }
예제 #2
0
        private void Parse(string str)
        {
            var match = Regex.Match(str, @"^([ab])?(\d+).(\d+)$");

            if (!match.Success)
            {
                throw new ArgumentException("Incorrect Version format");
            }

            Prefix = GetPrefixFromString(match.Groups[1].Value);
            Major  = int.Parse(match.Groups[2].Value);
            Minor  = int.Parse(match.Groups[3].Value);
        }
예제 #3
0
        public List <string> GetVersions(CloudBlobContainer cloudBlobContainer)
        {
            IEnumerable <IListBlobItem>        blobItems = cloudBlobContainer.ListBlobs();
            SortedDictionary <long, CloudBlob> verBlobs  = GetVerBlobs(cloudBlobContainer, blobItems);
            List <string> versions = new List <string>();

            foreach (var blob in verBlobs.Values)
            {
                if (blob.Name.Contains(VersionPrefix))
                {
                    versions.Add(blob.Name.Split(VersionPrefix.ToCharArray()).LastOrDefault());
                }
            }

            return(versions);
        }
예제 #4
0
 public RequiredCompilerVersionAttribute(int major, int minor, VersionPrefix prefix)
 {
     Major  = major;
     Minor  = minor;
     Prefix = prefix;
 }