async Task checkSqliteState()
 {
     if (sqliteManager.ItemCount() != SaveUserData.userBadge && SaveUserData.userBadge != 0)
     {
         var list = (await getAnnounData(OrderChild.key.ToString(), "", OrderChild.key, SaveUserData.userBadge)).ToList();
         sqliteManager.Insert(list);
     }
 }
示例#2
0
        void HandleNotificationOpened(Com.OneSignal.Abstractions.OSNotificationOpenedResult result)
        {
            if (string.IsNullOrEmpty(SaveUserData.userKey))
            {
                MainPage = new LoginPage();
            }
            else
            {
                //uygulama kapalıyken kısım
                try
                {
                    data     = result.notification.payload.additionalData["key"].ToString();
                    category = Convert.ToInt32(result.notification.payload.additionalData["type"].ToString());
                    SaveUserData.userBadge += 1;
                    sqliteConnection.Insert(data);
                    //SaveUserData.userBadge -= 1;
                    switch (category)
                    {
                    case (int)PushCategory.activities:
                        MessagingCenter.Send <App, string>(this, MCenter.dataActivity.ToString(), data);
                        break;

                    case (int)PushCategory.announcements:
                        MessagingCenter.Send <App, string>(this, MCenter.dataNotify.ToString(), data);
                        break;

                    case (int)PushCategory.survey:
                        Current.MainPage.Navigation.PushModalAsync(new NavigationPage(new SurveyPage()));
                        MessagingCenter.Send <App, string>(this, MCenter.dataSurvey.ToString(), data);
                        break;

                    case (int)PushCategory.user_interaction:
                        Current.MainPage.Navigation.PushModalAsync(new NavigationPage(new EventPage()));
                        MessagingCenter.Send <App, string>(this, MCenter.dataUserInteraction.ToString(), data);
                        break;

                    case (int)PushCategory.multiple_choice:
                        Current.MainPage.Navigation.PushModalAsync(new NavigationPage(new EventPage()));
                        MessagingCenter.Send <App, string>(this, MCenter.dataMultipleChoice.ToString(), data);
                        break;
                    }
                }
                catch (System.Exception ex)
                {
                    Debug.Write("Push data error ! " + ex.Message);
                }
            }
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.AddLayout);

            Button   add  = FindViewById <Button>(Resource.Id.add_btn_add);
            EditText name = FindViewById <EditText>(Resource.Id.add_edit_name);
            EditText sex  = FindViewById <EditText>(Resource.Id.add_edit_sex);
            EditText age  = FindViewById <EditText>(Resource.Id.add_edit_age);

            add.Click += (s, e) =>
            {
                SqliteManager <Person> sqlite = new SqliteManager <Person>();

                sqlite.Insert(new Person
                {
                    Name = name.Text,
                    Sex  = sex.Text,
                    Age  = Convert.ToInt32(age.Text)
                });
            };
        }
