Esempio n. 1
0
        protected override async Task <int> OnExecuteAsync(CommandLineApplication app)
        {
            if (TemplateName.IndexOf('/') <= 0 || TemplateName.EndsWith('/'))
            {
                Console.WriteLine("Invalid TemplateName!Please Enter As Format aspnetboilerplate/[email protected] ");
            }

            if (!Mpa && string.IsNullOrWhiteSpace(SpaType))
            {
                SpaType = Prompt.GetString(SpaTypeDesc, defaultValue: "vue");
                SpaType = SpaType.ToLower();
                if ("vue,ng,react".IndexOf(SpaType) == -1)
                {
                    SpaType = "vue";
                }
            }

            Console.WriteLine($"TemplateName\t:{TemplateName}");
            Console.WriteLine($"PlaceHolder\t:{PlaceHolder}");
            Console.WriteLine($"ProjectName\t:{ProjectName}");
            Console.WriteLine($"MPA\t\t:{Mpa}");
            Console.WriteLine($"SpaType\t\t:{SpaType}");
            Console.WriteLine($"RenameBackup\t:{RenameBackup}");

            //set project folder
            var projectFolder = Path.Combine(Directory.GetCurrentDirectory(), ProjectName);

            if (!Directory.Exists(projectFolder))
            {
                Directory.CreateDirectory(projectFolder);
            }

            //Fetch Template Zip
            Console.WriteLine($"Fetching Project Template From Github.com/{TemplateName}...");

            var filePath = Path.Combine(projectFolder, $"{ProjectName}.zip");

            var tNames   = TemplateName.Split(new char[] { '/', '@' });
            var userName = string.Empty;
            var repoName = string.Empty;
            var tagName  = "latest";

            if (tNames.Length > 1)
            {
                userName = tNames[0];
                repoName = tNames[1];
            }

            if (tNames.Length > 2)
            {
                tagName = tNames[2];
            }

            await FetchTemplateZipFile(userName, repoName, tagName, filePath);

            //Extract Zip File
            Console.WriteLine($"Extracting Project Template Zip:{filePath}...");
            Console.WriteLine($"Extracting To:{projectFolder}...");
            ExtractZipFile(filePath, projectFolder, repoName);

            //Folders To Rename
            Console.WriteLine("Cleaning Sub Dirs in Project Template Folder...");
            var excludeFolders = new List <string> {
                "./vue", "./angular", "./reactjs"
            };

            if (!Mpa)
            {
                excludeFolders.Add($"./aspnet-core/src/{PlaceHolder}.Web.Mvc");
                //TODO@personball remove web.mvc entry in vs solution file(sln).
                switch (SpaType.ToLower())
                {
                case "ng":
                    excludeFolders.Remove("./angular");
                    break;

                case "react":
                    excludeFolders.Remove("./reactjs");
                    break;

                case "vue":
                default:
                    excludeFolders.Remove("./vue");
                    break;
                }
            }

            //Delete ExcludeFolders
            foreach (var excludeFolder in excludeFolders)
            {
                var directoryToDel = Path.Combine(projectFolder, excludeFolder);
                if (Directory.Exists(directoryToDel))
                {
                    Console.WriteLine($"ExcludeFolders Delete:{directoryToDel}");
                    Directory.Delete(directoryToDel, true);
                }
            }

            //Rename Folder
            var companyNamePlaceHolder = PlaceHolder.Split('.')[0];
            var projectNamePlaceHolder = PlaceHolder.Split('.')[1];

            var newNames       = ProjectName.Split('.');
            var newCompanyName = string.Empty;
            var newProjectName = ProjectName;

            if (newNames.Length > 1)
            {
                newCompanyName = newNames[0];
                newProjectName = newNames[1];
            }
            Console.WriteLine($"Renaming {PlaceHolder} to {newCompanyName}{(newNames.Length > 1 ? "." : "")}{newProjectName}...");
            var slnRenamer = new SolutionRenamer(projectFolder, companyNamePlaceHolder, projectNamePlaceHolder, newCompanyName, newProjectName)
            {
                CreateBackup = RenameBackup
            };

            slnRenamer.Run();

            //Delete Template Zip
            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }

            Console.WriteLine("Init Completed!");
            return(1);
        }
