Ejemplo n.º 1
0
        public Immagine RecuperaImmagine(int id)
        {
            Immagine immagine = null;

            SqlServerExecuteObject sseo = null;
            SqlDataReader          dr   = null;

            string sSql = "SELECT I.ImmagineID, I.ImmagineMasterID, I.FormatoImmagineID, I.Nome_IT, I.Nome_EN, I.DataInserimento, I.DataUltimaModifica, I.Altezza, I.Larghezza, I.NomeFile FROM dbo.TBL_Immagini AS I WHERE ImmagineID = @ImmagineID;";

            sseo             = new SqlServerExecuteObject();
            sseo.CommandText = sSql;
            sseo.CommandType = CommandType.Text;
            sseo.SqlParameters.AddWithValue("@ImmagineID", id);

            dr = SqlProvider.ExecuteReaderObject(sseo);

            while (dr.Read())
            {
                immagine = RiempiIstanza(dr);
            }

            if (dr != null)
            {
                dr.Close();
                dr.Dispose();
            }

            return(immagine);
        }
        public Immagine CreaImmagineMaster(string nome_IT, string nome_EN, string nomeFile)
        {
            Immagine immagine = null;

            if (string.IsNullOrWhiteSpace(nome_IT))
            {
                throw new ArgumentException("L'argomento non può essere null, vuoto o contenere solo spazi.", "nome_IT");
            }

            if (string.IsNullOrWhiteSpace(nome_EN))
            {
                throw new ArgumentException("L'argomento non può essere null, vuoto o contenere solo spazi.", "nome_EN");
            }

            if (string.IsNullOrWhiteSpace(nomeFile))
            {
                throw new ArgumentException("L'argomento non può essere null, vuoto o contenere solo spazi.", "nomeFile");
            }

            immagine = new Immagine();
            immagine.FormatoImmagine    = FormatoImmagineRepository.Instance.RecuperaFormatoImmagine((int)FormatoImmagineEnum.Master);
            immagine.DataInserimento    = DateTime.Now;
            immagine.DataUltimaModifica = immagine.DataInserimento;
            immagine.ImmagineMasterID   = 0;

            immagine.Nome_IT  = nome_IT;
            immagine.Nome_EN  = nome_EN;
            immagine.NomeFile = nomeFile;

            return(immagine);
        }
Ejemplo n.º 3
0
        public ActionResult Immagine(int id = 0)
        {
            ActionResult result   = null;
            string       cacheKey = "Foto" + id.ToString(CultureInfo.InvariantCulture);
            string       filepath = ControllerContext.HttpContext.Cache[cacheKey] as string;

            if (filepath == null)
            {
                Immagine immagine = ImmagineRepository.Instance.RecuperaImmagine(id);

                if (immagine != null)
                {
                    filepath = FileUtility.VAImmagine(immagine.FormatoImmagine.Enum, immagine.NomeFile);

                    ControllerContext.HttpContext.Cache.Insert(cacheKey, filepath, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(5));
                }
                else
                {
                    filepath = string.Empty;
                }
            }

            if (filepath != string.Empty && System.IO.File.Exists(filepath))
            {
                string contenttype = ContentTypeByExtension(Path.GetExtension(filepath));

                result = File(filepath, contenttype);
            }
            else
            {
                result = HttpNotFound();
            }

            return(result);
        }
        public Immagine CreaImmagine(Immagine immagineMaster, FormatoImmagine formato, string nomeFile)
        {
            Immagine immagine = null;

            if (immagineMaster == null)
            {
                throw new ArgumentNullException("immagineMaster");
            }

            if (formato == null)
            {
                throw new ArgumentNullException("formato");
            }

            immagine = new Immagine();
            immagine.ImmagineMasterID   = immagineMaster.ID;
            immagine.FormatoImmagine    = formato;
            immagine.DataInserimento    = DateTime.Now;
            immagine.DataUltimaModifica = immagine.DataInserimento;

            immagine.Nome_IT  = immagineMaster.Nome_IT;
            immagine.Nome_EN  = immagineMaster.Nome_EN;
            immagine.NomeFile = nomeFile;

            return(immagine);
        }
Ejemplo n.º 5
0
        public ActionResult ImmagineLavoro(int id = 0)
        {
            ActionResult result   = null;
            Immagine     immagine = ImmagineRepository.Instance.RecuperaImmagine(id);

            if (immagine != null && immagine.FormatoImmagine.Enum == FormatoImmagineEnum.Master)
            {
                string filepath    = null;
                string contenttype = null;
                string ext         = Path.GetExtension(immagine.NomeFile).ToLowerInvariant();

                contenttype = ContentTypeByExtension(ext);

                filepath = FileUtility.VAImmagineLavoro(immagine.NomeFile);

                if (System.IO.File.Exists(filepath))
                {
                    result = File(filepath, contenttype);
                }
                else
                {
                    result = HttpNotFound();
                }
            }
            else
            {
                result = HttpNotFound();
            }

            return(result);
        }
