示例#1
0
 //Button för "sök efter bok"
 private void buttonSearchBook_Click(object sender, EventArgs e)
 {
     //Beroende på vilket sökkriterium som användaren valt så ändras den sista parametern i metoden SökBok()
     //Jag är säker på att det går att korta ner det gär på något sätt för att inte behöva nämna alla parametrar
     //vid varje sökning men har inte haft tid att leta upp någon lösning.
     if (checkBoxTitel.Checked)
     {
         outputBox.Text = Bibliotekarie.SökBok(userInputBoxTitel.Text, userInputBoxSkribent.Text, Convert.ToInt32(userInputBoxUtgivningsår.Value), userInputBoxTyp.Text, "Titel");
     }
     else if (checkBoxSkribent.Checked)
     {
         outputBox.Text = Bibliotekarie.SökBok(userInputBoxTitel.Text, userInputBoxSkribent.Text, Convert.ToInt32(userInputBoxUtgivningsår.Value), userInputBoxTyp.Text, "Skribent");
     }
     else if (checkBoxTyp.Checked)
     {
         outputBox.Text = Bibliotekarie.SökBok(userInputBoxTitel.Text, userInputBoxSkribent.Text, Convert.ToInt32(userInputBoxUtgivningsår.Value), userInputBoxTyp.Text, "Typ");
     }
     else if (checkBoxUtgivningsår.Checked)
     {
         outputBox.Text = Bibliotekarie.SökBok(userInputBoxTitel.Text, userInputBoxSkribent.Text, Convert.ToInt32(userInputBoxUtgivningsår.Value), userInputBoxTyp.Text, "Utgivningsår");
     }
     else
     {
         outputBox.Text = "\n\tInget sökkriterium valt. . .";
     }
 }
示例#2
0
 //Button som lägger till ny bok
 private void ButtonAddNewBook_Click(object sender, EventArgs e)
 {
     outputBox.Text = Bibliotekarie.SkapaBok(
         userInputBoxTitel.Text,
         userInputBoxSkribent.Text,
         Convert.ToInt32(userInputBoxUtgivningsår.Value),
         userInputBoxTyp.Text,
         true);
 }
示例#3
0
 //Metod som exporterar boklistan till en textfil
 public static void ExportFile(string filePath)
 {
     try
     {
         FileStream utStröm = new FileStream(filePath, FileMode.Create, FileAccess.Write);
         using (StreamWriter skrivare = new StreamWriter(utStröm, Encoding.Default))
         {
             skrivare.Write(Bibliotekarie.ExporteraBokLista());
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Ogiltigt namn eller filformat...\n\nSpara filen med filändelsen \".txt\"", "", MessageBoxButtons.OK);
         throw;
     }
 }
示例#4
0
            //Metod för Tipsmaskinen
            //Om boklistan inte är tom slumpas ett tal från 0 upp till antalet böcker i listan minus 1(för att matcha indexering).
            //Om tipset är detsamma som det förra slumpas ett nytt tal tills man får ett som inte matchar det föregående.
            //Metoden returnerar sedan den önskade boken som en sträng.
            public static string TipsaBok()
            {
                string boktips      = "";
                string tillänglig   = "Boken är tillänglig";
                Random randomNumber = new Random();
                int    randomBookNumber;

                if (Bibliotekarie.AntalLagradeBöcker() == 0)
                {
                    boktips = "\n\tDet finns inga böcker i Biblioteket...";
                }
                else if (Bibliotekarie.AntalLagradeBöcker() == 1)
                {
                    if (!bokLista[0].Tillänglig)
                    {
                        tillänglig = "Boken är utlånad";
                    }

                    boktips = HämtaBokInfo(0);
                }
                else
                {
                    randomBookNumber = randomNumber.Next(0, Bibliotekarie.AntalLagradeBöcker());

                    while (randomBookNumber == senastTipsadeBok)
                    {
                        randomBookNumber = randomNumber.Next(0, Bibliotekarie.AntalLagradeBöcker());
                    }

                    if (!bokLista[randomBookNumber].Tillänglig)
                    {
                        tillänglig = "Boken är utlånad";
                    }

                    boktips = HämtaBokInfo(randomBookNumber);

                    senastTipsadeBok = randomBookNumber;
                }
                return(boktips);
            }
