Пример #1
0
 public IndexModel(ILogData logData, ISystemUtility systemUtility) : base(logData, systemUtility)
 {
 }
Пример #2
0
        static void Main(string[] args)
        {
            try
            {
                #region IOC
                _container       = ConfigureStructureMap();
                _settingsUtility = _container.GetInstance <ISettingsUtility>();
                var commandLineUtility = _container.GetInstance <ICommandLineUtility>();
                _listingWrapper           = _container.GetInstance <IListingWrapper>();
                _illustratorActionWrapper = _container.GetInstance <IIllustratorActionWrapper>();
                _systemUtility            = _container.GetInstance <ISystemUtility>();

                #endregion

                var listItArgs = commandLineUtility.ParseCommandLineArguments(args);

                #region File System Exception Handling
                if (listItArgs.WorkingDirectory.IsNullOrEmpty())
                {
                    throw new EtsyListItException("Working directory can not be empty.");
                }

                if (listItArgs.OutputDirectory.IsNullOrEmpty())
                {
                    throw new EtsyListItException("Output directory can not be empty.");
                }

                var baseFiles = Directory.GetFiles(listItArgs.WorkingDirectory).Where(x => x.Contains(".ai")).ToList();

                if (!baseFiles.Any())
                {
                    throw new EtsyListItException("There are no files to list!");
                }
                #endregion

                foreach (var baseFile in baseFiles)
                {
                    var tempDirectoryPath = Path.Combine(listItArgs.WorkingDirectory, Path.GetFileNameWithoutExtension(baseFile));
                    Directory.CreateDirectory(tempDirectoryPath);

                    try
                    {
                        var artboardCount = _illustratorActionWrapper.CountArtboards(baseFile);

                        var zipFiles   = new List <string>();
                        var watermarks = new List <string>();

                        if (artboardCount > 1)
                        {
                            zipFiles   = ExportMultipleArtboards(tempDirectoryPath, baseFile);
                            watermarks = WatermarkMultipleArtboards(artboardCount, baseFile, tempDirectoryPath,
                                                                    listItArgs.WatermarkFile);
                        }
                        else
                        {
                            _illustratorActionWrapper.ExportAll(baseFile, tempDirectoryPath);
                            watermarks.Add(_illustratorActionWrapper.SaveFileWithWatermark(listItArgs.WatermarkFile,
                                                                                           baseFile,
                                                                                           listItArgs.WorkingDirectory));
                            zipFiles.Add(_systemUtility.CreateZipFileFromDirectory(baseFile, tempDirectoryPath));
                        }


                        bool.TryParse(listItArgs.AddToEtsy, out bool addToEtsy);

                        #region Etsy Export

                        if (addToEtsy)
                        {
                            Console.Write("Enter custom title: ");
                            var customTitle = Console.ReadLine();
                            Console.Write("Enter price: ");
                            var price = Console.ReadLine();
                            Console.Write("Enter tags: ");
                            var tags = Console.ReadLine();

                            var authToken = GetAuthToken(listItArgs);

                            if (!authToken.IsValidEtsyToken())
                            {
                                throw new EtsyListItException(
                                          "Invalid AuthToken.  Please use the correct Verifier key obtained from Etsy to generate your permanent token credentials.");
                            }

                            var listing = PopulateGraphicListing(watermarks, zipFiles, listItArgs, customTitle, price, tags);

                            listing = _listingWrapper.CreateDigitalListingWithImages(listing, authToken);
                            bool.TryParse(listItArgs.PublishListing, out bool publish);
                            if (publish)
                            {
                                listing.State = "active";
                                _listingWrapper.UpdateListing(listing, authToken);
                            }

                            Console.WriteLine($"Listing created. New listing ID: {listing.ID}");
                            Directory.Delete(tempDirectoryPath, true);
                            File.Move(baseFile, Path.Combine(listItArgs.OutputDirectory, Path.GetFileName(baseFile)));
                            foreach (var watermark in watermarks)
                            {
                                File.Delete(watermark);
                            }
                        }
                        else
                        {
                            Console.WriteLine("Add listing to Etsy feature turned OFF.  Use command line arg -add true to turn on.");
                        }
                        #endregion

                        Console.Write("Press any key to end.");
                        Console.ReadLine();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        Directory.Delete(tempDirectoryPath, true);
                        throw;
                    }
                }
            }
            catch (Exception ex)

            {
                Console.WriteLine(ex.Message);
                Console.Write("Type any key to quit.");
                Console.ReadLine();
            }
        }
Пример #3
0
 public BaseModel(ILogData logData, ISystemUtility systemUtility)
 {
     _logData       = logData;
     _systemUtility = systemUtility;
 }
Пример #4
0
 public ErrorModel(ILogData logData, ISystemUtility systemUtility) : base(logData, systemUtility)
 {
 }