public EditDoc(ref SPage page, ref Document document) { viewModel = new EditDocViewModel(page, document); DataContext = viewModel; InitializeComponent(); this.document = document; viewModel.Closing += (s, e) => this.Close(); }
public ActionResult Edit1(int?id, HttpPostedFileBase File, [Bind(Include = "Documento_Id,RuoloId")] DocRuoli docRuoli, [Bind(Include = "Documento_Id,Categoria_Id,Evento_Id,Linea_Id,Sessione_Id,Oratore,Titolo,Descrizione,Data,Riferimento,Lingua,NomeFile")] EditDocViewModel editDoc, params string[] selectedRole) { if (ModelState.IsValid) { Documenti documenti = db.Documentis.Find(id); if (documenti == null) { return(HttpNotFound()); } ViewBag.Categoria_Id = new SelectList(db.Categories, "Categoria_Id", "Categoria", documenti.Categoria_Id); ViewBag.Evento_Id = new SelectList(db.Eventis, "Evento_Id", "Evento", documenti.Evento_Id); ViewBag.Linea_Id = new SelectList(db.Linees, "Linea_Id", "Linea", documenti.Linea_Id); ViewBag.Sessione_Id = new SelectList(db.Sessionis, "Sessione_Id", "Sessione", documenti.Sessione_Id); //Se è selezionato un file lo copio nella cartellla documenti e cancello quello esistente if (File != null) { var filename = Path.GetFileName(File.FileName); var path = Path.Combine(Server.MapPath("~/Content/Documenti/"), documenti.Documento_Id + "_" + filename); var path1 = Path.Combine(Server.MapPath("~/Content/Documenti/"), documenti.Documento_Id + "_" + editDoc.NomeFile); System.IO.File.Delete(path1); File.SaveAs(path); } //Assegno i campi del modelview al db e li salvo documenti.Documento_Id = editDoc.Documento_Id; documenti.Categoria_Id = editDoc.Categoria_Id; documenti.Evento_Id = editDoc.Evento_Id; documenti.Linea_Id = editDoc.Linea_Id; documenti.Sessione_Id = editDoc.Sessione_Id; documenti.Oratore = editDoc.Oratore; documenti.Titolo = editDoc.Titolo; documenti.Descrizione = editDoc.Descrizione; documenti.Data = editDoc.Data; documenti.Riferimento = editDoc.Riferimento; documenti.Lingua = editDoc.Lingua; //imposto il nome file in base a se c'è un file selezionato nel input file if (File != null) { var filename = Path.GetFileName(File.FileName); documenti.NomeFile = filename; } else { documenti.NomeFile = editDoc.NomeFile; } db.Entry(documenti).State = EntityState.Modified; db.SaveChanges(); //Filtro documentoRuoli e cancello quelli relativi al documento var documentoRuoli = db.DocRuolis.Where(d => d.Documento_Id == editDoc.Documento_Id).ToList(); foreach (var itemDel in documentoRuoli) { DocRuoli documentiRuoliDel = db.DocRuolis.Find(itemDel.DocRuoli_Id); db.DocRuolis.Remove(documentiRuoliDel); db.SaveChanges(); } //riscrivo i ruoli assegnati selectedRole = selectedRole ?? new string[] { }; foreach (var item in selectedRole) { docRuoli.Documento_Id = documenti.Documento_Id; docRuoli.RuoloId = item.ToString(); db.DocRuolis.Add(docRuoli); db.SaveChanges(); } return(RedirectToAction("Index")); } return(RedirectToAction("Edit1", "Documentis")); }