コード例 #1
0
        public async Task <ProjectActivationState> RequestProjectAccess(string ProjectKey)
        {
            ProjectActivationState ProjectStatus = await IsDeviceAutenticated();

            if (ProjectStatus == ProjectActivationState.Registered)
            {
                ProjectStatus = await IsDeviceEnrolled(ProjectKey);

                if (ProjectStatus == ProjectActivationState.Active)
                {
                    return(ProjectActivationState.Active);
                }
                else
                {
                    return(ProjectStatus);
                }
            }
            else
            {
                return(ProjectStatus);
            }
        }
コード例 #2
0
        public async Task <bool> IsAuthorizated(SqlBase SqlBase)
        {
            try
            {
                if (Tools.Debugging)
                {
                    return(await Task.FromResult(true));
                }
                await Task.Yield();

                DeviceInformation = DeviceInformation.Get(SqlBase);
                bool Autorized = false;
                ProjectActivationState state = ProjectActivationState.Unknown;
                state = await Autheticate(AppName);

                switch (state)
                {
                case ProjectActivationState.Active:
                    Log.Logger.Information("Project is active");
                    Autorized = true;
                    DeviceInformation.LastAuthorizedTime = DateTime.Now;
                    DeviceInformation.Save(SqlBase);
                    break;

                case ProjectActivationState.Expired:
                    this.Reason = "La licencia para usar esta aplicación ha expirado";
                    await Tools.Instance.Dialogs.CustomMessageBox.Show(this.Reason, "Acceso denegado");

                    break;

                case ProjectActivationState.Denied:
                    Log.Logger.Information("Acces denied");
                    this.Reason = "Este dispositivo no cuenta con la licencia para usar esta aplicación";
                    await Tools.Instance.Dialogs.CustomMessageBox.Show(this.Reason, "Acceso denegado");

                    break;

                case ProjectActivationState.LoginRequired:
                    this.Reason = "Este dispositivo debe ser registrado con una licencia valida antes de poder acceder a la aplicación";
                    await Tools.Instance.Dialogs.CustomMessageBox.Show(this.Reason, "Acceso denegado");
                    await OpenRegisterForm();

                    Autorized = await IsAuthorizated(SqlBase);

                    break;

                case ProjectActivationState.ConnectionFailed:
                    this.Reason = "Revise su conexión a internet";
                    await Tools.Instance.Dialogs.CustomMessageBox.Show(this.Reason, "Atención");

                    return(CanBeAuthorizedByTime());
                }
                return(Autorized);
            }
            catch (Exception ex)
            {
                await Kit.Tools.Instance.Dialogs.CustomMessageBox.Show(ex.Message, "Alerta", CustomMessageBoxButton.OK, CustomMessageBoxImage.Error);

                Log.Logger.Error(ex, "Al comprobar la licencia");
                return(false);
            }
        }