public ActionResult AddEditArchivoGasto(Int32?ArchivoGastoId, Int32 GastoId, Int32 EdificioId) { AddEditArchivoGastoViewModel ViewModel = new AddEditArchivoGastoViewModel(); ViewModel.ArchivoGastoId = ArchivoGastoId; ViewModel.GastoId = GastoId; ViewModel.EdificioId = EdificioId; ViewModel.Fill(CargarDatosContext()); return(View(ViewModel)); }
public ActionResult AddEditArchivoGasto(AddEditArchivoGastoViewModel ViewModel) { try { using (var transacionscope = new TransactionScope()) { Gasto gasto = context.Gasto.FirstOrDefault(x => x.GastoId == ViewModel.GastoId); string _rutaarchivoserv = Server.MapPath("~") + "\\"; Edificio edificio = context.Edificio.FirstOrDefault(x => x.EdificioId == ViewModel.EdificioId); if (ViewModel.ArchivoGastoId.HasValue) { ArchivoGasto _Archivo = context.ArchivoGasto.FirstOrDefault(x => x.ArchivoGastoId == ViewModel.ArchivoGastoId.Value); var _rutaarchivodir = _rutaarchivoserv + Path.Combine("Resources\\Files", edificio.Acronimo); var auxDir = _rutaarchivodir; _rutaarchivodir = Path.Combine(_rutaarchivodir, _Archivo.Ruta); if (System.IO.File.Exists(_rutaarchivodir)) { var extension = _Archivo.Ruta.Split('.'); var cantPuntos = extension.Count(); var nuevoNombre = ViewModel.Nombre + "." + extension[cantPuntos - 1]; System.IO.File.Move(_rutaarchivodir, Path.Combine(auxDir, nuevoNombre)); _Archivo.Nombre = nuevoNombre;//ViewModel.Nombre; //_Archivo.Ruta = nuevoNombre;//ViewModel.Nombre; //ViewModel.Nombre; } else { PostMessage(MessageType.Warning, "No se encontró ruta " + _rutaarchivodir); _Archivo.Nombre = ViewModel.Nombre; //ViewModel.Nombre; } } else { foreach (var file in ViewModel.Archivo) { ArchivoGasto _Archivo = new ArchivoGasto(); _Archivo.Nombre = ViewModel.DescripcionUnidadMedida + "_" + file.FileName; //ViewModel.Nombre; string _rutaarchivodir = _rutaarchivoserv + Path.Combine("/Resources/Files", edificio.Acronimo); if (!System.IO.Directory.Exists(_rutaarchivodir)) { Directory.CreateDirectory(_rutaarchivodir); } string _nombrearc = ViewModel.DescripcionUnidadMedida + "_" + Guid.NewGuid().ToString().Substring(0, 4) + DateTime.Now.ToString("ddMMyyyyHHmmssfff") + Path.GetExtension(file.FileName);// file.FileName;// + Path.GetExtension(file.FileName); _rutaarchivodir = Path.Combine(_rutaarchivodir, _nombrearc); _Archivo.Ruta = _nombrearc; _Archivo.Estado = ConstantHelpers.EstadoActivo; _Archivo.FechaRegistro = DateTime.Now; _Archivo.GastoId = ViewModel.GastoId; file.SaveAs(_rutaarchivodir); context.ArchivoGasto.Add(_Archivo); } } context.SaveChanges(); transacionscope.Complete(); PostMessage(MessageType.Success); } } catch { InvalidarContext(); PostMessage(MessageType.Error); } return(RedirectToAction("LstArchivoGastoAdmin", new { GastoId = ViewModel.GastoId, EdificioId = ViewModel.EdificioId })); }