private void loadAddOnsData_dataArrived(object sender, string requestData, Dictionary <string, string> misc) { if (!ManagementNetwork.IsResponseOk(requestData)) { changeDataLoadedState(false, LOAD_ADDONS); enVars.stateErrorMessage = ManagementNetwork.GetMessage(requestData); enVars.addonsLoaded = false; return; } try { var jsonLatResult = JsonConvert.DeserializeObject <Dictionary <string, object> >(requestData); if (jsonLatResult.ContainsKey("addons")) { var Jaddons = JArray.Parse(jsonLatResult["addons"].ToString()); foreach (var Jaddon in Jaddons) { var addonItem = new Dictionary <string, string>(); addonItem.Add("url", (string)Jaddon["url"]); addonItem.Add("name", (string)Jaddon["name"]); enVars.addons.Add((string)Jaddon["type"], addonItem); } enVars.addonsLoaded = true; } } catch (Exception ex) { enVars.addonsLoaded = false; enVars.stateErrorMessage = ex.ToString(); } changeDataLoadedState(false, LOAD_ADDONS); }
private void loadCloudSettingsData_dataArrived(object sender, string responseData, Dictionary <string, string> misc) { bool errorFlag = false; string errorMsg = ""; if (!ManagementNetwork.IsResponseOk(responseData)) { errorMsg = ManagementNetwork.GetMessage(responseData); errorFlag = true; goto Lastline; } Dictionary <string, List <string> > DBsettings; DBsettings = loadCloudSettingsData.ConvertDataToArray("settings", state.querySettingsFields, responseData); if (Information.IsNothing(DBsettings)) { errorMsg = loadCloudSettingsData.errorMessage; errorFlag = true; goto Lastline; } state.maxWorkHoursDay = TimeSpan.Parse(DBsettings["work_hours"][0]); state.delayDaysValidationAttendance = Conversions.ToInteger(DBsettings["max_days_delay_validation"][0]); state.customization.businessname = DBsettings["company_name"][0]; Lastline: ; if (errorFlag) { var MsgBox = new messageBoxForm(errorMsg + ". " + My.Resources.strings.tryAgain + " ?", My.Resources.strings.question, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (MsgBox.ShowDialog() == DialogResult.Yes) { loadServerSettings(); } else { loginError?.Invoke(this, errorMsg); } return; } LoadingCounter += 1; updatePrgressBar?.Invoke(this, (int)(LoadingCounter / (double)LoadingCounterTotalTasks * 100)); updateStatusMessage?.Invoke(this, "Loading cloud settings...done"); taskManager.setStatus("loadServerSettings", Conversions.ToInteger(tasksManager.tasksManagerClass.FINISHED)); }
private void loadLoginData_dataArrived(object sender, string responseData, Dictionary <string, string> misc) { if (!ManagementNetwork.IsResponseOk(responseData)) { loginError?.Invoke(this, ManagementNetwork.GetMessage(responseData)); return; } dynamicAssembliesToLoad = new List <string>(); try { var data = JsonConvert.DeserializeObject <Dictionary <string, object> >(responseData); // USER CREDENTIALS state.userType = data["type"].ToString(); state.userConnType = data["conntype"].ToString(); state.username = data["username"].ToString(); // USER PROFILE PHOTO if (data.ContainsKey("photo")) { state.userPhoto = Conversions.ToString(data["photo"]); } // PROGRAM UPDATE STAUTS if (data.ContainsKey("status")) { var jsonPuStatus = JsonConvert.DeserializeObject <Dictionary <string, object> >(data["status"].ToString()); programUpdateStatus.Add("version", jsonPuStatus["version"].ToString()); programUpdateStatus.Add("url", jsonPuStatus["url"].ToString()); programUpdateStatus.Add("changelog", jsonPuStatus["changelog"].ToString()); programUpdateStatus.Add("checksum", jsonPuStatus["checksum"].ToString()); programUpdateStatus.Add("mandatory", jsonPuStatus["mandatory"].ToString()); } // LOAD DYNAMIC ASSEMBLIES if (data.ContainsKey("dlls") & state.customization.hasDynamicAssemblies) { var DllsJson = JArray.Parse(data["dlls"].ToString()); for (int i = 0, loopTo = DllsJson.Count - 1; i <= loopTo; i++) { dynamicAssembliesToLoad.Add(DllsJson[i].ToString()); } } } catch (Exception ex) { state.successLogin = false; state.userId = ""; // 'TODO message error loginError?.Invoke(this, ""); return; } finally { state.userId = cardId; // TODO // add raise event here to load TOTP dialog for code verification // in case of needed to download dynamic assemblies outside the assemblies defined as static if (state.customization.hasDynamicAssemblies) { } else { // only static assemblies state.successLogin = true; } } // ÇONTINUE LOADING ========================================= // 'DEFINE TASKS TO DO { var withBlock = taskManager; withBlock.registerTask("loadEnvironmentVarsFromCloud", Conversions.ToInteger(tasksManager.tasksManagerClass.TO_START)); withBlock.registerTask("loadServerSettings", Conversions.ToInteger(tasksManager.tasksManagerClass.TO_START)); withBlock.registerTask("sendCrashReports", Conversions.ToInteger(tasksManager.tasksManagerClass.TO_START)); withBlock.registerTask("loadCloudFiles", Conversions.ToInteger(tasksManager.tasksManagerClass.TO_START)); withBlock.registerTask("checkUpdates", Conversions.ToInteger(tasksManager.tasksManagerClass.TO_START)); } taskManager.startListening(); updatePrgressBar?.Invoke(this, 0); // Calculating number of tasks to do LoadingCounter = 0; var crashFile = new FileInfo(Path.Combine(state.basePath, "crash.log")); crashFile.Refresh(); if (crashFile.Exists & state.SendDiagnosticData) { LoadingCounterTotalTasks = dynamicAssembliesToLoad.Count + state.authorizedFileTemplates.Count + 3; } else { LoadingCounterTotalTasks = dynamicAssembliesToLoad.Count + state.authorizedFileTemplates.Count + 2; } // ' in between load settings from cloud loadEnvironmentVarsFromCloud(); loadServerSettings(); sendCrashReports(); loadCloudFiles(); if (!My.MyProject.Application.Info.Version.ToString().Equals(programUpdateStatus["version"]) & programUpdateStatus["mandatory"].Equals("true")) { updateStatusMessage?.Invoke(this, "checking for updates ..."); getUpdateFile = new HttpDataFilesDownload(state, state.customization.updateServerAddr); getUpdateFile.initialize(); var vars = new Dictionary <string, string>(); vars.Add("key", programUpdateStatus["checksum"]); getUpdateFile.loadQueue(vars, null, state.templatesPath); getUpdateFile.startRequest(); taskManager.setStatus("checkUpdates", Conversions.ToInteger(tasksManager.tasksManagerClass.BUSY)); } }