EnesBeyy
Hectopat
- Katılım
- 8 Şubat 2019
- Mesajlar
- 192
- Makaleler
- 1
- Çözümler
- 1
Kod:
using System;
using System.Net;
using System.IO;
using System.Threading;
namespace SiparisKontrolUygulamasi
{
class Program
{
static Timer timer;
static bool isOrderNotificationPlaying = false;
static void Main(string[] args)
{
// Konsol penceresinin arka plan rengini siyah yap
Console.BackgroundColor = ConsoleColor.Black;
Console.Clear();
// Zamanlayıcı oluştur
timer = new Timer(CheckForNewOrder, null, TimeSpan.Zero, TimeSpan.FromMinutes(1));
Console.WriteLine("Sipariş kontrol uygulaması başlatıldı. Her dakika bir sipariş kontrol edilecek...");
Console.WriteLine("Uygulamayı sonlandırmak için 'q' tuşuna basın.");
// Sonsuz döngü
while (true)
{
var key = Console.ReadKey(intercept: true);
if (key.Key == ConsoleKey.Q)
break; // 'q' tuşuna basıldığında döngüyü kır ve programı sonlandır
}
// Zamanlayıcıyı temizle
timer.Dispose();
}
static void CheckForNewOrder(object state)
{
try
{
// JSON yanıtını simüle et
string responseFromServer = "{\"siparis\":1}";
// JSON yanıtını analiz etme
if (responseFromServer.Contains("\"siparis\":1"))
{
Console.WriteLine("Yeni bir sipariş var!");
// Arka plan rengini kırmızı yap
Console.BackgroundColor = ConsoleColor.Red;
Console.Clear();
if (!isOrderNotificationPlaying)
{
isOrderNotificationPlaying = true;
PlayNotificationSound();
}
// Kullanıcı ENTER tuşuna basana kadar bekle
while (!Console.KeyAvailable || Console.ReadKey(true).Key != ConsoleKey.Enter) { }
// Bildirim sesini durdur
isOrderNotificationPlaying = false;
// Arka plan rengini siyah yap
Console.ResetColor();
Console.Clear();
}
else
{
Console.WriteLine("Yeni sipariş yok.");
isOrderNotificationPlaying = false;
}
}
catch (Exception ex)
{
Console.WriteLine("Hata oluştu: " + ex.Message);
}
}
static void PlayNotificationSound()
{
try
{
// Bildirim sesi çalma
using (var player = new System.Media.SoundPlayer(@"Properties/bildirimsesi.mp3"))
{
player.Play();
}
}
catch (Exception ex)
{
Console.WriteLine("Bildirim sesi çalınırken bir hata oluştu: " + ex.Message);
}
}
}
}
Kodun işi şu C# ile bir masaüstü uygulaması yapmam istendi ama ben pek bilmiyorum. Konsolda bu kadar ilerleyebildim. Attığımız linkten JSON yanıtı alacak ve yanıt 1 ise ekrana yeni sipariş var yazacak, bildirim sesi çalacak ve arka plan rengi siyahtan kırmızıya dönecek. Kişi entera basana kadar arka plan kırmızı kalmaya ve bildirim sesi çalmaya devam edecek. Kişi Q'ya basınca da uygulama kapanacak. Console değil de forms olarak istediler ama maalesef onu kullanmayı bilmiyorum. Yardımcı olabilecekler var mı? Forms olursa da enter yerine sayfadaki butona basarak durduracak. Şu an çalıştırdığımda bildirim sesi çalınamadı hatası alıyorum. Bildirim sesini nasıl ekleyeceğimi bulamadım.
Son düzenleyen: Moderatör: