Пример #1
0
        public static void Backup(Image img)
        {
            Image  newImage = null;
            string newUrl   = File.PreventNameClash(img.GetFileURL()).Replace(Site.MapPath("~/").Replace(@"\", "/"), "~/");
            string newName  = File.GetFileName(newUrl).Split('.').FirstOrDefault();

            newImage = GetImage(img.Name);
            if (newImage != null)
            {
                newImage.GetResizes().ForEach((imgT) =>
                {
                    Backup(imgT);
                });
                newImage.Active   = false;
                newImage.BackupOf = newImage.ID + 0;
                newImage.ID       = 0;
                newImage.Name     = newName;
                newImage.URL      = newImage.GetURL();
                System.IO.File.Copy(Site.MapPath(img.GetFileURL()), Site.MapPath(newUrl));
                System.IO.File.Copy(Site.MapPath(img.GetThumbUrl()), Site.MapPath(newImage.GetThumbUrl()));
                using (ImgRDataContext db = new ImgRDataContext())
                {
                    var query = (from pp in db.tbl_Images where pp.Name.Equals(img.Name) select pp).FirstOrDefault();
                    if (query != null)
                    {
                        query.Name     = newImage.Name;
                        query.URL      = newImage.URL;
                        query.BackupOf = img.ID;
                        query.Active   = false;
                    }
                    db.SubmitChanges();
                }
            }
        }
Пример #2
0
 public static void Edit(Device dv)
 {
     if (Exists(dv))
     {
         using (ImgRDataContext db = new ImgRDataContext())
         {
             var query = (from pp in db.tbl_ImageDevices where pp.ID.Equals(dv.ID) || pp.ShortName.Equals(dv.ShortName) select pp).FirstOrDefault();
             if (query != null)
             {
                 query.Width       = dv.Width;
                 query.Height      = dv.Height;
                 query.UserAgent   = dv.UserAgent;
                 query.Orientation = Convert.ToInt32(dv.Orientation);
                 query.Name        = dv.Name;
                 query.IsDefault   = dv.IsDefault;
                 if (query.IsDefault)
                 {
                     removeAllDefault();
                 }
             }
             db.SubmitChanges();
         }
         for (int i = 0; i < Devices.Count; i++)
         {
             var device = Devices[i];
             if (device.ID == dv.ID || device.ShortName.Equals(dv.ShortName))
             {
                 device = Map(dv.Map());
             }
         }
     }
 }
Пример #3
0
 public static List <string> GetCategories()
 {
     using (ImgRDataContext db = new ImgRDataContext())
     {
         return((from pp in db.tbl_Images select pp.Category).Distinct().OrderBy((str) => str).ToList());
     }
 }
Пример #4
0
 private static bool NameExists(string name)
 {
     using (ImgRDataContext db = new ImgRDataContext())
     {
         return((from pp in db.tbl_Images where pp.Name.Equals(name) select pp.Name).Count() > 0);
     }
 }
Пример #5
0
 public static bool Exists(Device dv)
 {
     using (ImgRDataContext db = new ImgRDataContext())
     {
         return((from pp in db.tbl_ImageDevices where pp.ID.Equals(dv.ID) || pp.ShortName.Equals(dv.ShortName) || pp.Height.Equals(dv.Height) && pp.Width.Equals(dv.Width) select pp).Count() > 0 ||
                (from pp in Devices where pp.Height.Equals(dv.Height) && pp.Width.Equals(dv.Width) select pp).Count() > 0);
     }
 }
Пример #6
0
 private static long AddToDatabase(Image img)
 {
     using (ImgRDataContext db = new ImgRDataContext())
     {
         db.tbl_Images.InsertOnSubmit(Image.Map(img));
         db.SubmitChanges();
     }
     return(GetImage(img.Name).ID);
 }
Пример #7
0
        public static void Add(Image img)
        {
            img.Name      = CreateImageName();
            img.Extension = "jpg";
            bool  willReplaceExistingImage = false;
            Image newImage = null;

            img.URL = img.GetFileURL();
            if (img.Data != null)
            {
                //save the image
                if (System.IO.File.Exists(Site.MapPath(img.URL)))
                {
                    // create and save a backup of the original image if exists
                    willReplaceExistingImage = true;
                    string newUrl  = File.PreventNameClash(img.URL).Replace(Site.MapPath("~/"), "~/");
                    string newName = File.GetFileName(newUrl).Split('.').FirstOrDefault();
                    System.IO.File.Copy(Site.MapPath(img.URL), Site.MapPath(newUrl));
                    newImage = GetImage(img.Name);
                    if (newImage != null)
                    {
                        newImage.Active   = false;
                        newImage.BackupOf = newImage.ID + 0;
                        newImage.ID       = 0;
                        newImage.Name     = newName;
                        newImage.URL      = newUrl;
                    }
                }
                img.Data.ToBitmap().Save(Site.MapPath(img.URL), GetImageFormat(img.Extension));
                if (img.Data != null)
                {
                    img.Data.ToBitmap().Scale(160).Save(Site.MapPath(img.GetThumbUrl()), GetImageFormat(img.Extension));
                }
                img.CreationTime = DateTime.Now;
                img.ID           = AddToDatabase(img);
                if (img.ResizeForDevices)
                {
                    img.SaveTransforms();
                }
                if (willReplaceExistingImage)
                {
                    using (ImgRDataContext db = new ImgRDataContext())
                    {
                        var query = (from pp in db.tbl_Images where pp.Name.Equals(img.Name) select pp).FirstOrDefault();
                        if (query != null)
                        {
                            query.Name     = newImage.Name;
                            query.URL      = newImage.URL;
                            query.BackupOf = img.ID;
                            query.Active   = false;
                        }
                        db.SubmitChanges();
                    }
                }
            }
        }
Пример #8
0
 public static IEnumerable <Image> GetImages(bool onlyActive = true, int ownerType = 0, long ownerID = 0)
 {
     using (ImgRDataContext db = new ImgRDataContext())
     {
         foreach (tbl_Image img in (from pp in db.tbl_Images where (!onlyActive || (Convert.ToBoolean(pp.Active) == true)) && (ownerType.Equals(0) || pp.OwnerType == Convert.ToInt32(ownerType)) && (ownerID.Equals(0) || Convert.ToInt64(pp.OwnerID) == ownerID) select pp).ToList())
         {
             yield return((new Image()).Map(img));
         }
     }
 }
Пример #9
0
        public List <Image> GetResizes()
        {
            List <Image> ret = new List <Image>();

            using (ImgRDataContext db = new ImgRDataContext())
            {
                var query = (from pp in db.tbl_Images where pp.ResizeOf.Equals(this.ID) select pp).ToList();
                return(query.Select(img => (new Image()).Map(img)).ToList());
            }
        }
Пример #10
0
 public static IEnumerable <Image> GetImagesByCategory(string category, bool onlyActive = true)
 {
     using (ImgRDataContext db = new ImgRDataContext())
     {
         foreach (tbl_Image img in (from pp in db.tbl_Images where pp.Category.Equals(category) && (!onlyActive || (Convert.ToBoolean(pp.Active) == true)) select pp))
         {
             Image ret = (new Image()).Map(img);
             yield return(ret);
         }
     }
 }
Пример #11
0
 public static List <Device> Load()
 {
     if (Devices == null || (Devices.Count == 0))
     {
         using (ImgRDataContext db = new ImgRDataContext())
         {
             Devices = db.tbl_ImageDevices.ToList().Select((device) => Map(device)).ToList();
             return(Devices);
         }
     }
     return(Devices);
 }
Пример #12
0
 public static void Add(Device dv)
 {
     if (!Exists(dv))
     {
         using (ImgRDataContext db = new ImgRDataContext())
         {
             db.tbl_ImageDevices.InsertOnSubmit(dv.Map());
             db.SubmitChanges();
             Devices.Add(dv);
         }
     }
 }
Пример #13
0
 public static List <Device> Load(bool forceRefresh = false)
 {
     if (Devices == null || (Devices.Count == 0) || forceRefresh)
     {
         using (ImgRDataContext db = new ImgRDataContext())
         {
             Devices = (from pp in db.tbl_ImageDevices where (Convert.ToBoolean(pp.Active) == true) select pp).ToList().Select((device) => Map(device)).ToList();
             return(Devices);
         }
     }
     return(Devices);
 }
Пример #14
0
 private static void removeAllDefault()
 {
     Devices.ForEach((device) => device.IsDefault = false);
     using (ImgRDataContext db = new ImgRDataContext())
     {
         var query = (from pp in db.tbl_ImageDevices select pp);
         foreach (var device in query)
         {
             device.IsDefault = false;
         }
         db.SubmitChanges();
     }
 }
Пример #15
0
 public static IEnumerable <Image> GetImagesByCategory(string category, bool onlyActive = true, int ownerType = 0, long ownerID = 0, int startIndex = 0)
 {
     using (ImgRDataContext db = new ImgRDataContext())
     {
         foreach (tbl_Image img in (from pp in db.tbl_Images where pp.Category.Equals(category) && (!onlyActive || (Convert.ToBoolean(pp.Active) == true)) &&
                                    (ownerType.Equals(0) || pp.OwnerType == Convert.ToInt32(ownerType)) && (ownerID.Equals(0) || Convert.ToInt64(pp.OwnerID) == ownerID)
                                    select pp).Skip(startIndex).Take(60).ToList())
         {
             Image ret = (new Image()).Map(img);
             yield return(ret);
         }
     }
 }
Пример #16
0
        public static Image GetImage(long ID)
        {
            Image ret = new Image();

            using (ImgRDataContext db = new ImgRDataContext())
            {
                var query = (from pp in db.tbl_Images where pp.ID.Equals(ID) select pp).ToList().LastOrDefault();
                if (query != null)
                {
                    return(ret.Map(query));
                }
            }
            return(null);
        }
Пример #17
0
 public static void Edit(Image img)
 {
     if (img.Data != null)
     {
         var  oldImg         = GetImage(img.Name);
         bool doOldImgResize = oldImg.GetResizes().Count > 0;
         Backup(img);
         img.ID = 0;
         long newImgID = AddToDatabase(img);
         img.Data.ToBitmap().Save(Site.MapPath(img.GetRootUrl() + img.Name + "." + img.Extension), GetImageFormat(img.Extension));
         img.Data.ToBitmap().Scale(160).Save(Site.MapPath(img.GetThumbUrl()), GetImageFormat(img.Extension));
         if (doOldImgResize)
         {
             img.ID = newImgID;
             img.SaveTransforms();
         }
     }
     else
     {
         using (ImgRDataContext db = new ImgRDataContext())
         {
             var query = (from pp in db.tbl_Images where pp.ID.Equals(img.ID) || pp.Name.Equals(img.Name) select pp).FirstOrDefault();
             if (query != null)
             {
                 query.Title       = img.Title;
                 query.Category    = img.Category;
                 query.Description = img.Description;
                 if (img.Data != null)
                 {
                     Bitmap bmp = img.Data.ToBitmap();
                     query.Width  = bmp.Width;
                     query.Height = bmp.Height;
                 }
                 db.SubmitChanges();
             }
         }
     }
 }