public static void SendWarningToast(FluxUser user, ByteSize limit)
        {
            var remainFlux = FluxHelper.GetMaxFlux(user.Flux, user.Balance) - user.Flux;

            if (remainFlux < limit)
            {
                XmlDocument dom = new XmlDocument();
                dom.LoadXml(string.Format(zhCulture, toastWarningText, user.Username, user.Flux, remainFlux));
                ToastNotification notification = new ToastNotification(dom);
                notification.ExpirationTime = DateTimeOffset.Now + TimeSpan.FromMinutes(1);
                ToastNotificationManager.CreateToastNotifier().Show(notification);
            }
        }
Exemple #2
0
        public override async void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
        {
            var            me         = new ComponentName(context, Java.Lang.Class.FromType(typeof(AppWidget)).Name);
            var            widgetView = new RemoteViews(context.PackageName, Resource.Layout.Widget);
            InternetStatus status     = new InternetStatus();
            NetCredential  credential = new NetCredential();

            (credential.Username, credential.Password) = await CredentialStore.LoadCredentialAsync();

            credential.State = await status.SuggestAsync();

            NetXFSettings settings = new NetXFSettings();

            settings.LoadSettings();
            var helper = credential.GetHelper(settings);

            if (helper != null)
            {
                if (settings.BackgroundAutoLogin && !string.IsNullOrEmpty(credential.Username))
                {
                    if (settings.EnableRelogin)
                    {
                        await helper.LogoutAsync();
                    }
                    await helper.LoginAsync();
                }
                FluxUser user = await helper.GetFluxAsync();

                var remainFlux = FluxHelper.GetMaxFlux(user.Flux, user.Balance) - user.Flux;
                widgetView.SetTextViewText(Resource.Id.widgetTitle, $"用户:{user.Username}");
                widgetView.SetTextViewText(Resource.Id.widgetFlux, $"流量:{user.Flux}");
                widgetView.SetTextViewText(Resource.Id.widgetRemain, $"剩余:{remainFlux}");
                widgetView.SetTextViewText(Resource.Id.widgetBalance, string.Format(CultureInfo.GetCultureInfo("zh-CN"), "余额:{0:C2}", user.Balance));
            }
            else
            {
                widgetView.SetTextViewText(Resource.Id.widgetTitle, "暂无流量信息");
                widgetView.SetTextViewText(Resource.Id.widgetFlux, string.Empty);
                widgetView.SetTextViewText(Resource.Id.widgetRemain, string.Empty);
                widgetView.SetTextViewText(Resource.Id.widgetBalance, string.Empty);
            }
            var intent = new Intent(context, typeof(AppWidget));

            intent.SetAction(AppWidgetManager.ActionAppwidgetUpdate);
            intent.PutExtra(AppWidgetManager.ExtraAppwidgetIds, appWidgetIds);
            var piBackground = PendingIntent.GetBroadcast(context, 0, intent, PendingIntentFlags.UpdateCurrent);

            widgetView.SetOnClickPendingIntent(Resource.Id.widgetBackground, piBackground);
            appWidgetManager.UpdateAppWidget(me, widgetView);
        }
        public void CreateQuery()
        {
            string            database = "TestDB";
            TimeSeriesRequest request  = new TimeSeriesRequest()
            {
                MeasurementName = "temperature",
                ValueType       = TimeSeriesValueType.Float,
                Range           = TimeSeriesRange.OneDay,
                Tags            = new Dictionary <string, string>()
                {
                    ["location"] = "Room1"
                }
            };
            FluxHelper fluxHelper = new FluxHelper();

            var result = fluxHelper.CreateQuery(database, request);

            Assert.Equal("from(bucket: \"TestDB\") |> range(start: -1d) |> filter(fn: (r) => r._measurement == \"temperature\" and r.location == \"Room1\")", result);
        }
        protected virtual async Task <LogResponse> RefreshAsync(IConnect helper)
        {
            FluxUser user = default;

            if (helper != null)
            {
                user = await helper.GetFluxAsync();
            }
            OnlineUser = user;
            var remainFlux = FluxHelper.GetMaxFlux(OnlineUser.Flux, OnlineUser.Balance) - OnlineUser.Flux;

            if (Settings.EnableFluxLimit && remainFlux < Settings.FluxLimit)
            {
                return(new LogResponse(false, $"流量仅剩余{remainFlux}"));
            }
            else
            {
                return(new LogResponse(true, string.Empty));
            }
        }
        public static void UpdateTile(FluxUser user)
        {
            XmlDocument dom = new XmlDocument();

            dom.LoadXml(string.Format(tileText, user.Username, user.Flux, user.OnlineTime, user.Balance, FluxHelper.GetMaxFlux(user.Flux, user.Balance) - user.Flux));
            TileNotification notification = new TileNotification(dom);

            notification.ExpirationTime = DateTimeOffset.Now + TimeSpan.FromMinutes(15);
            TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);
        }
Exemple #6
0
 public void MainDocMaterializeFromCard(string path, WcfSiavLoginManager siavLogin, FluxHelper fluxHelper, WcfSiavCardManager siavCardManager, string sGuidCard, out string sPathFileCreated)
 {
     try
     {
         CardBundle oCardModelBundle;
         MainDoc    oMainDocModel;
         // Recupera la scheda ove è stato avviato il processo
         siavCardManager.GetCard(sGuidCard, siavLogin, out oCardModelBundle);
         // Recupera il documento principale della scheda
         siavCardManager.GetMainDoc(oCardModelBundle, out oMainDocModel);
         // Materializza il file sul filesystem
         string sModelDocX = path + @"\" + oMainDocModel.Filename + "_ModelSource." + oMainDocModel.Extension;
         fluxHelper.FileMaterialize(sModelDocX, oMainDocModel.oByte);
         sPathFileCreated = sModelDocX;
     }
     catch (Exception ex)
     {
         throw new ArgumentException(ex.Message);
     }
 }