Esempio n. 2
0
        public async void CreatePhoto()
        {
            await Task.Run(() =>
            {
                List <Dictionary <string, PhotoCreatorLogic> > valuePairs = new List <Dictionary <string, PhotoCreatorLogic> >();
                int tempPos = 0;
                while (IsWorking || IsPrintAll)
                {
                    List <List <string> > files_all = new List <List <string> >();
                    List <List <string> > files_two = new List <List <string> >();
                    lock (locker)
                    {
                        foreach (var user in UsersInfo)
                        {
                            var res = Directory.GetFiles($@"Photos\{user["id"]}\").ToList();
                            if (res.Count() >= 2)
                            {
                                files_two.Add(res);
                                res.Add(user["id"]);
                            }
                            else if (res.Count() > 0)
                            {
                                files_all.Add(res);
                                res.Add(user["id"]);
                            }
                        }
                    }

                    foreach (var files in files_two)
                    {
                        files[0] = files[0].Remove(0, 7);
                        files[1] = files[1].Remove(0, 7);
                        PhotoCreatorLogic creatorLogic = new PhotoCreatorLogic();

                        if (TemplateName != null)
                        {
                            string[] splitted         = TemplateName.Split('\\');
                            TemplateName              = splitted[splitted.Length - 1];
                            creatorLogic.TemplateName = TemplateName;
                        }
                        if (LogoName != null)
                        {
                            string[] splitted     = LogoName.Split('\\');
                            LogoName              = splitted[splitted.Length - 1];
                            creatorLogic.LogoName = LogoName;
                        }

                        if (Hashtag_1.Length > 0)
                        {
                            creatorLogic.HashtagforDrawing1 = "#" + Hashtag_1;
                        }
                        if (Hashtag_2.Length > 0)
                        {
                            creatorLogic.HashtagforDrawing2 = "#" + Hashtag_2;
                        }

                        creatorLogic.Username = files[files.Count - 1];

                        var imgRs1 = creatorLogic.ResizeImage(640, Environment.CurrentDirectory + @"\Photos\" + files[0]);
                        var imgRs2 = creatorLogic.ResizeImage(640, Environment.CurrentDirectory + @"\Photos\" + files[1]);

                        string oldFile0 = files[0];
                        string oldFile1 = files[1];

                        files[0] = oldFile0.Replace(".jpg", "lp.jpg");
                        files[1] = oldFile1.Replace(".jpg", "lp.jpg");

                        imgRs1.Save(Environment.CurrentDirectory + @"\Photos\" + files[0]); imgRs1.Dispose();
                        imgRs2.Save(Environment.CurrentDirectory + @"\Photos\" + files[1]); imgRs2.Dispose();

                        File.Delete(@"Photos\" + oldFile0); File.Delete(@"Photos\" + oldFile1);

                        string photoName = creatorLogic.CreatePhoto(files[0]);
                        creatorLogic.AddPhoto(photoName, files[1]);
                        creatorLogic.AddLogo(photoName);

                        File.Delete(@"Photos\" + files[0]);
                        File.Delete(@"Photos\" + files[1]);

                        var img             = creatorLogic.ResizeImage(610, photoName);
                        string newPhotoName = photoName.Replace(".jpg", "sp.jpg");
                        img.Save(newPhotoName);
                        img.Dispose();
                        File.Delete(photoName);

                        PrintCl print = new PrintCl(Environment.CurrentDirectory + "\\" + newPhotoName);
                        try { print.PrintImage(); SuccessPrint++; }
                        catch (Exception ex)
                        { Debug.WriteLine(ex.Message + "\n" + ex.StackTrace); UnsuccessPrints++; }
                        File.Delete(newPhotoName);
                    }

                    if (tempPos == 26 || IsPrintAll)
                    {
                        WaitingPrint = files_all.Count;
                        foreach (var files in files_all)
                        {
                            var strs = files[0].Split('\\');
                            var res  = Directory.GetFiles(Environment.CurrentDirectory + @"\Photos\" + $@"{strs[strs.Count() - 2]}");
                            if (res.Count() % 2 == 1)
                            {
                                files[0] = files[0].Remove(0, 7);
                                PhotoCreatorLogic creatorLogic = new PhotoCreatorLogic();

                                if (TemplateName != null)
                                {
                                    string[] splitted         = TemplateName.Split('\\');
                                    TemplateName              = splitted[splitted.Length - 1];
                                    creatorLogic.TemplateName = TemplateName;
                                }
                                if (LogoName != null)
                                {
                                    string[] splitted     = LogoName.Split('\\');
                                    LogoName              = splitted[splitted.Length - 1];
                                    creatorLogic.LogoName = LogoName;
                                }

                                if (Hashtag_1.Length > 0)
                                {
                                    creatorLogic.HashtagforDrawing1 = "#" + Hashtag_1;
                                }
                                if (Hashtag_2.Length > 0)
                                {
                                    creatorLogic.HashtagforDrawing2 = "#" + Hashtag_2;
                                }

                                creatorLogic.Username = files[files.Count - 1];

                                var imgRs1 = creatorLogic.ResizeImage(640, Environment.CurrentDirectory + @"\Photos\" + files[0]);

                                string oldFile0 = files[0];

                                files[0] = oldFile0.Replace(".jpg", "lp.jpg");

                                imgRs1.Save(Environment.CurrentDirectory + @"\Photos\" + files[0]); imgRs1.Dispose();

                                File.Delete(@"Photos\" + oldFile0);

                                string photoName = creatorLogic.CreatePhoto(files[0]);
                                creatorLogic.AddLogo(photoName);

                                File.Delete(@"Photos\" + files[0]);

                                var img             = creatorLogic.ResizeImage(610, photoName);
                                string newPhotoName = photoName.Replace(".jpg", "sp.jpg");
                                img.Save(newPhotoName);
                                img.Dispose();
                                File.Delete(photoName);

                                PrintCl print = new PrintCl(Environment.CurrentDirectory + "\\" + newPhotoName);
                                try { print.PrintImage(); SuccessPrint++; }
                                catch (Exception ex)
                                { Debug.WriteLine(ex.Message + "\n" + ex.StackTrace); UnsuccessPrints++; }
                                File.Delete(newPhotoName);
                            }
                            WaitingPrint--;
                        }
                        tempPos = -1;
                    }
                    IsPrintAll = false;
                    tempPos++;
                    Thread.Sleep(30000);
                }
            });
        }