Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
            }
        }