Ejemplo n.º 6
0
        private int InserisciImmagine(Immagine immagine)
        {
            int result = 0;

            SqlServerExecuteObject sseo = null;
            string sSql = "";

            sSql = "INSERT INTO dbo.TBL_Immagini (ImmagineMasterID, FormatoImmagineID, Nome_IT, Nome_EN, DataInserimento, DataUltimaModifica, Altezza, Larghezza, NomeFile) VALUES " +
                   "(@ImmagineMasterID, @FormatoImmagineID, @Nome_IT, @Nome_EN, @DataInserimento, @DataUltimaModifica, @Altezza, @Larghezza, @NomeFile);" +
                   "SELECT @@IDENTITY;";

            sseo             = new SqlServerExecuteObject();
            sseo.CommandText = sSql;
            sseo.SqlParameters.AddWithValue("@ImmagineMasterID", immagine.ImmagineMasterID.Value);
            sseo.SqlParameters.AddWithValue("@FormatoImmagineID", immagine.FormatoImmagine.ID);
            sseo.SqlParameters.AddWithValue("@Nome_IT", immagine.Nome_IT);
            sseo.SqlParameters.AddWithValue("@Nome_EN", immagine.Nome_EN);
            sseo.SqlParameters.AddWithValue("@DataInserimento", immagine.DataInserimento);
            sseo.SqlParameters.AddWithValue("@DataUltimaModifica", immagine.DataUltimaModifica);
            sseo.SqlParameters.AddWithValue("@Altezza", immagine.Altezza);
            sseo.SqlParameters.AddWithValue("@Larghezza", immagine.Larghezza);
            sseo.SqlParameters.AddWithValue("@NomeFile", immagine.NomeFile);

            result = int.Parse(SqlProvider.ExecuteScalarObject(sseo).ToString());

            return(result);
        }
Ejemplo n.º 7
0
        private int ModificaImmagine(Immagine immagine)
        {
            int result = 0;

            SqlServerExecuteObject sseo = null;
            string sSql = "";

            sSql = "UPDATE dbo.TBL_Immagini SET Nome_IT = @Nome_IT, Nome_EN = @Nome_EN, DataUltimaModifica = @DataUltimaModifica, NomeFile = @NomeFile, Altezza = @Altezza, Larghezza = @Larghezza " +
                   "WHERE ImmagineID = @ImmagineID;";

            sseo             = new SqlServerExecuteObject();
            sseo.CommandText = sSql;
            sseo.SqlParameters.AddWithValue("@Nome_IT", immagine.Nome_IT);
            sseo.SqlParameters.AddWithValue("@Nome_EN", immagine.Nome_EN);
            sseo.SqlParameters.AddWithValue("@DataUltimaModifica", immagine.DataUltimaModifica);
            sseo.SqlParameters.AddWithValue("@NomeFile", immagine.NomeFile);
            sseo.SqlParameters.AddWithValue("@Larghezza", immagine.Larghezza);
            sseo.SqlParameters.AddWithValue("@Altezza", immagine.Altezza);
            sseo.SqlParameters.AddWithValue("@ImmagineID", immagine.ID);

            SqlProvider.ExecuteNonQueryObject(sseo);

            result = immagine.ID;

            return(result);
        }
Ejemplo n.º 8
0
        public ActionResult Elimina(int id)
        {
            ActionResult result   = null;
            Immagine     immagine = ImmagineRepository.Instance.RecuperaImmagine(id);

            if (immagine != null)
            {
                if (immagine.FormatoImmagine.Enum == FormatoImmagineEnum.Master)
                {
                    List <Immagine> immaginiCollegate = ImmagineRepository.Instance.RecuperaImmaginiFiglio(immagine.ID);

                    foreach (Immagine immagineCollegata in immaginiCollegate)
                    {
                        FileUtility.VAEliminaImmagine(immagineCollegata.FormatoImmagine.Enum, immagineCollegata.NomeFile);
                        ImmagineRepository.Instance.Elimina(immagineCollegata.ID);
                    }

                    FileUtility.VAEliminaImmagineLavoro(immagine.NomeFile);
                }

                FileUtility.VAEliminaImmagine(immagine.FormatoImmagine.Enum, immagine.NomeFile);
                ImmagineRepository.Instance.Elimina(id);
            }

            result = RedirectToAction("Index");

            return(result);
        }
Ejemplo n.º 9
0
        public ActionResult Edita(int id)
        {
            ActionResult       result = null;
            ImmagineEditaModel model  = new ImmagineEditaModel();

            model.MostraLinkInserimentoNotizia = User.IsInRole(RuoloUtenteCodici.GestoreNotizie);
            Immagine immagine = null;

            immagine = ImmagineRepository.Instance.RecuperaImmagine(id);

            if (immagine != null && immagine.FormatoImmagine.Enum == FormatoImmagineEnum.Master)
            {
                model.Immagine = immagine;

                model.ID           = id;
                model.EditaNome_IT = immagine.Nome_IT;
                model.EditaNome_EN = immagine.Nome_EN;

                result = View(model);
            }
            else
            {
                result = HttpNotFound();
            }

            return(result);
        }