示例#4
0
    /// <summary>
    /// 新增歌曲資訊至 BeatmapList
    /// </summary>
    /// <param name="packageName">歌曲包名稱</param>
    /// <param name="osuFilePath">.osu檔路徑</param>
    public static int InsertBeatmap(string packageName, string osuFilePath)
    {
        var beatmap = new BeatmapSimple(osuFilePath);

        if (beatmap.General.Mode != 3 || beatmap.Difficulty.CircleSize != 4)
        {
            return(0);
        }
        using (var songList = new SqliteManager(Application.streamingAssetsPath, "GameData.db")
        {
            Table = "BeatmapList"
        })
        {
            using (var dr = songList.Select($"BeatmapID = {beatmap.Metadata.BeatmapID}", "BeatmapID"))
            {
                if (!dr.HasRows)
                {
                    //  MP3 轉 WAV
                    if (Path.GetExtension(beatmap.General.AudioFilename) == ".mp3")
                    {
                        var src = Path.Combine(Application.streamingAssetsPath, "Songs", packageName, beatmap.General.AudioFilename);
                        var dst = Path.ChangeExtension(src, ".wav");
                        beatmap.General.AudioFilename = Path.ChangeExtension(beatmap.General.AudioFilename, ".wav");
                        // 如果該素材尚未轉檔,轉換之
                        if (!File.Exists(dst))
                        {
                            NAudioPlayer.ConvertMp3ToWav(src);
                            // 刪除原始檔
                            File.Delete(src);
                        }
                    }
                    // 新增至資料庫
                    songList.Insert(
                        beatmap.Metadata.BeatmapID,
                        beatmap.Metadata.BeatmapSetID,
                        beatmap.Metadata.Title,
                        beatmap.Metadata.TitleUnicode,
                        beatmap.Metadata.Artist,
                        beatmap.Metadata.ArtistUnicode,
                        beatmap.Metadata.Creator,
                        beatmap.Metadata.Version,
                        packageName,
                        beatmap.Events.Filename,
                        beatmap.General.AudioFilename,
                        Path.GetFileName(osuFilePath)
                        );
                    // 新增至圖譜清單
                    BeatmapTileList.BeatmapTileDatas.Add(new BeatmapTileData(
                                                             beatmap.Metadata.BeatmapID,
                                                             beatmap.Metadata.BeatmapSetID,
                                                             beatmap.Metadata.Title,
                                                             beatmap.Metadata.TitleUnicode,
                                                             beatmap.Metadata.Artist,
                                                             beatmap.Metadata.ArtistUnicode,
                                                             beatmap.Metadata.Creator,
                                                             beatmap.Metadata.Version,
                                                             packageName,
                                                             beatmap.Events.Filename,
                                                             beatmap.General.AudioFilename,
                                                             Path.GetFileName(osuFilePath)
                                                             ));
                    return(1);
                }
            }
            return(0);
        }
    }
示例#5
0
        private async void ShowScanDialog()
        {
            View     view          = View.Inflate(this, Resource.Layout.Scan, null);
            TextView ScaningDetail = view.FindViewById <TextView>(Resource.Id.ScaningDetail);

            AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
            alertDialog.SetView(view)
            .SetCancelable(false)
            .Create();
            AlertDialog show = alertDialog.Show();

            var  token = scanCTS.Token;
            Task t1    = Task.Run(() =>
            {
                try
                {
                    NetworkManager.GetNetworkIpAndMask(out IPAddress ip, out IPAddress sub);
                    var networkAddress = NetworkManager.CalNetworkAddress(ip, sub).ToString();
                    networkAddress     = networkAddress.Substring(0, networkAddress.Length - 1);

                    for (int i = 2; i <= 254; i = i + 1)
                    {
                        string addr   = $"{networkAddress}{i}";
                        UdpClient udp = new UdpClient(addr, 23452);
                        udp.Send(new byte[] { 0 }, 1);
                        ScaningDetail.Text = addr;
                    }
                }
                catch (Exception)
                {
                }
            }, token);

            await t1;

            TaskScheduler csc = TaskScheduler.FromCurrentSynchronizationContext();
            await t1.ContinueWith((t) =>
            {
                var raw = NetworkManager.GetClientMac();

                foreach (var item in raw)
                {
                    DeviceInfo device = new DeviceInfo
                    {
                        Name             = item[0],
                        MacAddress       = item[1],
                        IpAddress        = item[0],
                        BroadcastAddress = NetworkManager.CalBroadcast(IPAddress.Parse(item[0]), NetworkManager.CalSubnetMask(IPAddress.Parse(item[0]))).ToString(),
                        Port             = 7,
                        SendingCount     = 1,
                    };

                    bool isEqual = false;
                    foreach (var d in data)
                    {
                        if (d.IpAddress == device.IpAddress)
                        {
                            isEqual = true;
                        }
                    }
                    if (!isEqual)
                    {
                        sqlite.Insert(device);
                    }
                }

                data               = sqlite.QueryAll();
                adapter            = new DeviceListAdapter(this, Resource.Layout.device_list_item, data);
                DeviceList.Adapter = adapter;

                if (data.Count != 0)
                {
                    DeviceList.Visibility = ViewStates.Visible;
                    Tips.Visibility       = ViewStates.Gone;
                }

                show.Dismiss();
            }, token, TaskContinuationOptions.AttachedToParent, csc);
        }