Example #1
0
        public override void Save(string directoryName = null, bool overwrite = false)
        {
            if (Entity == null)
            {
                return;
            }
            if (Entity.IsQueryable)
            {
                base.Save(directoryName, overwrite);
            }
            var currentDirectory = directoryName ?? AssemblyPath;
            var area             = Assembly;
            var index            = Assembly.LastIndexOf('.');

            if (index != -1)
            {
                area = Assembly.Substring(index + 1);
            }
            directoryName = Path.Combine(currentDirectory, "Areas");
            var @namespace = Assembly;

            if (Directory.Exists(directoryName))
            {
                directoryName = Path.Combine(directoryName, area);
                @namespace    = $"{@namespace}.Areas.{area}.Pages.Backend";
            }
            else
            {
                directoryName = currentDirectory;
                @namespace    = $"{@namespace}.Pages.Backend";
            }
            directoryName = Path.Combine(directoryName, $"Pages/Backend{DirectoryName}");
            if (!Directory.Exists(directoryName))
            {
                Directory.CreateDirectory(directoryName);
            }
            @namespace += DirectoryName.Replace('/', '.');

            var path = Path.Combine(directoryName, "Index.cshtml");

            SaveIndex(path, @namespace, area, overwrite);
            path = Path.Combine(directoryName, "Edit.cshtml");
            SaveEdit(path, @namespace, overwrite);
        }
        public async Task DownloadAsync(string AlbumUrl)
        {
            // Extract album hash from URL.
            string[] AlbumUrlSplit = AlbumUrl.Split('/');
            string   AlbumId       = AlbumUrlSplit[AlbumUrlSplit.Length - 1];

            HttpResponseMessage AlbumJsonRequest = await Client.GetAsync(String.Concat("https://api.imgur.com/3/album/", AlbumId));

            if (!AlbumJsonRequest.IsSuccessStatusCode)
            {
                Console.WriteLine("HTTP error.");
                Environment.Exit(1);
                //throw new Exception();
            }

            string AlbumJson = await AlbumJsonRequest.Content.ReadAsStringAsync();

            dynamic AlbumData = JObject.Parse(AlbumJson);

            string DirectoryName;

            try {
                DirectoryName = AlbumData.data.title;
                foreach (char c in System.IO.Path.GetInvalidFileNameChars())
                {
                    DirectoryName = DirectoryName.Replace(c, '_');
                }
            } catch {
                DirectoryName = AlbumId;
            }

            Directory.CreateDirectory(DirectoryName);
            Directory.SetCurrentDirectory(DirectoryName);

            Console.WriteLine("Album title: " + AlbumData.data.title);
            Console.WriteLine("Downloading...");

            int i = 0;

            foreach (dynamic d in AlbumData.data.images)
            {
                i++;

                String ImageUrl = d.link;

                Console.WriteLine("Downloading " + ImageUrl);

                HttpResponseMessage ImageDownload = await Client.GetAsync(ImageUrl);

                if (!AlbumJsonRequest.IsSuccessStatusCode)
                {
                    Console.WriteLine("HTTP error.");
                    Environment.Exit(1);
                    //throw new Exception();
                }

                Stream ImageData = await ImageDownload.Content.ReadAsStreamAsync();

                string[] ImageUrlSplit  = ImageUrl.Split('.');
                string   ImageExtension = ImageUrlSplit[ImageUrlSplit.Length - 1];

                StreamWriter WriteImage = new StreamWriter(String.Format("{0:000}.{1}", i, ImageExtension));
                ImageData.CopyTo(WriteImage.BaseStream);
            }

            Directory.SetCurrentDirectory("..");
        }