Ejemplo n.º 10
0
        public ActionResult ImmaginePerFormato(int immagineMasterID, int formatoImmagineID)
        {
            ActionResult result   = null;
            Immagine     immagine = null;

            immagine = ImmagineRepository.Instance.RecuperaImmaginiFiglio(immagineMasterID).FirstOrDefault(x => x.FormatoImmagine.ID == formatoImmagineID);

            if (immagine != null)
            {
                string filepath    = null;
                string contenttype = null;
                string ext         = Path.GetExtension(immagine.NomeFile).ToLowerInvariant();

                contenttype = ContentTypeByExtension(ext);

                filepath = FileUtility.VAImmagine(immagine.FormatoImmagine.Enum, immagine.NomeFile);

                if (System.IO.File.Exists(filepath))
                {
                    result = File(filepath, contenttype);
                }
                else
                {
                    result = HttpNotFound();
                }
            }
            else
            {
                result = HttpNotFound();
            }

            return(result);
        }
Ejemplo n.º 11
0
 public SendingFile(Neighbor neighbor, string fileName)
 {
     IpAddr   = neighbor.NeighborIp;
     Name     = neighbor.NeighborName;
     FileName = fileName;
     Immagine = neighbor.NeighborImage;
     Immagine.Freeze();
     Value      = 0.0;
     Sock       = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     File_state = Constants.FILE_STATE.PREPARATION;
 }
Ejemplo n.º 12
0
        public ActionResult EditaFormati(int id, int?formatoImmagineID, int mod = 0)
        {
            ActionResult result             = null;
            ImmagineEditaFormatiModel model = new ImmagineEditaFormatiModel();
            Immagine immagineMaster         = null;

            immagineMaster = ImmagineRepository.Instance.RecuperaImmagine(id);

            if (immagineMaster != null && immagineMaster.FormatoImmagine.Enum == FormatoImmagineEnum.Master)
            {
                Dictionary <FormatoImmagine, Immagine> formatiImmagine = null;
                List <FormatoImmagine> formati        = FormatoImmagineRepository.Instance.RecuperaFormatiImmagine().Where(x => x.Abilitato).ToList();
                List <Immagine>        immaginiElenco = null;

                immaginiElenco = ImmagineRepository.Instance.RecuperaImmaginiFiglio(immagineMaster.ID);

                formatiImmagine = new Dictionary <FormatoImmagine, Immagine>();

                foreach (FormatoImmagine item in formati)
                {
                    Immagine immagine = immaginiElenco.SingleOrDefault(x => x.FormatoImmagine.Enum == item.Enum);

                    formatiImmagine.Add(item, immagine);
                }

                model.ID              = id;
                model.ImmagineMaster  = immagineMaster;
                model.FormatiImmagine = formatiImmagine;

                if (formatoImmagineID != null)
                {
                    model.FormatoImmagine = formati.SingleOrDefault(x => x.ID.Equals(formatoImmagineID.Value));

                    if (model.FormatoImmagine != null)
                    {
                        model.Immagine = immaginiElenco.SingleOrDefault(x => x.FormatoImmagine.Enum == model.FormatoImmagine.Enum);
                    }
                }

                model.Modalita = mod;

                result = View(model);
            }
            else
            {
                result = HttpNotFound();
            }

            return(result);
        }
Ejemplo n.º 13
0
        internal int SalvaImmagine(Immagine immagine)
        {
            int result = 0;

            if (immagine.IsNew)
            {
                result = InserisciImmagine(immagine);
            }
            else
            {
                result = ModificaImmagine(immagine);
            }

            return(result);
        }
Ejemplo n.º 14
0
        public List <Immagine> RecuperaImmagini(string nome_IT, int startrowNum, int endRowNum, out int rows)
        {
            List <Immagine> immagini = new List <Immagine>();

            rows = 0;

            SqlServerExecuteObject sseo = null;
            SqlDataReader          dr   = null;
            string sSql = "";

            sSql = "SELECT * FROM (" +
                   "SELECT I.ImmagineID, I.ImmagineMasterID, I.FormatoImmagineID, I.Nome_IT, I.Nome_EN, I.DataInserimento, I.DataUltimaModifica, I.Altezza, I.Larghezza, I.NomeFile, ROW_NUMBER() " +
                   "OVER(ORDER BY DataInserimento DESC) " +
                   "ROWNUM " +
                   "FROM dbo.TBL_Immagini AS I WHERE (I.FormatoImmagineID = 0) AND (I.Nome_IT LIKE @Testo)" +
                   ") " +
                   "R WHERE R.ROWNUM > @StartRowNum AND R.ROWNUM <= @EndRowNum;" +
                   "SELECT COUNT(*) FROM dbo.TBL_Immagini AS I WHERE (I.FormatoImmagineID = 0) AND (I.Nome_IT LIKE @Testo);";

            sseo             = new SqlServerExecuteObject();
            sseo.CommandText = sSql;
            sseo.SqlParameters.AddWithValue("@StartRowNum", startrowNum);
            sseo.SqlParameters.AddWithValue("@EndRowNum", endRowNum);
            sseo.SqlParameters.AddWithValue("@Testo", string.Format("%{0}%", nome_IT));

            dr = SqlProvider.ExecuteReaderObject(sseo);

            while (dr.Read())
            {
                Immagine immagine = RiempiIstanza(dr);
                immagini.Add(immagine);
            }

            if (dr.NextResult() && dr.Read())
            {
                rows = dr.GetInt32(0);
            }

            if (dr != null)
            {
                dr.Close();
                dr.Dispose();
            }

            return(immagini);
        }
        public int SalvaImmagine(Immagine immagine)
        {
            int id = 0;

            if (immagine == null)
            {
                throw new ArgumentNullException("immagine");
            }


            immagine.DataUltimaModifica = DateTime.Now;

            id = ImmagineRepository.Instance.SalvaImmagine(immagine);


            return(id);
        }
