public void deleteAllegato(AllegatoViaggio allegato) { try { // questo serve altrimenti cerca di cancellare anche il viaggio allegato.Viaggio = null; base.delete<AllegatoViaggio>(allegato); } catch (Exception ex) { string msg = String.Format("Errore durante la cancellazione dell'allegato ", allegato); logger.ErrorException(msg, ex); throw new Exception(msg, ex); } }
public ActionResult Save(Viaggio viaggio) { if (ModelState.IsValid) { Viaggio oldViaggio = vr.GetById(viaggio.Id); if (oldViaggio != null) { viaggio.Tappe = oldViaggio.Tappe; viaggio.Depliant = oldViaggio.Depliant; viaggio.PromoImage = oldViaggio.PromoImage; } viaggio.Agenzia = Session.getLoggedAgenzia(); // Gestione depliant e immagine promozionale if (Request.Files != null) { foreach (string fileName in Request.Files) { HttpPostedFileBase file = Request.Files[fileName] as HttpPostedFileBase; if (file.ContentLength == 0) continue; if (vm.isValidDepliantMimeType(file.FileName)) { logger.Info("Caricamento depliant per il viaggio {0}", viaggio); Int32 length = file.ContentLength; byte[] rawFile = new byte[length]; file.InputStream.Read(rawFile, 0, length); var allegato = new AllegatoViaggio() { RawFile = rawFile, NomeFile = file.FileName, Viaggio = viaggio }; viaggio.Depliant = allegato; } if (vm.isValidImageMimeType(file.FileName)) { logger.Info("Caricamento immagine promozionale per il viaggio {0}", viaggio); Int32 length = file.ContentLength; byte[] rawFile = new byte[length]; file.InputStream.Read(rawFile, 0, length); var allegato = new AllegatoViaggio() { RawFile = rawFile, NomeFile = file.FileName, Viaggio = viaggio }; viaggio.PromoImage = allegato; } } } vm.Save(viaggio); if (viaggio.Tappe != null && viaggio.Tappe.Count > 1 && viaggio.Tappe.SingleOrDefault(t => t.Tipo == TipoTappa.DESTINAZIONE) != null) { logger.Debug("Il percorso del viaggio è stato definito, per cui lo si redirige alla pagina di dettaglio per verifica"); return RedirectToAction("Detail", new { id = viaggio.Id }); } } return RedirectToAction("Edit", new { id = viaggio.Id }); }
private void SaveAllegato(AllegatoViaggio allegato, Func<string> getFolder) { string fileName = String.Format("{0}.{1}", allegato.Id, allegato.NomeFile); logger.Debug("Nome con cui verrà salvato l'allegato: {0}", fileName); string fullPath = getFolder(); logger.Debug("Il file verrà salvato in {0}", fullPath); string fullPathFileName = System.IO.Path.Combine(fullPath, fileName); System.IO.File.WriteAllBytes(fullPathFileName, allegato.RawFile); logger.Info("Allegato salvato in {0}", fullPathFileName); allegato.FullName = fullPathFileName; }
private void DeleteAllegato(Viaggio viaggio, AllegatoViaggio targetAllegato) { using (var om = new OperationManager()) { try { var session = om.BeginOperation(); var fullImgPath = targetAllegato.FullName; System.IO.File.Delete(fullImgPath); vr.Save(viaggio); vr.deleteAllegato(targetAllegato); om.CommitOperation(); } catch (Exception ex) { om.RollbackOperation(); string msg = String.Format("Impossibile eliminare l'allegato {0}", targetAllegato.Id); logger.ErrorException(msg, ex); throw new Exception(msg, ex); } } }