Пример #1
0
        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);
            }
        }
Пример #2
0
        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 });
        }
Пример #3
0
 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;
 }
Пример #4
0
 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);
         }
     }
 }