Exemple #1
0
        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 }));
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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"));
            }
        }
Exemple #5
0
        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"));
            }
        }