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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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; }
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); }
internal int SalvaImmagine(Immagine immagine) { int result = 0; if (immagine.IsNew) { result = InserisciImmagine(immagine); } else { result = ModificaImmagine(immagine); } return(result); }
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); }
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); }
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); }
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); }
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; }
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); }
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); }
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; }
/// <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(); } } }
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; }
public static string BuildFileName(Immagine img) { return img.IDFileImmagine + img.Estensione; }
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; }
public static void RemoveFromCloudRepository(Immagine immagine) { if (immagine == null) return; AbsContainer.Using<IImageBlobManager>(el => RemoveFromCloudRepositoryInternal(el, immagine)); }
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)); }); }