Ejemplo n.º 16
0
        private Immagine RiempiIstanza(SqlDataReader dr)
        {
            if (dr == null)
            {
                throw new ArgumentNullException("dr");
            }

            Immagine immagine = new Immagine();

            immagine.ID = dr.GetInt32(0);
            immagine.ImmagineMasterID   = dr.IsDBNull(1) ? null : (int?)dr.GetInt32(1);
            immagine.FormatoImmagine    = FormatoImmagineRepository.Instance.RecuperaFormatoImmagine(dr.GetInt32(2));
            immagine.Nome_IT            = dr.GetString(3);
            immagine.Nome_EN            = dr.GetString(4);
            immagine.DataInserimento    = dr.GetDateTime(5);
            immagine.DataUltimaModifica = dr.GetDateTime(6);
            immagine.Altezza            = dr.GetInt32(7);
            immagine.Larghezza          = dr.GetInt32(8);
            immagine.NomeFile           = dr.GetString(9);

            return(immagine);
        }
Ejemplo n.º 17
0
        public List <Immagine> RecuperaImmaginiFiglio(int immagineMasterID)
        {
            List <Immagine> immagini = new List <Immagine>();

            SqlServerExecuteObject sseo = null;
            SqlDataReader          dr   = null;
            string sSql = "";

            sSql = "SELECT * FROM (" +
                   "SELECT I.ImmagineID, I.ImmagineMasterID, I.FormatoImmagineID, I.Nome_IT, I.Nome_EN, I.DataInserimento, I.DataUltimaModifica, I.Altezza, I.Larghezza, I.NomeFile, ROW_NUMBER() " +
                   "OVER(ORDER BY DataInserimento DESC) " +
                   "ROWNUM " +
                   "FROM dbo.TBL_Immagini AS I WHERE (I.FormatoImmagineID <> 0) AND (ImmagineMasterID = @ImmagineMasterID)" +
                   ") " +
                   "R WHERE R.ROWNUM > @StartRowNum AND R.ROWNUM <= @EndRowNum;";

            sseo             = new SqlServerExecuteObject();
            sseo.CommandText = sSql;
            sseo.SqlParameters.AddWithValue("@ImmagineMasterID", immagineMasterID);
            sseo.SqlParameters.AddWithValue("@StartRowNum", 0);
            sseo.SqlParameters.AddWithValue("@EndRowNum", 100);

            dr = SqlProvider.ExecuteReaderObject(sseo);

            while (dr.Read())
            {
                Immagine immagine = RiempiIstanza(dr);
                immagini.Add(immagine);
            }

            if (dr != null)
            {
                dr.Close();
                dr.Dispose();
            }

            return(immagini);
        }
Ejemplo n.º 18
0
        public ActionResult Edita(ImmagineEditaModel model)
        {
            ActionResult result = null;

            if (model.ID == 0 && ModelState.IsValidField("EditaFileImmagine"))
            {
                if (model.EditaFileImmagine == null || model.EditaFileImmagine.ContentLength == 0)
                {
                    ModelState.AddModelError("EditaFileImmagine", "Immagine obbligatoria.");
                }
            }

            if (ModelState.IsValid)
            {
                int              id       = 0;
                Immagine         immagine = null;
                ContenutoService cs       = new ContenutoService();

                if (model.ID != 0)
                {
                    if (model.EditaFileImmagine != null)
                    {
                        immagine = ImmagineRepository.Instance.RecuperaImmagine(model.ID);
                        string nomeFile = string.Format("{0}{1}", immagine.ID, System.IO.Path.GetExtension(model.EditaFileImmagine.FileName));
                        FileUtility.VASalvaImmagine(immagine.FormatoImmagine.Enum, nomeFile, model.EditaFileImmagine);
                        immagine.NomeFile = nomeFile;
                        immagine.Nome_IT  = model.EditaNome_IT.Trim();
                        immagine.Nome_EN  = model.EditaNome_EN.Trim();
                        Bitmap immagineMaster = new Bitmap(FileUtility.VAImmagine(immagine.FormatoImmagine.Enum, nomeFile));
                        immagine.Altezza   = immagineMaster.Height;
                        immagine.Larghezza = immagineMaster.Width;
                        immagineMaster.Dispose();
                    }
                    else
                    {
                        immagine         = ImmagineRepository.Instance.RecuperaImmagine(model.ID);
                        immagine.Nome_IT = model.EditaNome_IT.Trim();
                        immagine.Nome_EN = model.EditaNome_EN.Trim();
                    }
                }
                else
                {
                    immagine = cs.CreaImmagineMaster(model.EditaNome_IT.Trim(),
                                                     model.EditaNome_EN.Trim(),
                                                     "temp.file");
                }

                id       = cs.SalvaImmagine(immagine);
                immagine = ImmagineRepository.Instance.RecuperaImmagine(id);

                if (model.ID == 0)
                {
                    string nomeFile = string.Format("{0}{1}", immagine.ID, System.IO.Path.GetExtension(model.EditaFileImmagine.FileName));
                    FileUtility.VASalvaImmagine(immagine.FormatoImmagine.Enum, nomeFile, model.EditaFileImmagine);

                    Bitmap immagineMaster = new Bitmap(FileUtility.VAImmagine(immagine.FormatoImmagine.Enum, nomeFile));

                    //immagineMaster.Save(FileUtility.VAImmagineLavoro(nomeFile));

                    immagine.NomeFile  = nomeFile;
                    immagine.Altezza   = immagineMaster.Height;
                    immagine.Larghezza = immagineMaster.Width;

                    immagineMaster.Dispose();

                    cs.SalvaImmagine(immagine);
                }
                else
                {
                    List <Immagine> immaginiCollegate = ImmagineRepository.Instance.RecuperaImmaginiFiglio(immagine.ID);

                    foreach (Immagine immagineCollegata in immaginiCollegate)
                    {
                        immagineCollegata.Nome_IT = immagine.Nome_IT;
                        immagineCollegata.Nome_EN = immagine.Nome_EN;
                        cs.SalvaImmagine(immagineCollegata);
                    }
                }

                result = RedirectToAction("Edita", new { id = id });
            }
            else
            {
                if (model.ID != 0)
                {
                    model.Immagine = ImmagineRepository.Instance.RecuperaImmagine(model.ID);
                }

                result = View(model);
            }

            return(result);
        }
