예제 #1
0
        public static List <Photo> CopyAdPhotos(List <Photo> photos, int adId)
        {
            if (!photos.Any())
            {
                return(new List <Photo>());
            }
            foreach (var group in photos.GroupBy(p => p.GroupId).Select(g => g.ToList()).ToList())
            {
                var groupId = Guid.NewGuid();
                foreach (var photo in group)
                {
                    var oldFullPath = photo.FullPath.Replace("/", "\\");
                    if (!System.IO.File.Exists(oldFullPath))
                    {
                        continue;
                    }
                    photo.AdId = adId;
                    var directory = PhotosController.GetFileDirectoryForPhotos(photo);
                    if (!Directory.Exists(directory))
                    {
                        Directory.CreateDirectory(directory);
                    }
                    photo.GroupId = groupId;
                    string fileName = String.Empty;
                    #region Get unique fileName
                    while (true)
                    {
                        string _fileName = Guid.NewGuid().ToString().Replace("-", "").Remove(10) + ".jpg";
                        if (!System.IO.File.Exists(directory + _fileName))
                        {
                            fileName = _fileName;
                            break;
                        }
                    }

                    if (fileName == String.Empty)
                    {
                        LogsDAL.AddError("in PhotosController.SavePhoto(): filePathAndName = String.Empty");
                        //return false;
                    }
                    #endregion
                    photo.FileNameWithExtension = fileName;
                    System.IO.File.Copy(oldFullPath, photo.FullPath.Replace("/", "\\"));
                    photo.Added   = DateTime.Now.ToUniversalTime();
                    photo.Changed = photo.Added;
                    PhotosDAL.AddPhoto(photo);
                }
            }
            return(photos);
        }
예제 #2
0
        public static Photo SavePhoto(System.Drawing.Image photoImage, Photo photo)
        {
            var directory = GetFileDirectoryForPhotos(photo);

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

            /*Photo photo = new Photo();
             * photo.UserId = userId;
             * //photo.ImageType = "jpeg";
             * //photo.ModerateResult = moderateResult;
             * //photo.IsMain = setMain;
             * //photo.Width = photo.Width;
             * //photo.Height = photo.Height;
             * //photo.NearestWidth = nearestWidth;*/
            #region Get unique fileName
            string fileName = String.Empty;
            while (true)
            {
                string _fileName = Guid.NewGuid().ToString().Replace("-", "").Remove(10) + ".jpg";
                if (!System.IO.File.Exists(directory + _fileName))
                {
                    fileName = _fileName;
                    break;
                }
            }

            if (fileName == String.Empty)
            {
                LogsDAL.AddError("in PhotosController.SavePhoto(): filePathAndName = String.Empty");
                //return false;
            }
            #endregion
            SaveJPGWithCompressionSetting(photoImage, directory + fileName, 70L);
            photo.FileNameWithExtension = fileName;
            photo.Width  = photoImage.Width;
            photo.Height = photoImage.Height;
            photo.Id     = PhotosDAL.AddPhoto(photo);
            return(photo);
        }