Scanner

mail@pastecode.io avatar
unknown
csharp
7 months ago
3.5 kB
1
Indexable
Never
using System;
using System.Globalization;
public partial class Program
{       
        // Static arrays for at gøre dets data tilgængeligt i global scope, så det kan anvendes i forskellige metoder i programmet.
        static int[] productIds = { 1, 2, 3 };
        static string[] productName = { "TShirt", "Kop", "Kasket" };
        static int[] productPrice = { 150, 30, 50 };
        static int[] productStock = { 5, 8, 4 };
        
        public class ProductInfo
        {
        public string Navn { get; set; }
        public double Pris { get; set; }
        public int Stock { get; set; }
        public int Id { get; set; }
        }

        
    static void Main(string[] args)
    {
        transaktion();
    }


    public static ProductInfo productScanning()
    {
        //Variabel til scanner ID?
        int productID;
        Console.WriteLine("Indtast nummer 1-3 for at vælge item fra array");
        string input = Console.ReadLine();

        // Forsøg at konvertere den læste streng til en int
        if (int.TryParse(input, out productID))
        {
            productID -= 1;
            // Udskriv productID -1, da array starter på 0, men vi spørg brugeren efter at indtaste 1-3.
            Console.WriteLine("Du har indtastet produktID: " + productID);
        }
        else
        {
            // Hvis indtastningen ikke kunne parses til en int, vil der blive vist en fejlmeddelelse
            Console.WriteLine("Fejl: Indtastningen kunne ikke parses til en gyldig produktID.");
        }

        // ProductInfo = klassen jeg vil oprette en ny instans af
        // productInfo = variabel der skal have de nye værdier fra denne instans
        // new ProductInfo() = Er metoden som opretter selve instansen og allokere hukommelse i RAM til den nye instans
        ProductInfo productInfo = new ProductInfo();

        //For loop der anvender productID index til at finde tilsvarende produktinformation med det samme index
        for (int i = 0; i < productIds.Length; i++) {
            if (i == productID) 
            {
                productStock[productID] -=1;
                productInfo.Navn = productName[i];
                productInfo.Pris = productPrice[i];
                productInfo.Stock = productStock[i];
                productInfo.Id = productID;

                Console.WriteLine("Produkt: " + productInfo.Navn);
                Console.WriteLine("Pris: " + productInfo.Pris);
                Console.WriteLine("Stock: " + productInfo.Stock);
                
            }
        }
        return productInfo;  
    }

    static int transaktion() 
    {
        int totalSum = 0;
        bool checkTransaktion = true;
        while (checkTransaktion == true) 
        {
            ProductInfo productInfo = productScanning();
            
            string produktPrisString = productInfo.Pris.ToString();

            if (int.TryParse(produktPrisString, out int produktPris))
                {
                    totalSum += produktPris;
                }
            else
                {
                    Console.WriteLine("Fejl: Prisen på produktet kunne ikke parses som en integer.");
                }
            
            Console.WriteLine("Scan ny vare? (ja/nej)");
            string nyVare = Console.ReadLine();

            if (nyVare == "nej")
            {
                checkTransaktion = false;
                Console.WriteLine(totalSum);
            } 
        }
        return totalSum;
    }
}
Leave a Comment