Ejemplo n.º 19
0
        public virtual IList<Immagine> UploadImages(IEnumerable<HttpPostedFileBase> files, string IDPadre, string TipoPadre, bool fileSingolo)
        {
            IList<Immagine> toReturn = new List<Immagine>();

            foreach (HttpPostedFileBase el in files)
            {
                string extension = Path.GetExtension(el.FileName);

                if (ImageHelper.isValidImageExtension(extension))
                {
                    var imgToSave = new Immagine
                    {
                        FlagPrincipale = fileSingolo,
                        FlagPubblica = fileSingolo,
                        Estensione = extension,
                        IDPadre = IDPadre,
                        TipoPadre = TipoPadre,
                        IDFileImmagine = "no-image"
                    };

                    _repository.SaveOrUpdate(imgToSave);

                    imgToSave.IDFileImmagine = imgToSave.Id;

                    //try
                    //{
                    //    el.SaveAs(imageFileName);
                    //}
                    //catch (Exception exception)
                    //{
                    //    throw;
                    //}
                    var imageData = ResizeBeforeAzureUpload(el, imgToSave);

                    // Blocco per il salvataggio su azure
                    try
                    {
                        //                        using (var ms = new MemoryStream())
                        //                        {
                        //                            el.InputStream.CopyTo(ms);

                        var blob = new Blob.Blob
                        {
                            Name = ImageHelper.BuildFileName(imgToSave),
                            //salva su azure con nome file = ID.estensione
                            MimeType = el.ContentType ?? AttachmentHelper.GetExtensionMimeType(extension),
                            Data = imageData//ms.ToArray(),
                        };

                        _blobManager.Set(blob);
                        //                        }
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }

                    toReturn.Add(imgToSave);
                }
            }

            return toReturn;
        }
Ejemplo n.º 20
0
        public ActionResult EditaFormatiRidimensiona(int id, int formatoImmagineID, int w, int h)
        {
            ActionResult result         = null;
            Immagine     immagineMaster = null;

            immagineMaster = ImmagineRepository.Instance.RecuperaImmagine(id);

            if (immagineMaster != null)
            {
                FormatoImmagine formato  = FormatoImmagineRepository.Instance.RecuperaFormatoImmagine(formatoImmagineID);
                Immagine        immagine = null;

                immagine = ImmagineRepository.Instance.RecuperaImmaginiFiglio(immagineMaster.ID).FirstOrDefault(x => x.FormatoImmagine.ID == formato.ID);

                Bitmap    immagineLavoro            = null;
                Bitmap    immagineRidimensionata    = null;
                Graphics  grpImmagineRidimensionata = null;
                Rectangle rettangoloRidimensionata;

                immagineLavoro = new Bitmap(FileUtility.VAImmagineLavoro(immagineMaster.NomeFile));

                rettangoloRidimensionata = new Rectangle(0, 0, w, h);

                immagineRidimensionata = new Bitmap(w, h);

                grpImmagineRidimensionata = Graphics.FromImage((System.Drawing.Image)immagineRidimensionata);

                grpImmagineRidimensionata.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                grpImmagineRidimensionata.SmoothingMode      = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                grpImmagineRidimensionata.InterpolationMode  = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;

                grpImmagineRidimensionata.DrawImage((System.Drawing.Image)immagineLavoro, rettangoloRidimensionata);
                grpImmagineRidimensionata.Dispose();

                string ext = System.IO.Path.GetExtension(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile)).ToLower();

                switch (ext)
                {
                case ".jpeg":
                case ".jpg":
                    immagineRidimensionata.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), immagineLavoro.RawFormat);
                    break;

                case ".gif":
                    immagineRidimensionata.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), immagineLavoro.RawFormat);
                    break;

                case ".png":
                    immagineRidimensionata.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), immagineLavoro.RawFormat);
                    break;

                case ".bmp":
                    immagineRidimensionata.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), immagineLavoro.RawFormat);
                    break;

                default:
                    throw new ApplicationException("Formato immagine non supportato: " + ext);
                }

                immagineLavoro.Dispose();

                ContenutoService cs = new ContenutoService();

                if (immagine != null)
                {
                    immagine.NomeFile = immagineMaster.NomeFile;
                }
                else
                {
                    immagine = cs.CreaImmagine(immagineMaster, formato, immagineMaster.NomeFile);
                }

                immagine.Larghezza = immagineRidimensionata.Width;
                immagine.Altezza   = immagineRidimensionata.Height;

                immagineRidimensionata.Dispose();

                cs.SalvaImmagine(immagine);

                result = RedirectToAction("EditaFormati", new { id = immagineMaster.ID, formatoImmagineID = formato.ID });
            }
            else
            {
                result = RedirectToAction("Index");
            }

            return(result);
        }
