private void btnSelecionarUpdateFile_Click(object sender, EventArgs e) { var op = openFilePkg.ShowDialog(); if (op == DialogResult.OK) { string pkgFile = openFilePkg.FileName; txtUpdateFile.Text = pkgFile; try { var bytesFile = FileManagerIts.GetBytesFromFile(openFilePkg.FileName); this._pacote = SerializeIts.DeserializeObject <Package>(bytesFile); loadPackage(this._pacote); } catch (Exception ex) { string msg = "O pacote de atualização informado é inválido!" + "\n\nContate o administrador para aplicar atualização."; XMessageIts.ExceptionMessageDetails(ex, msg, "Atenção"); LoggerUtilIts.GenerateLogs(ex, msg); } } }
public static void ImportReportFromFiles(params string[] filesReports) { using (var ctx = new ReportContext()) { try { Dictionary <string, bool> importados = new Dictionary <string, bool>(); foreach (var file in filesReports) { var bytesFile = FileManagerIts.GetBytesFromFile(file); var rptDeserializado = SerializeIts.DeserializeObject <ReportImage>(bytesFile); var rptCreateUpdate = ctx.ReportImageDao.Where(r => r.ReportName == rptDeserializado.ReportName) .FirstOrDefault(); //relatorio ja existe if (rptCreateUpdate != null) { var msg = "O relatório selecionado já existe, deseja atualiza-lo?"; var confirm = XMessageIts.Confirmacao(msg); if (confirm == DialogResult.Yes) { rptCreateUpdate.Update(rptDeserializado); var traUpd = ctx.ReportImageDao.Update(rptCreateUpdate); if (traUpd) { XMessageIts.Mensagem("Relatório atualizado com sucesso!"); } } } //relatorio nao existe, entao vai criar else { var newReport = new ReportImage(); newReport.IdGrpReport = rptDeserializado.IdGrpReport; newReport.ReportDescription = rptDeserializado.ReportDescription; newReport.ReportImageData = rptDeserializado.ReportImageData; newReport.ReportName = rptDeserializado.ReportName; importados.Add(newReport.ReportName, ctx.ReportImageDao.Save(newReport)); } } if (importados.Where(i => i.Value == false).Count() == 0) { XMessageIts.Mensagem("Relatórios importado com sucesso!"); } else { XMessageIts.Advertencia("Ocorreram erros ao importar o(s) dashboard(s) !"); } } catch (Exception ex) { XMessageIts.ExceptionMessageDetails(ex, "Falha ao importar o relatório"); } } }
//indexa o form com os dados da licença focused no grid private void indexarForm(ItsLicense itsLicense) { if (itsLicense != null) { var licData = SerializeIts.DeserializeObject <ItsLicenseData>(itsLicense.LicenseData); var clifor = licData.Cliente; var startDate = licData.DataInicioLic; var endDate = licData.DataFimLic; var activeMenus = licData.ActiveMenus; //lookUpCliFor1.FindSetCliFor(clifor.IdCliFor.ToString()); dtStartDate.DateTime = startDate; dtEndDate.DateTime = endDate; gridControlMenusAct.DataSource = activeMenus; } }
public async void Execute(string idtask, CancellationTokenSource cts) { var task = GetTaskById(idtask); if (task != null) { LogIts log; try { var lst = SerializeIts.DeserializeObject <List <TaskParamIts> >(task.Tarefa); //inicia StartTask(task.IdTask, cts); await InsertLogTask(new LogIts(task.IdTask, "Obtendo o tipo...")); // Execute the task //var cl = Assembly.LoadFile(@"C:\Users\Gercy\Documents\TFS_ITsolution\ITE\ITE.Entidades\bin\Debug\ITE.Entidades.dll"); //var qname = typeof(cl.Assembly); var typeName = Type.GetType(task.Classe); object instance = Activator.CreateInstance(typeName, task.IdTask); await InsertLogTask(new LogIts(task.IdTask, "Classe: " + task.Classe)); await InsertLogTask(new LogIts(task.IdTask, "Metodo: " + task.Metodo)); var methodInfo = typeName.GetMethod(task.Metodo); var param = methodInfo.GetParameters(); int i = 0; List <TaskParamIts> parametrosTask = SerializeIts.DeserializeObject <List <TaskParamIts> >(task.Tarefa); dynamic[] parmOrigs22 = new dynamic[parametrosTask.Count]; await InsertLogTask(new LogIts(task.IdTask, "Parametros:")); foreach (var item in parametrosTask) { if (item.ParameterValue.ToString() == "System.Threading.CancellationTokenSource") { parmOrigs22[i] = cts; } else { log = new LogIts(task.IdTask, Thread.CurrentThread.ManagedThreadId.ToString(), item.ParameterName.ToString() + ": " + item.ParameterValue.ToString(), String.Empty); //insere log await InsertLogTask(log); var stp = item.ParameterType.AssemblyQualifiedName; var tp = Type.GetType(stp); parmOrigs22[i] = item.ParameterValue; //parmOrigs22[i] = Convert.ChangeType(item.ParameterValue, // tp); } i++; } //object[] parmOrigs = new object[] { 1000, task.IdTask, cts }; try { Task t1 = new Task(() => { methodInfo.Invoke(instance, parmOrigs22); }); await Task.Factory.StartNew(() => t1.Start()); Task ok = await Task.WhenAny(t1); if ((ok.IsCompleted && ok.Exception == null) && !cts.IsCancellationRequested) { //Work task await DoWorkTask(task.IdTask); } if (ok.Exception != null) { var msg = ok.Exception.InnerExceptions.First(); throw new Exception(msg.InnerException.Message); } if (cts.IsCancellationRequested) { throw new OperationCanceledException("Operação cancelada."); } } catch (OperationCanceledException exCancel) { log = new LogIts(task.IdTask, Thread.CurrentThread.ManagedThreadId.ToString(), exCancel.Message , "Operacao cancelada"); await InsertLogTask(log); SuspendTask(task.IdTask); } catch (TargetInvocationException tex) { log = new LogIts(task.IdTask, Thread.CurrentThread.ManagedThreadId.ToString(), tex.Message , tex.Message); await InsertLogTask(log); await StoppedTaskException(task.IdTask); } catch (Exception ex) { log = new LogIts(task.IdTask, Thread.CurrentThread.ManagedThreadId.ToString(), ex.Message , ex.Message); await InsertLogTask(log); await StoppedTaskException(task.IdTask); } }//fim try catch (Exception ex) { log = new LogIts(task.IdTask, Thread.CurrentThread.ManagedThreadId.ToString(), ex.Message , ex.Message); await InsertLogTask(log); await StoppedTaskException(task.IdTask); } } }