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); } }
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); } }