Ejemplo n.º 21
0
        public ActionResult EditaFormatiTaglia(int id, int formatoImmagineID, int x1 = 0, int y1 = 0, int x2 = 0, int y2 = 0, int w = 0, int h = 0)
        {
            ActionResult result         = null;
            Immagine     immagineMaster = null;

            immagineMaster = ImmagineRepository.Instance.RecuperaImmagine(id);

            if (immagineMaster != null)
            {
                FormatoImmagine formato  = FormatoImmagineRepository.Instance.RecuperaFormatoImmagine(formatoImmagineID);
                Immagine        immagine = null;
                immagine = ImmagineRepository.Instance.RecuperaImmaginiFiglio(immagineMaster.ID).FirstOrDefault(x => x.FormatoImmagine.ID == formato.ID);

                Bitmap      immagineLavoro    = null;
                ImageFormat format            = null;
                Bitmap      immagineRisultato = null;

                immagineLavoro    = new Bitmap(FileUtility.VAImmagineLavoro(immagineMaster.NomeFile));
                format            = immagineLavoro.RawFormat;
                immagineRisultato = ImageHelper.Ritaglia(immagineLavoro, x1, y1, x2, y2);

                if (immagineRisultato != null)
                {
                    immagineLavoro.Dispose();
                    immagineLavoro = immagineRisultato;
                }

                immagineRisultato = ImageHelper.Ridimensiona(immagineLavoro, w, h);

                if (immagineRisultato != null)
                {
                    immagineLavoro.Dispose();
                }
                else
                {
                    immagineRisultato = immagineLavoro;
                }

                immagineLavoro = null;

                string ext = System.IO.Path.GetExtension(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile)).ToLower();

                switch (ext)
                {
                case ".jpeg":
                case ".jpg":
                    immagineRisultato.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), format);
                    break;

                case ".gif":
                    immagineRisultato.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), format);
                    break;

                case ".png":
                    immagineRisultato.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), format);
                    break;

                case ".bmp":
                    immagineRisultato.Save(FileUtility.VAImmagine(formato.Enum, immagineMaster.NomeFile), format);
                    break;

                default:
                    throw new ApplicationException("Formato immagine non supportato: " + ext);
                }

                ContenutoService cs = new ContenutoService();

                if (immagine != null)
                {
                    immagine.NomeFile = immagineMaster.NomeFile;
                }
                else
                {
                    immagine = cs.CreaImmagine(immagineMaster, formato, immagineMaster.NomeFile);
                }

                immagine.Larghezza = immagineRisultato.Width;
                immagine.Altezza   = immagineRisultato.Height;

                immagineRisultato.Dispose();

                cs.SalvaImmagine(immagine);

                result = RedirectToAction("EditaFormati", new { id = immagineMaster.ID, formatoImmagineID = formato.ID });
            }
            else
            {
                result = RedirectToAction("Index");
            }

            return(result);
        }
