Beispiel #1
0
        private async Task RegisterBandTileInternalAsync(IBandClient client)
        {
            await this.UnRegisterBandTileInternalAsync(client);

            var bandHardwareVersion = int.Parse(await client.GetHardwareVersionAsync());

            if (bandHardwareVersion < 20)
                throw new CTimeException(CTime2CoreResources.Get("BandService.OnlyBand2Supported"));

            var availableTileCount = await client.TileManager.GetRemainingTileCapacityAsync();

            if (availableTileCount == 0)
                throw new CTimeException(CTime2CoreResources.Get("BandService.NoSpaceForBandTile"));

            var tile = new BandTile(BandConstants.TileId)
            {
                SmallIcon = await this.GetBandIcon("TileIcon24px.png"),
                TileIcon = await this.GetBandIcon("TileIcon48px.png"),
                Name = "c-time"
            };

            var testConnectionPageLayout = new TestConnectionPageLayout();
            tile.PageLayouts.Add(testConnectionPageLayout.Layout);

            var stampPageLayout = new StampPageLayout();
            tile.PageLayouts.Add(stampPageLayout.Layout);

            var startPageLayout = new StartPageLayout();
            tile.PageLayouts.Add(startPageLayout.Layout);

            await client.TileManager.AddTileAsync(tile);

            await this.ChangeTileDataToLoadingAsync(client);

            await client.SubscribeToBackgroundTileEventsAsync(tile.TileId);
        }
Beispiel #2
0
        private async Task ChangeTileDataToReadyAsync(IBandClient client)
        {
            var loggedIn = this._applicationStateService.GetCurrentUser() != null;
            bool checkedIn = loggedIn
                ? await this._cTimeService.IsCurrentlyCheckedIn(this._applicationStateService.GetCurrentUser().Id)
                : false;
            
            var startPageLayout = new StartPageLayout
            {
                CTimeTextBlockData = { Text = CTime2CoreResources.Get("BandService.ApplicationName") },
                LoadingTextBlockData = { Text = loggedIn ? CTime2CoreResources.Get("BandService.Ready") : CTime2CoreResources.Get("BandService.Error") },
                PleaseWaitTextBlockData = { Text = loggedIn  ? string.Empty : CTime2CoreResources.Get("BandService.NotLoggedIn") },
            };
            var stampPageLayout = new StampPageLayout
            {
                StampTextBlockData = { Text = CTime2CoreResources.Get("BandService.Stamp") },
                StampTextButtonData =
                {
                    Text = checkedIn 
                        ? CTime2CoreResources.Get("BandService.CheckOut") 
                        : CTime2CoreResources.Get("BandService.CheckIn")
                }
            };
            var testConnectionPageLayout = new TestConnectionPageLayout
            {
                ConnectionTextBlockData = {Text = CTime2CoreResources.Get("BandService.Connection") },
                TestTextButtonData = {Text = CTime2CoreResources.Get("BandService.Test") }
            };

            await this.ChangeTileData(client, startPageLayout, stampPageLayout, testConnectionPageLayout);
        }
Beispiel #3
0
 private async Task ChangeTileData(IBandClient client, StartPageLayout startPage, StampPageLayout stampPage, TestConnectionPageLayout testConnectionPage)
 {
     await client.TileManager.SetPagesAsync(BandConstants.TileId,
         new PageData(BandConstants.TestConnectionPageId, 0, testConnectionPage.Data.All),
         new PageData(BandConstants.StampPageId, 1, stampPage.Data.All),
         new PageData(BandConstants.StartPageId, 2, startPage.Data.All));
 }
Beispiel #4
0
        private async Task ChangeTileDataToLoadingAsync(IBandClient client)
        {
            var startPageLayout = new StartPageLayout
            {
                CTimeTextBlockData = { Text = CTime2CoreResources.Get("BandService.ApplicationName") },
                LoadingTextBlockData = { Text = CTime2CoreResources.Get("BandService.Loading") },
                PleaseWaitTextBlockData = { Text = CTime2CoreResources.Get("BandService.PleaseWait") },
            };
            var stampPageLayout = new StampPageLayout
            {
                StampTextBlockData = {Text = CTime2CoreResources.Get("BandService.Stamp") },
                StampTextButtonData = {Text = string.Empty}
            };
            var testConnectionPageLayout = new TestConnectionPageLayout
            {
                ConnectionTextBlockData = { Text = CTime2CoreResources.Get("BandService.Connection") },
                TestTextButtonData = { Text = string.Empty }
            };

            await this.ChangeTileData(client, startPageLayout, stampPageLayout, testConnectionPageLayout);
        }