示例#5
0
 //Button som rensar boklistan
 private void ButtonEraseBookList_Click(object sender, EventArgs e)
 {
     Bibliotekarie.RaderaBöcker();
     outputBox.Text = "\n\tBokhyllan är nu tom. . .";
 }
示例#6
0
 //Button som visar hela boklistan
 private void ButtonShowBookList_Click(object sender, EventArgs e)
 {
     outputBox.Text = Bibliotekarie.HämtaBokLista();
 }
示例#7
0
 //Button märkt "Tipsmaskinen"
 private void buttonTipsmaskinen_Click(object sender, EventArgs e)
 {
     outputBox.Text = Bibliotekarie.TipsaBok();
 }
示例#8
0
            //Metod som öppnar och läser en textfil till boklistan
            public static void OpenFile(string filePath)
            {
                //Skapar en lista som håller i strängvektorer
                List <string[]> booksToImport = new List <string[]>();

                //Försök att öppna och läsa filen
                try
                {
                    //Skapar en ny lista som håller i vanliga strängar
                    List <string> itemSaver = new List <string>();

                    //Skapar en ny FileStream som öppnar filen och en StreamReader som läser av vad som matas in i FileStreamen
                    FileStream inStröm = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                    using (StreamReader läsare = new StreamReader(inStröm, Encoding.Default))
                    {
                        string filText = "";

                        //Sålänge vad StreamReader skriver till variabeln "filText" inte
                        //är lika med null så läggs strängen till i stränglistan itemSaver.
                        //Returnerar variabeln null innebär det att vi nått slutet av listan.
                        //Loopen bryts och StreamWritern går till garbage collection.
                        while ((filText = läsare.ReadLine()) != null)
                        {
                            itemSaver.Add(filText);
                        }
                    }

                    //För varje sträng i listan "itemSaver" skapas en ny strängvektor som sedan
                    //läggs till i strängvektorlistan "booksToImport". Splitmetoden bestämmer var strängarna ska kapas
                    //för att sedan lagras separat.
                    foreach (string a in itemSaver)
                    {
                        string[] vektor = a.Split(new string[] { "###" }, StringSplitOptions.None);
                        booksToImport.Add(vektor);
                    }

                    //För varje strängvektor i listan; skapa ett Bok-objekt.
                    //Varje index i strängvektorn innehåller information om en enskild egenskap.
                    foreach (string[] item in booksToImport)
                    {
                        string titel        = item[0];
                        string skribent     = item[1];
                        string typ          = item[2];
                        bool   tillänglig   = true;
                        int    utgivningsår = 0; //Mina Bok-objekt kräver ett utgivningsår och jag fick inte modifiera textfilen

                        if (item[3] != "true")
                        {
                            tillänglig = false;
                        }

                        Bibliotekarie.SkapaBok(titel, skribent, utgivningsår, typ, tillänglig);
                    }
                }
                //Det enda som kan krascha öppningen och läsningen av filen är att filen är i fel format på något sätt.
                //Därför räcker det med att alla Exceptions får samma meddelande här
                catch (Exception)
                {
                    MessageBox.Show(
                        "Ogiltigt filformat...\n\nFilen måste ha filändelsen \".txt\" och vara formaterad på följande sätt:\n\n" +
                        "string###string###string###bool\n" +
                        "Titel###Författare###Typ###tillänglighet\n" +
                        "Pippi Långstrump###Astrid Lindgren###Roman###true", "Whoops!", MessageBoxButtons.OK);
                }
            }