Ejemplo n.º 22
0
        public virtual string GetTempImagePathFromAzureCached(string id, int? w = 0, int? h = 0, string ext = "")
        {
            var imageNotFound = new Immagine
            {
                Id = "image-not-found",
                IDFileImmagine = "image-not-found",
                Estensione = ".png"
            };

            Immagine img = null;

            if (string.IsNullOrEmpty(ext))
            {
                try
                {
                    img = _imageRepository.GetById(id);
                }
                catch (Exception exception)
                {
                    img = imageNotFound;
                }

                if (img == null)
                    img = imageNotFound; //secondo me ci sta meglio dell'eccezione
            }
            else
                img = new Immagine {Id = id, IDFileImmagine = id, Estensione = ext};

            var cacheFileName = ImageHelper.CacheFileName(img.IDFileImmagine, img.Estensione, w ?? 0, h ?? 0,
                img.PoiPercX, img.PoiPercY);

            cacheFileName = ResolvePath(cacheFileName);

            if (!System.IO.File.Exists(cacheFileName))
            {
                string imageFileName = ResolvePath(ImageHelper.ImageFileName(img.IDFileImmagine, img.Estensione));

            //                if (System.IO.File.Exists(imageFileName))
            //                {
            //                    SaveCacheFile(imageFileName, cacheFileName, w ?? 0, h ?? 0, img);
            //                }
            //                else
            //                {
                Blob.Blob imageBlob = null;
                try
                {
                    imageBlob = _imageBlobManager.Get(img.IDFileImmagine + img.Estensione);
                }
                catch (Exception)
                {
                }

                if (imageBlob != null)
                {
            //                        System.IO.File.WriteAllBytes(imageFileName, imageBlob.Data);
                    using (var ms = new MemoryStream())
                    {
                        ms.Write(imageBlob.Data, 0, imageBlob.Data.Length);
                        SaveCacheFile(imageFileName, cacheFileName, w ?? 0, h ?? 0, img, ms);
                    }
                }
                else
                {
                    img = imageNotFound;
                    //imageFileName = ImageHelper.ImageFileName(img.IDFileImmagine, img.Estensione);

                    imageFileName = System.Web.HttpContext.Current != null
                        ? System.Web.HttpContext.Current.Server.MapPath("/Content/images/image-not-found.png")
                        : @"/Content/images/image-not-found.png";
                    cacheFileName = ImageHelper.CacheFileName(img.IDFileImmagine, ".png", w ?? 0, h ?? 0,
                        img.PoiPercX, img.PoiPercY);

                    SaveCacheFile(imageFileName, cacheFileName, w ?? 0, h ?? 0, imageNotFound);
                }
            //                }
            }

            string image;
            FileInfo fileInfo;

            string contentType = ImageHelper.GetContentTypeFromExtension(cacheFileName);
            try
            {
                image = cacheFileName;
                fileInfo = new FileInfo(cacheFileName);
            }
            catch (Exception exception)
            {
                throw new ArgumentNullException("Error returning file content (" + cacheFileName + ")", exception);
            }

            // Se il file non esiste sul disco ritorno null
            if (!System.IO.File.Exists(image)) return null;

            return image;
        }
Ejemplo n.º 23
0
        /// <summary>
        ///     Salva l'immagine richiesta nella cache
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="cacheFileName"></param>
        /// <param name="w"></param>
        /// <param name="h"></param>
        /// <param name="img"></param>
        protected virtual void SaveCacheFile(string fileName, string cacheFileName, int w, int h, Immagine img)
        {
            Bitmap newResizedImage = null;

            try
            {
                newResizedImage = ImageHelper.ResizeImage(fileName, w, h, img.PoiPercX, img.PoiPercY);
            }
            catch (Exception exception)
            {
                throw new ArgumentNullException("Error resizing image", exception);
            }

            if (newResizedImage != null)
            {
                try
                {
                    var imageFormat = ImageHelper.GetImageFormatFromExtension(cacheFileName);

                    if (ImageHelper.SupportTranspancy(cacheFileName))
                        newResizedImage.MakeTransparent();

                    PrepareFolder(cacheFileName);

                    newResizedImage.Save(cacheFileName, imageFormat);
                }
                catch (Exception exception)
                {
                    throw new ArgumentNullException("Error saving image to filesystem (" + cacheFileName + ")",
                        exception);
                }
                finally
                {
                    newResizedImage.Dispose();
                }
            }
        }
