public static IMessageActivity CreateSuggestionMessage(IDialogContext context, MediumTypes mediumType) { string image = "https://xvsitefinitycdn.azureedge.net/production/images/default-source/default-library/mediacatalog-ipad-desktop-plakat.png?sfvrsn=0"; string link = "https://sitefinity.crossvertise.com/"; switch (mediumType) { case MediumTypes.Billboard: image = "https://www.crossvertise.com/fileadmin/bilder/plakatformate/vorschau/city-light-poster.png"; link = "https://sitefinity.crossvertise.com/plakatwerbung"; break; case MediumTypes.Cinema: image = "https://market.crossvertise.com/Content/Img/Media/add_service_cinema.png"; link = "https://sitefinity.crossvertise.com/kinowerbung"; break; case MediumTypes.TV: image = "https://www.crossvertise.com/fileadmin/bilder/TV.jpg"; link = "https://sitefinity.crossvertise.com/tv-werbung"; break; } var message = context.MakeMessage(); message.Type = "message"; message.Attachments = new List <Attachment>(); List <CardImage> cardImages = new List <CardImage>(); cardImages.Add(new CardImage(url: image)); List <CardAction> cardButtons = new List <CardAction>(); CardAction linkButton = new CardAction() { Value = link, Type = "openUrl", Title = $"{mediumType} avertisement on crossvertise" }; cardButtons.Add(linkButton); HeroCard plCard = new HeroCard() { Title = $"{mediumType} crossvertise", Subtitle = "Book now", Images = cardImages, Buttons = cardButtons }; var plAttachment = plCard.ToAttachment(); message.Attachments.Add(plAttachment); return(message); }
public void ReportScsiModes(ref DeviceReportV2 report, out byte[] cdromMode, out MediumTypes mediumType) { Modes.DecodedMode? decMode = null; PeripheralDeviceTypes devType = _dev.ScsiType; byte[] mode10Buffer; byte[] mode6Buffer; bool sense; mediumType = 0; AaruConsole.WriteLine("Querying all mode pages and subpages using SCSI MODE SENSE (10)..."); foreach (ScsiModeSensePageControl pageControl in new[] { ScsiModeSensePageControl.Default, ScsiModeSensePageControl.Current, ScsiModeSensePageControl.Changeable }) { bool saveBuffer = false; sense = _dev.ModeSense10(out mode10Buffer, out _, false, true, pageControl, 0x3F, 0xFF, _dev.Timeout, out _); if (sense || _dev.Error) { sense = _dev.ModeSense10(out mode10Buffer, out _, false, false, pageControl, 0x3F, 0xFF, _dev.Timeout, out _); if (sense || _dev.Error) { sense = _dev.ModeSense10(out mode10Buffer, out _, false, true, pageControl, 0x3F, 0x00, _dev.Timeout, out _); if (sense || _dev.Error) { sense = _dev.ModeSense10(out mode10Buffer, out _, false, false, pageControl, 0x3F, 0x00, _dev.Timeout, out _); if (!sense && !_dev.Error) { report.SCSI.SupportsModeSense10 = true; decMode ??= Modes.DecodeMode10(mode10Buffer, devType); saveBuffer = true; } } else { report.SCSI.SupportsModeSense10 = true; decMode ??= Modes.DecodeMode10(mode10Buffer, devType); saveBuffer = true; } } else { report.SCSI.SupportsModeSense10 = true; report.SCSI.SupportsModeSubpages = true; decMode ??= Modes.DecodeMode10(mode10Buffer, devType); saveBuffer = true; } } else { report.SCSI.SupportsModeSense10 = true; report.SCSI.SupportsModeSubpages = true; decMode ??= Modes.DecodeMode10(mode10Buffer, devType); saveBuffer = true; } if (!saveBuffer) { continue; } switch (pageControl) { case ScsiModeSensePageControl.Default: report.SCSI.ModeSense10Data = mode10Buffer; break; case ScsiModeSensePageControl.Changeable: report.SCSI.ModeSense10ChangeableData = mode10Buffer; break; case ScsiModeSensePageControl.Current: report.SCSI.ModeSense10CurrentData = mode10Buffer; break; } } AaruConsole.WriteLine("Querying all mode pages and subpages using SCSI MODE SENSE (6)..."); foreach (ScsiModeSensePageControl pageControl in new[] { ScsiModeSensePageControl.Default, ScsiModeSensePageControl.Current, ScsiModeSensePageControl.Changeable }) { bool saveBuffer = false; sense = _dev.ModeSense6(out mode6Buffer, out _, true, pageControl, 0x3F, 0xFF, _dev.Timeout, out _); if (sense || _dev.Error) { sense = _dev.ModeSense6(out mode6Buffer, out _, false, pageControl, 0x3F, 0xFF, _dev.Timeout, out _); if (sense || _dev.Error) { sense = _dev.ModeSense6(out mode6Buffer, out _, true, pageControl, 0x3F, 0x00, _dev.Timeout, out _); if (sense || _dev.Error) { sense = _dev.ModeSense6(out mode6Buffer, out _, false, pageControl, 0x3F, 0x00, _dev.Timeout, out _); if (sense || _dev.Error) { sense = _dev.ModeSense6(out mode6Buffer, out _, true, pageControl, 0x00, 0x00, _dev.Timeout, out _); if (sense || _dev.Error) { sense = _dev.ModeSense6(out mode6Buffer, out _, false, pageControl, 0x00, 0x00, _dev.Timeout, out _); if (!sense && !_dev.Error) { report.SCSI.SupportsModeSense6 = true; decMode ??= Modes.DecodeMode6(mode6Buffer, devType); saveBuffer = true; } } else { report.SCSI.SupportsModeSense6 = true; decMode ??= Modes.DecodeMode6(mode6Buffer, devType); saveBuffer = true; } } else { report.SCSI.SupportsModeSense6 = true; decMode ??= Modes.DecodeMode6(mode6Buffer, devType); saveBuffer = true; } } else { report.SCSI.SupportsModeSense6 = true; decMode ??= Modes.DecodeMode6(mode6Buffer, devType); saveBuffer = true; } } else { report.SCSI.SupportsModeSense10 = true; report.SCSI.SupportsModeSubpages = true; decMode ??= Modes.DecodeMode6(mode6Buffer, devType); saveBuffer = true; } } else { report.SCSI.SupportsModeSense6 = true; report.SCSI.SupportsModeSubpages = true; decMode ??= Modes.DecodeMode6(mode6Buffer, devType); saveBuffer = true; } if (!saveBuffer) { continue; } switch (pageControl) { case ScsiModeSensePageControl.Default: report.SCSI.ModeSense6Data = mode6Buffer; break; case ScsiModeSensePageControl.Changeable: report.SCSI.ModeSense6ChangeableData = mode6Buffer; break; case ScsiModeSensePageControl.Current: report.SCSI.ModeSense6CurrentData = mode6Buffer; break; } } cdromMode = null; if (!decMode.HasValue) { return; } mediumType = decMode.Value.Header.MediumType; report.SCSI.ModeSense = new ScsiMode { BlankCheckEnabled = decMode.Value.Header.EBC, DPOandFUA = decMode.Value.Header.DPOFUA, WriteProtected = decMode.Value.Header.WriteProtected }; if (decMode.Value.Header.BufferedMode > 0) { report.SCSI.ModeSense.BufferedMode = decMode.Value.Header.BufferedMode; } if (decMode.Value.Header.Speed > 0) { report.SCSI.ModeSense.Speed = decMode.Value.Header.Speed; } if (decMode.Value.Pages == null) { return; } List <ScsiPage> modePages = new List <ScsiPage>(); foreach (Modes.ModePage page in decMode.Value.Pages) { var modePage = new ScsiPage { page = page.Page, subpage = page.Subpage, value = page.PageResponse }; modePages.Add(modePage); if (modePage.page == 0x2A && modePage.subpage == 0x00) { cdromMode = page.PageResponse; } } if (modePages.Count > 0) { report.SCSI.ModeSense.ModePages = modePages; } }