예제 #1
0
파일: Program.cs 프로젝트: dstepanov25/Suza
        private static void MissingImages()
        {
            var checkedImages  = d.ProductsImages.Where(t => t.ImageChecked).ToList();
            var internetAccess = new InternetAccess();
            var siteURL        = d.Settings.Where(t => t.SettingName == "URL").FirstOrDefault().SettingValue;
            var site           = (from s in d.Sites where s.SiteURL == siteURL select s).FirstOrDefault();
            var connection     = internetAccess.FtpConnect(site.FTPServer, 21, site.FTPUsername, site.FTPPass, true);

            connection.SetDirectory(site.ImagesPath);
            var files      = connection.GetDirectoryContents("*.jpeg", CachingFlags.None);
            var filesNames = files.Where(t => !t.Name.Contains("_med") && !t.Name.Contains("_sm")).Select(t => t.Name.Replace(".jpeg", "")).ToList();

            if (checkedImages.Count != filesNames.Count)
            {
                foreach (var file in filesNames)
                {
                    if (checkedImages.Where(t => t.ImageID.ToString() == file).FirstOrDefault() == null)
                    {
                        // удалить по ftp
                        try
                        {
                            connection.DeleteFile(file + ".jpeg");
                            connection.DeleteFile(file + "_med.jpeg");
                            connection.DeleteFile(file + "_sm.jpeg");
                        }
                        catch { }
                    }
                }
                files      = connection.GetDirectoryContents("*.jpeg", CachingFlags.None);
                filesNames = files.Select(t => t.Name.Replace(".jpeg", "")).ToList();
            }
            if (checkedImages.Count != filesNames.Count)
            {
                foreach (var image in checkedImages)
                {
                    if (!filesNames.Contains(image.ImageID.ToString()))
                    {
                        var originalImageName = homeFolder + image.ImageID.ToString();;
                        var ftpPath           = site.ImagesPath + "/" + image.ImageID.ToString();
                        try
                        {
                            connection.UploadFile(originalImageName + ".jpeg", ftpPath + ".jpeg", TransferType.Binary, CachingFlags.None);
                            if (site.ResizeImages && site.SmallBigSize != null)
                            {
                                connection.UploadFile(originalImageName + "_sm.jpeg", ftpPath + "_sm.jpeg", TransferType.Binary, CachingFlags.None);
                            }
                            if (site.ResizeImages && site.MedBigSize != null)
                            {
                                connection.UploadFile(originalImageName + "_med.jpeg", ftpPath + "_med.jpeg", TransferType.Binary, CachingFlags.None);
                            }
                        }
                        catch { }
                    }
                }
            }
            connection.Dispose();
            internetAccess.Dispose();
        }
예제 #2
0
파일: Program.cs 프로젝트: dstepanov25/Suza
        private static void MissingImages()
        {
            var checkedImages = d.ProductsImages.Where(t => t.ImageChecked).ToList();
            var internetAccess = new InternetAccess();
            var siteURL = d.Settings.Where(t => t.SettingName == "URL").FirstOrDefault().SettingValue;
            var site = (from s in d.Sites where s.SiteURL == siteURL select s).FirstOrDefault();
            var connection = internetAccess.FtpConnect(site.FTPServer, 21, site.FTPUsername, site.FTPPass, true);
            connection.SetDirectory(site.ImagesPath);
            var files = connection.GetDirectoryContents("*.jpeg", CachingFlags.None);
            var filesNames = files.Where(t => !t.Name.Contains("_med") && !t.Name.Contains("_sm")).Select(t => t.Name.Replace(".jpeg", "")).ToList();

            if (checkedImages.Count != filesNames.Count)
            {
                foreach (var file in filesNames)
                {
                    if (checkedImages.Where(t => t.ImageID.ToString() == file).FirstOrDefault() == null)
                    {
                        // удалить по ftp
                        try
                        {
                            connection.DeleteFile(file + ".jpeg");
                            connection.DeleteFile(file + "_med.jpeg");
                            connection.DeleteFile(file + "_sm.jpeg");
                        }
                        catch { }
                    }
                }
                files = connection.GetDirectoryContents("*.jpeg", CachingFlags.None);
                filesNames = files.Select(t => t.Name.Replace(".jpeg", "")).ToList();
            }
            if (checkedImages.Count != filesNames.Count)
            {
                foreach (var image in checkedImages)
                {
                    if (!filesNames.Contains(image.ImageID.ToString()))
                    {
                        var originalImageName = homeFolder + image.ImageID.ToString(); ;
                        var ftpPath = site.ImagesPath + "/" + image.ImageID.ToString();
                        try
                        {
                            connection.UploadFile(originalImageName + ".jpeg", ftpPath + ".jpeg", TransferType.Binary, CachingFlags.None);
                            if (site.ResizeImages && site.SmallBigSize != null)
                            {
                                connection.UploadFile(originalImageName + "_sm.jpeg", ftpPath + "_sm.jpeg", TransferType.Binary, CachingFlags.None);
                            }
                            if (site.ResizeImages && site.MedBigSize != null)
                            {
                                connection.UploadFile(originalImageName + "_med.jpeg", ftpPath + "_med.jpeg", TransferType.Binary, CachingFlags.None);
                            }
                        }
                        catch { }
                    }
                }
            }
            connection.Dispose();
            internetAccess.Dispose();
        }