Exemple #1
0
        public static AppLinkEntry GetAppLink(this MiniHack miniHack)
        {
            var url = $"http://{AboutThisApp.AppLinksBaseDomain}/{AboutThisApp.MiniHacksSiteSubdirectory.ToLowerInvariant()}/{miniHack.Id}";

            var entry = new AppLinkEntry
            {
                Title        = miniHack.Name ?? "",
                Description  = miniHack.Description ?? "",
                AppLinkUri   = new Uri(url, UriKind.RelativeOrAbsolute),
                IsLinkActive = true
            };

            if (Device.OS == TargetPlatform.iOS)
            {
                if (!string.IsNullOrEmpty(miniHack.BadgeUrl))
                {
                    entry.Thumbnail = ImageSource.FromUri(miniHack.BadgeUri);
                }
                else
                {
                    entry.Thumbnail = ImageSource.FromFile("Icon.png");
                }
            }

            entry.KeyValues.Add("contentType", "Session");
            entry.KeyValues.Add("appName", AboutThisApp.AppName);
            entry.KeyValues.Add("companyName", AboutThisApp.CompanyName);

            return(entry);
        }
        public async Task <ActionResult> DeleteConfirmed(string id)
        {
            MiniHack miniHack = await db.MiniHacks.FindAsync(id);

            miniHack.Deleted         = true;
            db.Entry(miniHack).State = EntityState.Modified;
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Edit([Bind(Include = "Id,Name,Subtitle,Description,GitHubUrl,BadgeUrl,UnlockCode,Score,Category")] MiniHack miniHack)
        {
            if (ModelState.IsValid)
            {
                db.Entry(miniHack).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(miniHack));
        }
Exemple #4
0
        public MiniHackDetailsViewModel(MiniHack hack)
        {
            Hack = hack;

            MessagingService.Current.Subscribe(MessageKeys.LoggedIn, async(s) =>
            {
                if (!queued)
                {
                    return;
                }

                await FinishHack();
            });
        }
Exemple #5
0
        public MiniHacksDetailsPage(MiniHack hack)
        {
            InitializeComponent();
            ItemId = hack.Name;

            _extension = DependencyService.Get <IPlatformSpecificExtension <MiniHack> >();

            BindingContext = vm = new MiniHackDetailsViewModel(hack);

            ButtonFinish.Clicked += ButtonFinish_Clicked;

            if (string.IsNullOrWhiteSpace(hack.GitHubUrl))
            {
                MiniHackDirections1.IsEnabled = false;
                MiniHackDirections1.Text      = "Directions coming soon";
                MiniHackDirections2.IsEnabled = false;
                MiniHackDirections2.Text      = "Directions coming soon";
            }

            scanPage = new ZXingScannerPage(new MobileBarcodeScanningOptions {
                AutoRotate = false,
            })
            {
                DefaultOverlayTopText    = "Align the barcode within the frame",
                DefaultOverlayBottomText = string.Empty
            };

            scanPage.OnScanResult += ScanPage_OnScanResult;


            scanPage.Title = "Scan Code";


            var item = new ToolbarItem
            {
                Text    = "Cancel",
                Command = new Command(async() =>
                {
                    scanPage.IsScanning = false;
                    await Navigation.PopAsync();
                })
            };

            if (Device.OS != TargetPlatform.iOS)
            {
                item.Icon = "toolbar_close.png";
            }

            scanPage.ToolbarItems.Add(item);
        }
        // GET: MiniHacks/Edit/5
        public async Task <ActionResult> Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MiniHack miniHack = await db.MiniHacks.FindAsync(id);

            if (miniHack == null)
            {
                return(HttpNotFound());
            }
            return(View(miniHack));
        }
        public async Task <ActionResult> Create([Bind(Include = "Id,Name,Subtitle,Description,GitHubUrl,BadgeUrl,UnlockCode,Score,Category")] MiniHack miniHack)
        {
            miniHack.Id = Guid.NewGuid().ToString();
            if (ModelState.IsValid)
            {
                miniHack.Id = Guid.NewGuid().ToString();
                db.MiniHacks.Add(miniHack);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(miniHack));
        }
