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)); }
public MiniHackDetailsViewModel(MiniHack hack) { Hack = hack; MessagingService.Current.Subscribe(MessageKeys.LoggedIn, async(s) => { if (!queued) { return; } await FinishHack(); }); }
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)); }
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); }
public MiniHackDetailsViewModel(MiniHack hack) { Hack = hack; }