Ejemplo n.º 24
0
        public virtual ActionResult Index(string id, int w = 0, int h = 0, string ext = "")
        {
            //Response.Cache.SetCacheability(HttpCacheability.Public);
            //Response.Cache.SetExpires(DateTime.Now.AddYears(1));

            var imageNotFound = new Immagine
            {
                Id = "image-not-found",
                IDFileImmagine = "image-not-found",
                Estensione = ".png"
            };

            Immagine img = null;

            if (string.IsNullOrEmpty(ext))
            {
                try
                {
                    img = _imageCache.GetById(id);
                }
                catch (Exception exception)
                {
                    img = imageNotFound;
                }

                if (img == null)
                    img = imageNotFound; //secondo me ci sta meglio dell'eccezione
            }
            else
                img = new Immagine {Id = id, IDFileImmagine = id, Estensione = ext};

            var cacheFileName = ImageHelper.CacheFilePathName(img.IDFileImmagine, img.Estensione, w, h, img.PoiPercX, img.PoiPercY);

            if (!System.IO.File.Exists(cacheFileName))
            {
                string imageFileName = ImageHelper.ImageFilePathName(img.IDFileImmagine, img.Estensione);

                if (System.IO.File.Exists(imageFileName))
                {
                    SaveCacheFile(imageFileName, cacheFileName, w, h, img);
                }
                else
                {
                    var imageBlob = _imageBlobManager.Get(img.IDFileImmagine + img.Estensione);

                    if (imageBlob != null)
                    {
                        PrepareFolder(imageFileName);

                        System.IO.File.WriteAllBytes(imageFileName, imageBlob.Data);

                        SaveCacheFile(imageFileName, cacheFileName, w, h, img);
                    }
                    else
                    {
                        img = imageNotFound;
                        //imageFileName = ImageHelper.ImageFileName(img.IDFileImmagine, img.Estensione);

                        imageFileName = Server.MapPath("/Content/images/image-not-found.png");
                        cacheFileName = ImageHelper.CacheFilePathName(img.IDFileImmagine, ".png", w, h, img.PoiPercX, img.PoiPercY);

                        SaveCacheFile(imageFileName, cacheFileName, w, h, imageNotFound);
                    }

                }
            }

            FilePathResult image;
            FileInfo fileInfo;

            string contentType = ImageHelper.GetContentTypeFromExtension(cacheFileName);
            try
            {
                image = File(cacheFileName, contentType);
                fileInfo = new FileInfo(cacheFileName);
            }
            catch (Exception exception)
            {
                throw new ArgumentNullException("Error returning file content (" + cacheFileName + ")", exception);
            }

            // cacheImage = _imageBlobManager.Get(cacheFileName);

            // Se il file non esiste sul disco ritorno 404
            if (!System.IO.File.Exists(image.FileName)) return HttpNotFound();

            // gestione cache questa rimane da aggiungere al blob
            // La cache NON và aggiunta al BLOB
            //if (!String.IsNullOrEmpty(Request.Headers["If-Modified-Since"]))
            //{
            //    var provider = CultureInfo.InvariantCulture;
            //    var lastMod = DateTime.ParseExact(Request.Headers["If-Modified-Since"], "r", provider).ToLocalTime();

            //    if (lastMod.Year == fileInfo.LastWriteTime.Year &&
            //        lastMod.Month == fileInfo.LastWriteTime.Month &&
            //        lastMod.Day == fileInfo.LastWriteTime.Day &&
            //        lastMod.Hour == fileInfo.LastWriteTime.Hour &&
            //        lastMod.Minute == fileInfo.LastWriteTime.Minute &&
            //        lastMod.Second == fileInfo.LastWriteTime.Second
            //        )
            //    {
            //        Response.StatusCode = 304;
            //        Response.StatusDescription = "Not Modified";
            //        return new EmptyResult();
            //    }
            //}

            //Response.Cache.SetCacheability(HttpCacheability.Public);
            //Response.Cache.SetLastModified(fileInfo.LastWriteTime);

            //if (!String.IsNullOrEmpty(Request.Headers["If-Modified-Since"]))
            //{
            //    Response.StatusCode = 304;
            //    Response.StatusDescription = "Not Modified";
            //    Response.Cache.SetExpires(DateTime.Now.AddYears(1));
            //    return new EmptyResult();
            //}

            //Response.Cache.SetCacheability(HttpCacheability.Public);
            //Response.Cache.SetLastModified(new DateTime(2014, 1, 1, 1, 1, 1, 1));
            //Response.Cache.SetExpires(DateTime.Now.AddYears(1));

            return image;
        }
Ejemplo n.º 25
0
 public static string BuildFileName(Immagine img)
 {
     return img.IDFileImmagine + img.Estensione;
 }
Ejemplo n.º 26
0
        private byte[] ResizeBeforeAzureUpload(HttpPostedFileBase upFile, Immagine imgToSave)
        {
            //creo un'immagine nella cartella temp per fare il resize
            string imageFileName = ImageHelper.ImageFilePathName("rtemp_" + imgToSave.IDFileImmagine, imgToSave.Estensione);
            var imageBytes = new byte[upFile.InputStream.Length];

            using (var ms = new MemoryStream())
            {
                upFile.InputStream.CopyTo(ms);
                try
                {   //salvo l'immagine temporanea
                    System.IO.File.WriteAllBytes(imageFileName, ms.ToArray());
                    //ridimensiono l'immagine prima dell'upload
                    var resizedImg = ImageHelper.ResizeImage(imageFileName, 1280, 0, null, null);

                    if (resizedImg != null)
                    {
                        using (var rims = new MemoryStream())
                        {
                            resizedImg.Save(rims, GetImageFormat(upFile.ContentType));
                            imageBytes = rims.ToArray();
                        }
                        resizedImg.Dispose();
                    }

                    //rimuovo l'immagine temporanea
                    ImageHelper.RemoveFromDisk("rtemp_" + imgToSave.IDFileImmagine);
                }
                catch (Exception)
                {
                    imageBytes = ms.ToArray();
                }
            }
            return imageBytes;
        }
Ejemplo n.º 27
0
        public static void RemoveFromCloudRepository(Immagine immagine)
        {
            if (immagine == null) return;

            AbsContainer.Using<IImageBlobManager>(el => RemoveFromCloudRepositoryInternal(el, immagine));
        }
Ejemplo n.º 28
0
 private static void RemoveFromCloudRepositoryInternal(IImageBlobManager manager, Immagine allegato)
 {
     AbsContainer.Using<IRepository<Immagine>>(immagineRepository =>
     {
         if (!immagineRepository.GetAll().Any(el => el.IDFileImmagine == allegato.IDFileImmagine && el.Id != allegato.IDFileImmagine))
             manager.Remove(BuildFileName(allegato));
     });
 }