Exemple #8
0
        public HackDetail(MiniHack hack)
        {
            _hack = hack;

            Title   = hack.Name;
            barcode = new ZXingBarcodeImageView
            {
                HeightRequest     = 300,
                WidthRequest      = 300,
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                BackgroundColor   = Color.Transparent
            };
            barcode.BarcodeFormat         = ZXing.BarcodeFormat.QR_CODE;
            barcode.BarcodeOptions.Width  = 300;
            barcode.BarcodeOptions.Height = 300;
            barcode.BarcodeOptions.Margin = 10;
            barcode.BarcodeValue          = hack.UnlockCode;

            _finishedCount = new Label
            {
                FontSize          = 20,
                HorizontalOptions = LayoutOptions.Center
            };

            //var button = new Button
            //{
            //    Text = "Increase Count"
            //};

            //button.Clicked += (sender, e) =>
            //{
            //    Settings.UpdateCount(hack.Id);
            //    label.Text = "Finished: " + Settings.GetCount(hack.Id);
            //};

            Content = new StackLayout
            {
                Padding  = 10,
                Children =
                {
                    _finishedCount,
                    barcode
                }
            };
        }
        public MiniHacksDetailsPage(MiniHack hack)
        {
            InitializeComponent();
            BindingContext = vm = new MiniHackDetailsViewModel(hack);

            ButtonFinish.Clicked += ButtonFinish_Clicked;



            scanPage = new ZXingScannerPage(new MobileBarcodeScanningOptions {
                AutoRotate = false,
            })
            {
                DefaultOverlayTopText    = "Align the barcode within the frame",
                DefaultOverlayBottomText = string.Empty
            };

            scanPage.OnScanResult += ScanPage_OnScanResult;


            scanPage.Title = "Scan Code";


            var item = new ToolbarItem
            {
                Text    = "Cancel",
                Command = new Command(async() =>
                {
                    scanPage.IsScanning = false;
                    await Navigation.PopAsync();
                })
            };

            if (Device.OS != TargetPlatform.iOS)
            {
                item.Icon = "toolbar_close.png";
            }

            scanPage.ToolbarItems.Add(item);
        }
        //   ZXingScannerPage scanPage;

        public MiniHacksDetailsPage(MiniHack hack)
        {
            InitializeComponent();
            BindingContext = vm = new MiniHackDetailsViewModel(hack);

            ButtonFinish.Clicked += ButtonFinish_Clicked;

            if (string.IsNullOrWhiteSpace(hack.GitHubUrl))
            {
                MiniHackDirections1.IsEnabled = false;
                MiniHackDirections1.Text      = "Directions coming soon";
                MiniHackDirections2.IsEnabled = false;
                MiniHackDirections2.Text      = "Directions coming soon";
            }

            // Scan setup
            //scanPage = new ZXingScannerPage(new MobileBarcodeScanningOptions {  AutoRotate = false, })
            //    {
            //        DefaultOverlayTopText = "Align the barcode within the frame",
            //        DefaultOverlayBottomText = string.Empty
            //    };
            //scanPage.OnScanResult += ScanPage_OnScanResult;
            //scanPage.Title = "Scan Code";

            //// Toolbar - add cancel scan button
            //var item = new ToolbarItem
            //    {
            //        Text = "Cancel",
            //        Command = new Command(async () =>
            //            {
            //                scanPage.IsScanning = false;
            //                await Navigation.PopAsync();
            //            })
            //    };

            //if(Device.OS != TargetPlatform.iOS)
            //    item.Icon = "toolbar_close.png";

            //scanPage.ToolbarItems.Add(item);
        }
Exemple #11
0
 public MiniHackDetailsViewModel(MiniHack hack)
 {
     Hack = hack;
 }