示例#1
0
        private void UpdateExistingUserDetailsForm_Load(object sender, EventArgs e)
        {
            SetupHelper.SetupAgeGenderControls(rbMale, rbFemale, ddDay, ddMonth, ddYear);
            SetupHelper.SetupGeoDropDowns(ddCountry, ddState, ddTownCity);
            SetupHelper.SetupSocioEconomicDropDowns(ddOccupationSector, ddEmploymentLevel, ddAnnualHouseholdIncome);

            if (!AppDataSingleton.Instance.ExistingUserDetailsDataRetrieved)
            {
                SimpleErrorWrapper wrapper = UpdateDetailsWithExistingData();

                if (wrapper.ErrorStatus == ErrorStatus1.Failure)
                {
                    MessageBox.Show(wrapper.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    _bGeoDropDownsSet = true;
                    return;
                }

                if (!AppDataSingleton.Instance.UserInfoExists)
                {
                    lblSubtitle.Text = "Please enter your details.";
                }

                AppDataSingleton.Instance.ExistingUserDetailsDataRetrieved = true;
            }

            SetupHelper.SetFormControlsToDownloadedDetails(txtFirstName, txtLastName, rbMale, rbFemale, ddDay, ddMonth, ddYear,
                                                           ddCountry, ddState, ddTownCity, ddOccupationSector, ddEmploymentLevel, ddAnnualHouseholdIncome);

            _bGeoDropDownsSet = true;
        }
示例#2
0
        /// <summary>
        /// Adds Uninstall information to an XML file ready to be passed on to the Master Server database
        /// </summary>
        /// <param name="systemPassPhrase">Pass phrase to authenticate across services</param>
        /// <param name="userGUID">The user's unique identifier across the system</param>
        /// <returns>A SimpleErrorWrapper object with the operation result</returns>
        public SimpleErrorWrapper RegisterSoftwareUninstall(string systemPassPhrase, string userGUID, string machineGUID)
        {
            SimpleErrorWrapper simpleErrorWrapper = new SimpleErrorWrapper();

            if (systemPassPhrase != "password")
            {
                simpleErrorWrapper.ErrorCode     = "ERR:001";
                simpleErrorWrapper.Message       = "Authentication failure";
                simpleErrorWrapper.ErrorSeverity = ErrorSeverity.Retriable;
                simpleErrorWrapper.ErrorStatus   = ErrorStatus.Failure;

                return(simpleErrorWrapper);
            }

            string uninstallInfoPath = _machineSpecificDataPath + machineGUID + "\\software_uninstall.dat";

            if (!WriteTextToNewFile(DateTime.Now.ToString(), uninstallInfoPath))
            {
                simpleErrorWrapper.ErrorStatus   = ErrorStatus.Failure;
                simpleErrorWrapper.ErrorSeverity = ErrorSeverity.Retriable;
                simpleErrorWrapper.ErrorCode     = "ERR:005";
                simpleErrorWrapper.Message       = "Uninstall info could not be registered.";

                return(simpleErrorWrapper);
            }

            simpleErrorWrapper.ErrorStatus = ErrorStatus.Success;

            return(simpleErrorWrapper);
        }
示例#3
0
        // new user communication
        private void RegisterUserDetails()
        {
            _bThreadStarted = true;

            string macAddress = SetupHelper.GetMACAddress();

            lock (_lockObj)
            {
                try
                {
                    AppDataSingleton.Instance.SetupLogger.WriteMessage("RegisterUserDetails 2");

                    AppDataSingleton.Instance.SetupLogger.WriteMessage("RegisterUserDetails 3");
                    using (var client = new UserDataManagementClient())
                    {
                        AppDataSingleton.Instance.SetupLogger.WriteMessage("RegisterUserDetails 4");

                        _wrapper = client.RegisterNewUser(AppDataSingleton.Instance.EmailAddress,
                                                          AppDataSingleton.Instance.Password,
                                                          AppDataSingleton.Instance.FirstName,
                                                          AppDataSingleton.Instance.LastName,
                                                          AppDataSingleton.Instance.Gender,
                                                          AppDataSingleton.Instance.DOB,
                                                          true,
                                                          AppDataSingleton.Instance.TownCity,
                                                          AppDataSingleton.Instance.State,
                                                          AppDataSingleton.Instance.Country,
                                                          AppDataSingleton.Instance.OccupationSector,
                                                          AppDataSingleton.Instance.EmploymentLevel,
                                                          AppDataSingleton.Instance.AnnualHouseholdIncome,
                                                          AppDataSingleton.Instance.User.UserGUID,
                                                          AppDataSingleton.Instance.User.MachineGUID,
                                                          AppDataSingleton.Instance.User.SoftwareMajorVersionNumber,
                                                          true,
                                                          AppDataSingleton.Instance.User.SoftwareMinorVersionNumber,
                                                          true,
                                                          macAddress,
                                                          AppDataSingleton.Instance.PCName,
                                                          AppDataSingleton.Instance.ChannelSubscriptionsToUpload,
                                                          "password");
                    }



                    AppDataSingleton.Instance.SetupLogger.WriteMessage("RegisterUserDetails 5");
                }
                catch (System.Net.WebException ex)
                {
                    AppDataSingleton.Instance.SetupLogger.WriteError(ex);
                    _wrapper = SetupHelper.GetGenericErrorConnectingWrapper();
                }
            }
        }
示例#4
0
        private SimpleErrorWrapper UpdateDetailsWithExistingData()
        {
            UserManagementServicesLive.UserInfo userInfo = null;
            SimpleErrorWrapper wrapper = null;

            try
            {
                using (var client = new UserDataManagementClient())
                {
                    wrapper = client.GetExistingUserDetails(AppDataSingleton.Instance.User.UserGUID,
                                                            AppDataSingleton.Instance.Password,
                                                            "password", out userInfo);
                }
            }
            catch (System.Net.WebException ex)
            {
                AppDataSingleton.Instance.SetupLogger.WriteError(ex);
                return(SetupHelper.GetGenericErrorConnectingWrapper());
            }

            if (wrapper.ErrorStatus == ErrorStatus1.Failure)
            {
                return(wrapper);
            }

            if (string.IsNullOrEmpty(userInfo.Gender))
            {
                AppDataSingleton.Instance.UserInfoExists = false;
            }
            else
            {
                AppDataSingleton.Instance.UserInfoExists = true;
            }

            AppDataSingleton.Instance.FirstName             = userInfo.FirstName;
            AppDataSingleton.Instance.LastName              = userInfo.LastName;
            AppDataSingleton.Instance.Gender                = userInfo.Gender;
            AppDataSingleton.Instance.DOB                   = userInfo.DOB;
            AppDataSingleton.Instance.DOBDay                = userInfo.DOB.Day;
            AppDataSingleton.Instance.DOBMonth              = userInfo.DOB.Month;
            AppDataSingleton.Instance.DOBYear               = userInfo.DOB.Year;
            AppDataSingleton.Instance.TownCity              = userInfo.TownCity;
            AppDataSingleton.Instance.State                 = userInfo.State;
            AppDataSingleton.Instance.Country               = userInfo.Country;
            AppDataSingleton.Instance.OccupationSector      = userInfo.OccupationSector;
            AppDataSingleton.Instance.EmploymentLevel       = userInfo.EmploymentLevel;
            AppDataSingleton.Instance.AnnualHouseholdIncome = userInfo.AnnualHouseholdIncome;

            return(wrapper);
        }
示例#5
0
 private void CheckIfEmailForNewUserAlreadyExists()
 {
     lock (_lockObj)
     {
         try
         {
             using (var client = new UserDataManagementClient())
             {
                 _wrapper = client.CheckEmailAddressExists(txtEmailAddressNew.Text.Trim(), "password");
             }
         }
         catch (System.Net.WebException ex)
         {
             AppDataSingleton.Instance.SetupLogger.WriteError(ex);
             _wrapper = SetupHelper.GetGenericErrorConnectingWrapper();
         }
     }
 }
示例#6
0
 private void SendEmailReminder()
 {
     lock (_lockObj)
     {
         try
         {
             using (var client = new UserDataManagementClient())
             {
                 _wrapper = client.SendEmailReminder(AppDataSingleton.Instance.EmailAddress, "password");
             }
         }
         catch (System.Net.WebException ex)
         {
             AppDataSingleton.Instance.SetupLogger.WriteError(ex);
             _wrapper = SetupHelper.GetGenericErrorConnectingWrapper();
             return;
         }
     }
 }
示例#7
0
        private void CheckUserDetails()
        {
            string userGUID = null;

            lock (_lockObj)
            {
                try
                {
                    string url = SetupHelper.GetResponsiveServer(ServerType.MasterGetConfig, "masterConfig", "UserManagementServices.svc");

                    if (string.IsNullOrEmpty(url))
                    {
                        AppDataSingleton.Instance.SetupLogger.WriteTimestampedMessage("Checking user details - Couldn't find a responsive url.");
                        _wrapper = SetupHelper.GetGenericErrorConnectingWrapper();
                        return;
                    }

                    using (var client = new UserDataManagementClient())
                    {
                        client.Url = url;

                        _wrapper = client.GetUserExistsByUserCredentials(txtEmailAddressExisting.Text.Trim(),
                                                                         txtPasswordExisting.Text.Trim(),
                                                                         "password",
                                                                         out userGUID);
                    }
                }
                catch (System.Net.WebException ex)
                {
                    AppDataSingleton.Instance.SetupLogger.WriteError(ex);

                    _wrapper = SetupHelper.GetGenericErrorConnectingWrapper();
                    return;
                }


                if (_wrapper.ErrorStatus == Setup.UserManagementServicesLive.ErrorStatus1.Success)
                {
                    AppDataSingleton.Instance.User.UserGUID = userGUID;
                }
            }
        }
示例#8
0
        private void UpdateUserSubscriptions()
        {
            _bThreadStarted = true;

            lock (_lockObj)
            {
                try
                {
                    using (var client = new UserDataManagementClient())
                    {
                        _wrapper = client.EditSubscriptions(_userGUID, _pcGUID,
                                                            AppDataSingleton.Instance.ChannelSubscriptionsToUpload, "password");
                    }
                }
                catch (System.Net.WebException ex)
                {
                    AppDataSingleton.Instance.SetupLogger.WriteError(ex);
                    _wrapper = SetupHelper.GetGenericErrorConnectingWrapper();
                }
            }
        }
示例#9
0
        public SimpleErrorWrapper SetCurrentVersionInfo(string userGUID,
                                                        string machineGUID,
                                                        string version,
                                                        string systemPassPhrase)
        {
            SimpleErrorWrapper simpleErrorWrapper = new SimpleErrorWrapper();

            if (systemPassPhrase != _systemPassPhrase)
            {
                simpleErrorWrapper.ErrorCode     = "ERR:001";
                simpleErrorWrapper.Message       = "Authentication failure";
                simpleErrorWrapper.ErrorSeverity = ErrorSeverity.Retriable;
                simpleErrorWrapper.ErrorStatus   = ErrorStatus.Failure;

                return(simpleErrorWrapper);
            }

            var clientDataLogger = new ClientDataLogger();

            try
            {
                clientDataLogger.LogLatestSoftwareVersionInfo(_softwareVersionInfoLogger, machineGUID, version);
            }
            catch (Exception ex)
            {
                _applicationLog.Error("Software version info could not be registered: " + ex);

                simpleErrorWrapper.ErrorStatus   = ErrorStatus.Failure;
                simpleErrorWrapper.ErrorSeverity = ErrorSeverity.Retriable;
                simpleErrorWrapper.ErrorCode     = "ERR:005";
                simpleErrorWrapper.Message       = "Software version info could not be registered.";

                return(simpleErrorWrapper);
            }

            simpleErrorWrapper.ErrorStatus = ErrorStatus.Success;

            return(simpleErrorWrapper);
        }
示例#10
0
        private static bool SendDetails()
        {
            SimpleErrorWrapper wrapper = null;

            try
            {
                using (var client = new UserDataManagementClient())
                {
                    wrapper = client.SyncWithServerNoPersonalDetails(AppDataSingleton.Instance.User.UserGUID,
                                                                     AppDataSingleton.Instance.User.MachineGUID,
                                                                     AppDataSingleton.Instance.ChannelSubscriptionsToUpload,
                                                                     AppDataSingleton.Instance.User.SoftwareMajorVersionNumber,
                                                                     true,
                                                                     AppDataSingleton.Instance.User.SoftwareMinorVersionNumber,
                                                                     true,
                                                                     Environment.MachineName,
                                                                     null,
                                                                     "password");
                }
            }
            catch (System.Net.WebException ex)
            {
                AppDataSingleton.Instance.SetupLogger.WriteError(ex);

                return(false);
            }

            if (wrapper.ErrorStatus != ErrorStatus1.Success)
            {
                AppDataSingleton.Instance.SetupLogger.WriteTimestampedMessage("Send Details failed: message: " + wrapper.Message);
                return(false);
            }

            AppDataSingleton.Instance.SetupLogger.WriteTimestampedMessage("Send Details: success");

            return(true);
        }
示例#11
0
        internal static void Uninstall()
        {
            string userGUID         = null;
            string machineGUID      = null;
            string dataSettingsPath = null;
            string binaryPath       = null;

            if (!SetupHelper.GetValuesFromRegistry(ref userGUID, ref machineGUID, ref dataSettingsPath, ref binaryPath))
            {
                return;
            }

            SimpleErrorWrapper wrapper = SetupHelper.SendUninstallInfo(userGUID, machineGUID);

            if (wrapper.ErrorStatus != Setup.UserManagementServicesLive.ErrorStatus1.Success)
            {
                return;
            }

            ScreenSaver.SetScreenSaverActive(0);
            SetupHelper.KillApplications();
            UninstallMSI();
            SetupHelper.RemoveAllFiles(binaryPath + "bin", SetupHelper.GetSystemDirectory(), dataSettingsPath);
        }