private SiteContents LoadSiteContents(string domain)
        {
            if (!SiteInfo.IsValidDomain(domain))
            {
                return(null);
            }

            var container = GetContentsBlobContainer();
            var blob      = container.GetBlockBlobReference(domain + _siteFileExt);

            if (!blob.Exists())
            {
                return(null);
            }

            try
            {
                string st = blob.DownloadText();
                return(SiteContents.DeserializeFromJson(st));
            }
            catch
            {
                return(null);
            }
        }
        private SiteContents LoadSiteContentsFromFile(string domain)
        {
            if (!SiteInfo.IsValidDomain(domain))
            {
                return(null);
            }

            string fileName = GetFullSiteContentsFileName(domain);

            if (!File.Exists(fileName))
            {
                return(null);
            }

            int retryCount = 3;

            do
            {
                try
                {
                    using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
                    {
                        using (var reader = new StreamReader(stream))
                        {
                            string st = reader.ReadToEnd();
                            return(SiteContents.DeserializeFromJson(st));
                        }
                    }
                }
                catch (IOException)
                {
                    retryCount--;

                    if (retryCount == 0)
                    {
                        return(null);
                    }

                    Thread.Sleep(2);
                }
                catch
                {
                    return(null);
                }
            }while (retryCount > 0);

            return(null);
        }