public async Task <ActionResult> SalvaDados() { String status = "1"; try { String name = Request.Form["fileName"]; int fileApplicationId = Convert.ToInt32(Request.Form["fileApplicationId"]); String folders = Request.Form["fileFolders"]; String fileName = Request.Form["fileName"]; String fileFileName = Request.Form["fileFileName"]; IFormFileCollection files = Request.Form.Files; GALibrary.Models.File file = new GALibrary.Models.File(); file.ApplicationId = fileApplicationId; file.Date = DateTime.Now; file.User = User.Identity.Name; file.Enable = true; file.FileName = fileFileName; file.FilesRemoved = false; file.Name = name; _context.File.Add(file); await _context.SaveChangesAsync(); _context.Entry(file).GetDatabaseValues(); List <FileFolder> fileFolderList = new List <FileFolder>(); foreach (String folder in folders.TrimEnd().Split(' ')) { FileFolder fileFolder = new FileFolder(); fileFolder.ApplicationId = fileApplicationId; fileFolder.FolderId = Convert.ToInt32(folder); fileFolder.FileId = file.Id; fileFolderList.Add(fileFolder); } _context.FileFolder.AddRange(fileFolderList); await _context.SaveChangesAsync(); await Lib.GAClass.SaveFiles(files, file.Id, "File", 2, _context.Parameter.FirstOrDefault()); GALibrary.GALogs.SaveLog("File", "Fim do cadastro de arquivos " + file.Name + " pelo usuario " + User.Identity.Name, 2, _context.Parameter.FirstOrDefault()); } catch (Exception erro) { GALibrary.GALogs.SaveLog("File", "Erro ao cadastrar arquivo pelo usuario " + User.Identity.Name + ": " + erro.ToString(), 1, _context.Parameter.FirstOrDefault()); status = erro.ToString(); } return(Json(new { status = status })); }
private String GetUpdateStepsString(List <UpdateSteps> steps) { String stepResult = ""; foreach (UpdateSteps step in steps) { int order = step.Order + 1; try { switch (step.Type) { case 1: FileDelete fileDelete = _context.FileDelete.Find(step.ProcessId); stepResult += order + " - Arquivos para apagar - " + "<a href = \"/filesDelete/Details/" + fileDelete.Id + "\" >" + fileDelete.Name + "</a>" + "<br />"; break; case 2: GALibrary.Models.File file = _context.File.Find(step.ProcessId); stepResult += order + " - Arquivos para copiar - " + "<a href = \"/files/Details/" + file.Id + "\" >" + file.Name + "</a>" + "<br />"; break; case 3: Command command = _context.Command.Find(step.ProcessId); stepResult += order + " - Comandos - " + "<a href = \"/commands/Details/" + command.Id + "\" >" + command.Name + "</a>" + "<br />"; break; case 4: Service serviceStart = _context.Service.Find(step.ProcessId); stepResult += order + " - Serviço iniciar - " + "<a href = \"/services/Details/" + serviceStart.Id + "\" >" + serviceStart.Name + "</a>" + "<br />"; break; case 5: Service serviceStop = _context.Service.Find(step.ProcessId); stepResult += order + " - Serviço parar - " + "<a href = \"/services/Details/" + serviceStop.Id + "\" >" + serviceStop.Name + "</a>" + "<br />"; break; case 6: SQL sql = _context.SQL.Find(step.ProcessId); stepResult += order + " - SQL - " + "<a href = \"/sqls/Details/" + sql.Id + "\" >" + sql.Name + "</a>" + "<br />"; break; } } catch { stepResult += order + " - Processo apagado do banco" + "<br />"; } } if (stepResult.Length > 6) { return(stepResult.Substring(0, stepResult.Length - 6)); } return(stepResult); }
public async Task AtualizaSteps(String[] updateProcessSelected, int updateGAId) { int i = 0; List <UpdateSteps> updateStepsList = new List <UpdateSteps>(); foreach (String process in updateProcessSelected) { String[] option = process.Split('-'); int type = Convert.ToInt32(option[0].Trim()); int processId = Convert.ToInt32(option[1].Trim()); UpdateSteps updateSteps = new UpdateSteps(); updateSteps.Order = i; updateSteps.ProcessId = processId; updateSteps.Type = type; updateSteps.UpdateId = updateGAId; i++; //Caso seja anexado um arquivo para apagar, copiar ou um SQL desativa o mesmo para não aparecer mais na seleção. if (type == 1) { FileDelete fileDelete = _context.FileDelete.Find(processId); fileDelete.Enable = false; _context.Update(fileDelete); await _context.SaveChangesAsync(); } if (type == 2) { GALibrary.Models.File file = _context.File.Find(processId); file.Enable = false; _context.Update(file); await _context.SaveChangesAsync(); } if (type == 6) { SQL sql = _context.SQL.Find(processId); sql.Enable = false; _context.Update(sql); await _context.SaveChangesAsync(); } updateStepsList.Add(updateSteps); } await _context.UpdateSteps.AddRangeAsync(updateStepsList); await _context.SaveChangesAsync(); }
public ActionResult DownloadFile(int fileId) { GALibrary.Models.File file = _context.File.Find(fileId); var content_type = "application/zip"; try { GALibrary.GALogs.SaveLog("File", "Realizado download do arquivo " + file.Name + " pelo usuario " + User.Identity.Name, 2, _context.Parameter.FirstOrDefault()); return(File(Lib.GAClass.GetFile(fileId), content_type, file.FileName)); } catch (Exception erro) { GALibrary.GALogs.SaveLog("File", "Erro ao fazer download arquivo com " + fileId + " pelo usuario " + User.Identity.Name + " erro: " + erro.ToString(), 1, _context.Parameter.FirstOrDefault()); content_type = "text/txt"; byte[] byteArray = Encoding.UTF8.GetBytes(erro.ToString()); Stream stream = new MemoryStream(byteArray); return(File(stream, content_type, "Erro.txt")); } }
public async Task <IActionResult> Edit(int id, [Bind("Id,Name,ApplicationId,User,Date,FileName,Enable,FilesRemoved")] GALibrary.Models.File file, int[] FileFolder, int ApplicationIdFile, IFormFileCollection FilesFiles, String FilesNameOld) { Boolean valida = true; Parameter parameter = _context.Parameter.FirstOrDefault(); if (id != file.Id) { return(NotFound()); } try { file.Date = DateTime.Now; file.User = User.Identity.Name; file.ApplicationId = ApplicationIdFile; if (FileFolder.Length == 0) { valida = false; ViewBag.ErroPastas = "É necessário selecionar ao menos uma pasta, o status original foi restaurado"; } if (ModelState.IsValid && valida) { if (FilesFiles.Count > 0) { try { GALibrary.GAFiles.DeleteFiles(file.Id, file.Date, 2, parameter); await Lib.GAClass.SaveFiles(FilesFiles, file.Id, "File", 2, _context.Parameter.FirstOrDefault()); String fileName = FilesFiles[0].FileName; file.FileName = fileName.Substring(fileName.LastIndexOf("\\") + 1); GALibrary.GALogs.SaveLog("File", "Novos arquivos salvos pelo usuario " + User.Identity.Name + " ao editar " + file.Name, 2, _context.Parameter.FirstOrDefault()); } catch (Exception erro) { GALibrary.GALogs.SaveLog("File", "Erro ao salvar novos arquivos pelo usuario " + User.Identity.Name + " ao editar o " + file.Name + " erro: " + erro.ToString(), 1, _context.Parameter.FirstOrDefault()); valida = false; } } if (valida) { _context.Update(file); await _context.SaveChangesAsync(); List <FileFolder> folderSavedList = _context.FileFolder.Where(x => x.FileId == file.Id).ToList(); if (FileFolder != null) { List <FileFolder> lista = new List <FileFolder>(); _context.File.Attach(file); _context.Entry(file).Collection(x => x.FileFolder).Load(); foreach (int idFolder in FileFolder) { FileFolder filefolders = folderSavedList.Where(x => x.FolderId == idFolder).FirstOrDefault(); if (filefolders == null) { filefolders = new FileFolder(); filefolders.ApplicationId = file.ApplicationId; filefolders.FileId = file.Id; filefolders.FolderId = idFolder; } lista.Add(filefolders); } var apagar = file.FileFolder.Except(lista).ToList(); var novos = lista.Except(file.FileFolder).ToList(); if (novos.Count != 0) { foreach (FileFolder filefolders in novos) { _context.FileFolder.Add(filefolders); } } if (apagar.Count != 0) { foreach (FileFolder filefolders in apagar) { _context.FileFolder.Remove(filefolders); } } } else { foreach (FileFolder filefolders in _context.FileFolder.ToList()) { _context.FileFolder.Remove(filefolders); } } _context.SaveChanges(); } GALibrary.GALogs.SaveLog("File", "Fim da edicao do arquivo " + file.Name + " realizada pelo usuario " + User.Identity.Name, 2, _context.Parameter.FirstOrDefault()); return(RedirectToAction(nameof(Index))); } var folderIDs = _context.FileFolder.Where(x => x.FileId == id).Select(x => x.FolderId); ViewBag.FileFolderEsquerda = new MultiSelectList(_context.Folder.Where(x => x.ApplicationId == file.ApplicationId && !folderIDs.Contains(x.Id)), "Id", "Path"); ViewBag.FileFolderDireita = new MultiSelectList(_context.Folder.Where(x => folderIDs.Contains(x.Id)), "Id", "Path"); ViewBag.EnabledFile = new SelectList(new[] { new { ID = true, Name = "Sim" }, new { ID = false, Name = "Não" }, }, "ID", "Name", file.Enable); ViewBag.ApplicationIdFile = new SelectList(_context.Application.Where(x => x.Enable).OrderBy(x => x.Name), "Id", "Name", file.ApplicationId); return(View(file)); } catch (Exception erro) { GALibrary.GALogs.SaveLog("File", "Erro ao editar arquivo com id " + id + " pelo usuario " + User.Identity.Name + ": " + erro.ToString(), 1, _context.Parameter.FirstOrDefault()); return(View("~/Views/Shared/Error.cshtml")); } }