Example #1
0
        public kalender(DateTime date, SqlCeDatabase database)
        {
            InitializeComponent();

            this.date = date.Date.ToString();
            db = database;
        }
Example #2
0
        /// <summary>
        /// Konstruktören för klassen kund.
        /// Använder sig av databasen med tabellen kunder och hämtar fältvärden som email, förnamn, enamn, telefonnummer
        /// och kollar om det är en administratör.
        /// </summary>
        /// <param name="email">Email-adressen som ska användas</param>
        /// <param name="losen">Lösenordet, som en säkerhetsåtgärd</param>
        public kund(string email, string losen)
        {
            this.db = new SqlCeDatabase();

            List<string> errorMsg = new List<string>();
            string query = "Select email, fnamn, enamn, losen, tfn, adress from Kunder where email='?x?' and losen='?x?'";
            string[] args = { email, losen };
            if (db.query(query, args) != 0)
                errorMsg.AddRange(db.GetTmpMsgs());
            else
            {
                string[] resultat = db.fetch();
                string[] properties = { this.email, this.fnamn, this.enamn, this.losenord, this.tfn, this.adress };

                if (resultat.Length == 0)
                    throw new Exception("Lösenordet och e-postadressen stämde inte överens med någon kund i registret");

                if (resultat[0] != string.Empty)
                    this.email = resultat[0];
                else
                    errorMsg.Add("Fältet för email-adressen är tomt");

                if (resultat[1] != string.Empty)
                    this.fnamn = resultat[1];
                else
                    errorMsg.Add("Fältet för förnamnet är tomt");

                if (resultat[2] != string.Empty)
                    this.enamn = resultat[2];
                else
                    errorMsg.Add("Fältet för efternamnet är tomt");

                if (resultat[3] != string.Empty)
                    this.losenord = resultat[3];
                else
                    errorMsg.Add("Fältet för lösenordet är tomt");

                if (resultat[4] != string.Empty)
                    this.tfn = resultat[4];
                else
                    errorMsg.Add("Fältet för telefonnummret är tomt");

                if (resultat[5] != string.Empty)
                    this.adress = resultat[5];
                else
                    errorMsg.Add("Fältet för adressen är tomt");

                this.readOnly = false;
            }
            this.tmpMsgs = errorMsg.ToArray();
        }
Example #3
0
        /// <summary>
        /// Konstruktören för FormHyra-formen, här börjar koden från FormHyra.
        /// Här initalieras alla komponenter och kund objektet sparas som global variabel för formen.
        /// </summary>
        /// <param name="anvandare">Kund objektet för den som hyr</param>
        public FormHyra(kund anvandare)
        {
            InitializeComponent();
            SqlCeDatabase db = new SqlCeDatabase();
            this.anvandare = anvandare;

            DoljHyr();
            fyllHyrningar();

            richTextBoxBokningMeny.Text = "Tryck på Ny hyrning för att göra en ny hyrning.\nTryck på Mina hyrningar för att se vad du har hyrt och när.";
            if (DEBUG)
            {
                richTextBoxBokningMeny.Text += "\nNamn: " + anvandare.GetNamn();
                richTextBoxBokningMeny.Text += "\nEmail: " + anvandare.GetEmail();
            }
        }
Example #4
0
        /// <summary>
        /// Bokar tid för fordonet i databasen, bokar in fordonet som endast registreringsnummer så denna
        /// funktion förutsätter att bilen är registrerad.
        /// Lämnar kvar felmeddelande i tmpMsgs-arrayen.
        /// </summary>
        /// <param name="anvandare">Kunden / administratörens kundobjekt</param>
        /// <param name="regnr">Fordonets registreringsnummer</param>
        /// <param name="datum">Datumet som bokningen gäller</param>
        /// <returns>Returnerar true om allt gick som det skulle eller falskt annars.</returns>
        public bool boka(kund anvandare, string regnr, string datum, string spec)
        {
            List<string> errorMsgs = new List<string>();
            SqlCeDatabase db = new SqlCeDatabase();
            string agare = anvandare.GetEmail();

            string namn = anvandare.GetNamn();
            string fnamn = namn.Substring(0, namn.IndexOf(' '));
            string enamn = namn.Substring(namn.IndexOf(' ') + 1);
            string tfn = anvandare.GetTfn();

            string query = "INSERT INTO Bokning " +
               "(datum, fnamn, enamn, bil, email, tfn, spec) " +
               "VALUES  ('?x?','?x?','?x?','?x?', '?x?', '?x?', '?x?')";
            string[] args = new string[7] { datum, fnamn, enamn, regnr, agare, tfn, spec };

            if (db.query(query, args) == 0)
            {
                int opResultat = db.operation();
                if (opResultat == 0)
                    return true;
                else
                {
                    errorMsgs.Add("Det blev något fel när din bokning skulle processeras. Kontakta ansvarig för programmet");
                    if (DEBUG)
                        errorMsgs.AddRange(this.db.GetTmpMsgs());
                }
            }
            else
            {
                errorMsgs.Add("Det blev ett fel vid skapandet av frågan. Kontakta ansvarig för programmet.");
                if (DEBUG)
                    errorMsgs.AddRange(this.db.GetTmpMsgs());
            }

            if (errorMsgs.Count > 0)
            {
                this.tmpMsgs = errorMsgs.ToArray();
            }
            return false;
        }
Example #5
0
        /// <summary>
        /// Konstruktören för FormBoka-formen, här börjar koden från FormBoka.
        /// Här initalieras alla komponenter och kund objektet sparas som global variabel för formen.
        /// 
        /// Här tas även bilarna fram och sparas i Listan kundbilar.
        /// </summary>
        /// <param name="anvandare">Kund objektet för den som bokar</param>
        public FormBoka(kund anvandare)
        {
            InitializeComponent();
            SqlCeDatabase db = new SqlCeDatabase();
            bil_objekt bil = new bil_objekt();
            this.anvandare = anvandare;
            List<string> kundBilar = new List<string>();

            // Kolla efter bilar registrerade till kunden / användaren.
            if (bil.kollaKundsBilar(anvandare,"reg") == 2)
            {
                if (DEBUG)
                    richTextBoxBokningMeny.Text = "Något är fel med kollaKundsBilar-funktionen i bil_objekt.cs";
            }
            else if (bil.kollaKundsBilar(anvandare) == 0)
            {
                kundBilar.AddRange(bil.GetTmpMsgs());
                this.kundHarReggadBil = true;
            }

            // Lägg till en rad "Ny bil..." och lägg till bilarna till regnr-comboboxens datasource
            kundBilar.Add("Ny bil...");
            comboBoxReg.DataSource = kundBilar;

            // Fixar så man bara kan välja ett datum i monthCalendar1.
            monthCalendar1.MaxSelectionCount = 1;
            panelTider.Hide();
            buttonBoka.Hide();

            richTextBoxBokningMeny.Text = "Tryck på Ny bokning för att göra en ny bokning.\nTryck på Mina Bokningar för att se vad du har bokat och när.";
            if (DEBUG)
            {
                richTextBoxBokningMeny.Text += "\nNamn: " + anvandare.GetNamn();
                richTextBoxBokningMeny.Text += "\nEmail: " + anvandare.GetEmail();
                richTextBoxBokningMeny.Text += "\nPersonnummer: " + anvandare.GetPersonnummer();
            }
        }
Example #6
0
        /// <summary>
        /// Företagskonstruktör, tar företagets nummeridentitet som parameter och hämtar information ifrån
        /// tabellen Företag
        /// </summary>
        /// <param name="id">Företagets identitet (en int)</param>
        public foretag(int id)
        {
            this.db = new SqlCeDatabase();

            string selectQuery = "SELECT Namn, Email, Oppetider, Telefon, Adress, PostAdress, Information" +
                                  " FROM Företag WHERE id=?x?";
            string[] args = { id.ToString() };

            int queryResultat = db.query(selectQuery, args);
            if (queryResultat != 0)
                throw new Exception("Det blev något fel med frågan, konsultera db.getTmpMsgs()");

            string[] fetchResultat = db.fetch();
            if (fetchResultat.Length == 0)
                throw new Exception("Önskat företag fanns inte i registret, programmet kan inte fortsätta.");

            this.namn = fetchResultat[0];
            this.email = fetchResultat[1];
            this.oppetider = fetchResultat[2];
            this.tfn = fetchResultat[3];
            this.adress = fetchResultat[4];
            this.postadr = fetchResultat[5];
            this.info = fetchResultat[6];
        }
Example #7
0
        /// <summary>
        /// Hämtar alla hyrfordon av en typ och sparar dem i tmpMsgs-arrayen;
        /// </summary>
        /// <param name="typ">Fordonstypen</param>
        /// <returns>Statuskoden för funktionen
        /// 0 - funktionen utfördes utan problem
        /// 10 - inga fordon hittades
        /// 20 - kommunikation/frågefel</returns>
        public int hamtaAllaHyrFordon(string typ)
        {
            SqlCeDatabase db = new SqlCeDatabase();

            string hyrQuery = "SELECT regnr FROM HyrFordon WHERE typ='?x?'";
            string[] args = { typ };

            int queryRes = db.query(hyrQuery, args);
            if (queryRes != 0)
            {
                this.tmpMsgs = db.GetTmpMsgs();
                return 20;
            }

            string[] allaFordon = db.fetch();
            if (allaFordon.Length < 1)
            {
                this.tmpMsgs = db.GetTmpMsgs();
                return 10;
            }

            this.tmpMsgs = allaFordon;
            return 0;
        }
Example #8
0
        private void buttonVisa_Click(object sender, EventArgs e)
        {
            string queryVisa = "Select * from Kunder";
            string[] args = { };

            SqlCeDatabase db = new SqlCeDatabase();

            int kollaQuery = db.query(queryVisa, args);
            if (kollaQuery != 0)
            {
                string[] läsResultat = db.fetch();

                if (läsResultat.Length > 0)
                {
                    string FullResultat = string.Empty;
                    foreach (string resultat in läsResultat)
                        FullResultat += resultat + "\n";
                    MessageBox.Show(FullResultat);
                }
            }
            else
                richTextBoxMeddelanden.Text = db.GetTmpMsgs()[0];
        }
Example #9
0
        /// <summary>
        /// KollaKundsBilar: Kollar efter kunders bilar och returnerar bara regnumret
        /// </summary>
        /// <param name="anvandare">Kundens kundobjekt</param>
        /// <param name="what">Vad som ska frågas efter i Select-satsen</param>
        /// <returns>Returnerar ett intvärde
        /// 0 - om funktion slutfördes utan problem
        /// 1 - Inga bilar fanns
        /// 2 - Fel vid frågeformuleringen</returns>
        public int kollaKundsBilar(kund anvandare, string what)
        {
            SqlCeDatabase db = new SqlCeDatabase();

            string regQuery = "SELECT ?x? FROM fordon WHERE agare='?x?'";
            string[] args = { what, anvandare.GetEmail() };

            int queryResultat = db.query(regQuery, args);
            if (queryResultat == 0)
            {
                string[] fetchResultat = db.fetch();

                if (fetchResultat.Length < 1)
                {
                    this.tmpMsgs = db.GetTmpMsgs();
                    return 1;
                }
                else
                {
                    this.tmpMsgs = fetchResultat;
                    return 0;
                }
            }
            this.tmpMsgs = db.GetTmpMsgs();
            return 2;
        }
Example #10
0
 /// <summary>
 /// Kontruktören för boknings_objekt, tar en SqlCeDatabase och en admin som parametrar
 /// </summary>
 /// <param name="db">SqlCeDatabase som ska användas för databasen</param>
 /// <param name="anvandare">admin som bokar</param>
 public boknings_objekt(SqlCeDatabase db, administrator admin)
 {
     this.admin = admin;
     this.db = db;
 }
Example #11
0
        /// <summary>
        /// Hämtar information som Regnr, marke, modell, arsmodell ifrån hyrfordonets databasen.
        /// Sparar informationen i en SortedList med strängar som både nycklar och värden.
        /// Nycklarna är fältnamnen i databasen.
        /// </summary>
        /// <param name="reg">En sträng array med alla regnummer som data ska hämtas till</param>
        /// <returns>En SortedList array med fordonsinformationen i samma ordning som regnumret skickades.
        /// Innehåller även en nyckel för "regnr"</returns>
        public SortedList<string, string>[] hamtaValtHyrfordon(string[] reg)
        {
            SqlCeDatabase db = new SqlCeDatabase();
            List<SortedList<string, string>> fordon = new List<SortedList<string, string>>();

            foreach (string regnummer in reg)
            {
                string queryFetchFordon = "SELECT regnr, marke, modell, arsmodell from HyrFordon where regnr='?x?'";
                string[] args = { regnummer };

                int queryRes = db.query(queryFetchFordon, args);

                if (queryRes != 0)
                    throw new Exception(string.Format("Det blev något fel när frågan skapades.\nFelkod: {0}", queryRes));

                SortedList<string,string> ettFordon = db.fetchList();
                if (ettFordon.Count > 0)
                    fordon.Add(ettFordon);
            }

            if (fordon.Count > 0)
                return fordon.ToArray();
            else
                throw new Exception("Det fanns inga fordon med de regnumren");
        }
Example #12
0
        /// <summary>
        /// Bokar en tid för ett fordon för en kund som är oregistread
        /// </summary>
        /// <param name="fnamn">Förnamnet på kunden</param>
        /// <param name="enamn">Efternamnet på kunden</param>
        /// <param name="regnr">Fordonets registreringsnummer</param>
        /// <param name="datum">Bokningens datum</param>
        /// <param name="marke">Fordonets marke</param>
        /// <param name="modell">Fordonets modell</param>
        /// <param name="arsmodell">Fordonets årsmodell</param>
        /// <returns></returns>
        public bool boka(string fnamn, string enamn, string tfn, string regnr, string datum, string marke, string modell, string arsmodell, string agare, string spec)
        {
            List<string> errorMsgs = new List<string>();
            SqlCeDatabase db = new SqlCeDatabase();
            bil_objekt bil = new bil_objekt();

            string tid = datum.Substring(11);
            datum = datum.Substring(0, 10);
            int kod = bil.insertFordon(regnr, modell, arsmodell, marke, agare);
            if (kod == 0)
            {
                string query = "INSERT INTO Bokning " +
                   "(datum, fnamn, enamn, bil, tfn, tid, spec) " +
                   "VALUES  ('?x?','?x?','?x?', '?x?', '?x?', '?x?', '?x?')";
                string[] args = { datum, fnamn, enamn, regnr, tfn, tid, spec };

                if (db.query(query, args) == 0)
                {
                    int opResultat = db.operation();
                    if (opResultat == 0)
                        return true;
                    else
                    {
                        errorMsgs.Add("Det blev något fel när din bokning skulle processeras. Kontakta systemansvarig");
                        if (DEBUG)
                            errorMsgs.AddRange(db.GetTmpMsgs());
                    }
                }
                else
                {
                    errorMsgs.Add("Det blev ett fel vid skapandet av frågan. Kontakta ansvarig för programmet.");
                    if (DEBUG)
                        errorMsgs.AddRange(db.GetTmpMsgs());
                }
            }
            else
            {
                if (DEBUG)
                    errorMsgs.AddRange(bil.GetTmpMsgs());
                else
                    errorMsgs.Add("Det blev något fel när ditt fordon skulle registreras");
            }
            if (errorMsgs.Count > 0)
            {
                this.tmpMsgs = errorMsgs.ToArray();
            }
            return false;
        }
Example #13
0
 /// <summary>
 /// Kontruktören för boknings_objekt, tar en SqlCeDatabase och en kund som parametrar
 /// </summary>
 /// <param name="db">SqlCeDatabase som ska användas för databasen</param>
 /// <param name="anvandare">kunden som bokar</param>
 public boknings_objekt(SqlCeDatabase db, kund anvandare)
 {
     this.anvandare = anvandare;
     this.db = db;
 }
Example #14
0
        /// <summary>
        /// Hämtar alla fordon som är hyrda inom ett visst tidsintervall och av en specificerad typ
        /// och sparar dem i tmpMsgs-arrayen
        /// </summary>
        /// <param name="typ">Fordonets typ</param>
        /// <param name="starttid">Hyrningens startdatum</param>
        /// <param name="sluttid">Hyrningens slutdatum</param>
        /// <returns>Statuskod för funktionen
        /// 0 - funktionen utfördes utan problem
        /// 10 - inga fordon matchade parametrarna
        /// 20 - kommunikations/frågefel mo databasen</returns>
        public int hamtaHyrdaFordon(string typ, string starttid, string sluttid)
        {
            SqlCeDatabase db = new SqlCeDatabase();
            string checkHyrdaQuery = "SELECT H.Fordon " +
                                      "FROM Hyrning AS H INNER JOIN HyrFordon AS F ON H.Fordon = F.regnr " +
                                      "WHERE (H.Startdag < '?x?') AND (H.Slutdag > '?x?') AND (F.typ='?x?')";
            string[] hyrdaArgs = { starttid, sluttid, typ };

            int queryRes = db.query(checkHyrdaQuery, hyrdaArgs);

            if (queryRes != 0)
            {
                this.tmpMsgs = db.GetTmpMsgs();
                return 20;
            }

            string[] hyrdaFordon = db.fetch();

            if (hyrdaFordon.Length < 1)
            {
                this.tmpMsgs = db.GetTmpMsgs();
                return 10;
            }

            this.tmpMsgs = hyrdaFordon;
            return 0;
        }
Example #15
0
 /// <summary>
 /// Tom konstruktör
 /// </summary>
 public user()
 {
     this.db = new SqlCeDatabase();
 }
Example #16
0
        public bool loggaIn(string email, string Pw)
        {
            SqlCeDatabase db = new SqlCeDatabase();
            List<string> errorMsgs = new List<string>();
            if (!this.kollaEmail(email))
            {
                errorMsgs.Add("Din email är inte en korrekt formatterad email");
                this.tmpMsgs = errorMsgs.ToArray();
                return false;
            }

            string queryLogin = "******";
            string[] arg = { email };
            if (db.query(queryLogin, arg) == 0)
            {
                string[] sokResultat = db.fetch();
                if (sokResultat.Length < 1)
                {
                    if (db.GetTmpMsgs().Contains("inga värden"))
                        errorMsgs.Add("Din emailadress finns inte i vår databas, är du säker på att du har skapat en användare?\n" +
                        "Om inte, klicka på Skapa användare för att göra just det.");
                    else
                        errorMsgs.AddRange(db.GetTmpMsgs());

                    this.tmpMsgs = errorMsgs.ToArray();
                    return false;
                }

                if (sokResultat[1] != Pw)
                {
                    errorMsgs.Add("Det blev fel med kombinationen med lösenord och emailadressen");
                    this.tmpMsgs = errorMsgs.ToArray();
                    return false;
                }

                return true;
            }
            errorMsgs.AddRange(db.GetTmpMsgs());
            this.tmpMsgs = errorMsgs.ToArray();
            return false;
        }
Example #17
0
        /// <summary>
        /// Hämtar information om hyrfordonen som marke, modell, arsmodell och sparar dem i en SortedList där nycklarna är fältnamnen ifrån databasen.
        /// </summary>
        /// <param name="reg">Regnumret som datan ska hämtas om</param>
        /// <returns>En SortedList med fordonsinformationen.
        /// Innehåller även en nyckel för "regnr"</returns>
        public SortedList<string, string> hamtaValtHyrfordon(string reg)
        {
            SqlCeDatabase db = new SqlCeDatabase();
            SortedList<string, string> fordon = new SortedList<string, string>();

            string queryFetchFordon = "SELECT reg,marke,modell,arsmodell from HyrFordon where regnr='?x?'";
            string[] args = { reg };

            int queryRes = db.query(queryFetchFordon, args);

            if (queryRes != 0)
                throw new Exception(string.Format("Det blev något fel när frågan skapades.\nFelkod: {0}", queryRes));

            if (db.fetchList().Count == 0)
                return db.fetchList();

            else
                throw new Exception("Det fanns inget fordon med de regnumret");
        }
Example #18
0
        /// <summary>
        /// Denna funktion kollar om det finns en bil i registret med detta id.
        /// </summary>
        /// <param name="id">Id:et på personen (första tre bokstäverna i förnamn och efternamn)</param>
        /// <returns>Returnerar ett bool-värde, sant om personen finns, annars falskt.</returns>
        public bool kollaPersonFinns(string id)
        {
            SqlCeDatabase db = new SqlCeDatabase();
            string queryKund = "SELECT fnamn,enamn,id from Kunder where id='?x?'";
            string[] kundArgs = { id };

            if (db.query(queryKund, kundArgs) == 0)
            {
                string[] kollPersResultat = db.fetch();
                if (kollPersResultat[0] == null)
                    return false;
                else
                    return true;
            }
            else
                return false;
        }
Example #19
0
        /// <summary>
        /// Hämtar alla bilar som är registrerade på kundens email och sparar dem i tmpMsgs.
        /// För att hämta arrayen med bilar kör getTmpMgsg.
        /// </summary>
        /// <param name="anvandare">Kunden som bilarna är registrerade på</param>
        /// <returns>Returnerar en returnkod som int-värde.
        /// 0 - Inga fel uppstod
        /// 1 - Inga bilar funna
        /// 2 - Fel vid frågeformuleringen</returns>
        public int kollaKundsBilar(kund anvandare)
        {
            SqlCeDatabase db = new SqlCeDatabase();

            string regQuery = "SELECT reg, marke, modell, arsmodell FROM fordon WHERE agare='?x?'";
            string[] args = { anvandare.GetEmail() };

            int queryResultat = db.query(regQuery, args);
            if (queryResultat == 0)
            {
                SortedList<string,string>[] fetchResultat = db.fetchAllList();

                if (fetchResultat.Length < 1)
                {
                    this.tmpMsgs = db.GetTmpMsgs();
                    return 1;
                }
                else
                {
                    this.tmpMsgsArray = fetchResultat;
                    return 0;
                }
            }
            this.tmpMsgs = db.GetTmpMsgs();
            return 2;
        }
Example #20
0
        /// <summary>
        /// Denna funktion kollar om det finns en bil i registret med detta regnummer.
        /// </summary>
        /// <param name="reg">Regnumret på bilen</param>
        /// <returns>Returnerar ett bool-värde, sant om bilen finns, annars falskt.</returns>
        public bool kollaBilFinns(string reg)
        {
            SqlCeDatabase db = new SqlCeDatabase();

            string queryCheckBil = "SELECT reg from Fordon where reg='?x?'";
            string[] argsCheckBil = new string[1] { reg };

            db.query(queryCheckBil, argsCheckBil);
            string[] kollaBilRes = db.fetch();
            if (kollaBilRes[0] == null)
                return false;
            else
                return true;
        }
Example #21
0
        /// <summary>
        /// Denna funktion lägger till ett fordon i hyrregistret.
        /// Den använder sig av klassen SQLCeDatabase för att ansluta till en kompakt MSSQL-server/fil.
        /// </summary>
        /// <param name="reg">Regnumret på fordonet</param>
        /// <param name="modell">Fordonets modell</param>
        /// <param name="arsmodell">Fordonets årsmodell</param>
        /// <param name="marke">Fordonets märke</param>
        /// <param name="typ">Typen av fordon</param>
        /// <returns>Returnerar returnkod som int.
        /// 0 - Operationen utfördes utan problem
        /// </returns>
        public int insertHyrFordon(string reg, string modell, string arsmodell, string marke, string typ)
        {
            SqlCeDatabase db = new SqlCeDatabase();

            string insertQuery = "INSERT INTO HyrFordon (regnr, typ, modell, arsmodell, marke) values ('?x?','?x?','?x?','?x?','?x?')";
            string[] args = { reg, typ, modell, arsmodell, marke };

            if (db.query(insertQuery, args) != 0)
            {
                this.tmpMsgs = db.GetTmpMsgs();
                return 1;
            }

            if (db.operation() != 0)
            {
                this.tmpMsgs = db.GetTmpMsgs();
                return 2;
            }

            return 0;
        }
Example #22
0
        /// <summary>
        /// Registrerar ett fordon för oregistrerade kunder
        /// </summary>
        /// <param name="reg">Fordonets registreringsnummer</param>
        /// <param name="modell">Fordonets modell</param>
        /// <param name="arsmodell">Fordonets årsmodell</param>
        /// <param name="marke">Fordonets märke</param>
        /// <param name="agare">Fordonets ägare</param>
        /// <returns></returns>
        public int insertFordon(string reg, string modell, string arsmodell, string marke, string agare)
        {
            SqlCeDatabase db = new SqlCeDatabase();
            List<string> resultat = new List<string>();
            List<string> errorMsgs = new List<string>();
            string queryNyBil = "INSERT INTO Fordon" +
                "(reg, modell, arsmodell, marke, agare) " +
                " values ('?x?','?x?','?x?','?x?','?x?')";

            string[] argsNyBil = new string[5] { reg, modell, arsmodell, marke, agare };
            int queryResultat = db.query(queryNyBil, argsNyBil);                   // Skapar en string-array av resultatet från db.query() för att kunna använda i jämförelser och returns
            int returnkod;
            if (queryResultat == 0)
            {
                int operationResultat = db.operation();                            // Skapar en string-array av resultatet från db.operation() för att kunna använda i jämförelser och returns
                if (operationResultat == 0)
                {
                    returnkod = 0;
                }
                else
                {
                    errorMsgs.Add("Det blev ett fel när ditt fordon skulle registreras. Kontakta systemansvarig.");
                    if (DEBUG)
                        errorMsgs.AddRange(db.GetTmpMsgs());
                    returnkod = 1;
                }
            }
            else
            {
                errorMsgs.Add("Det blev ett fel med frågeformuleringen. Kontakta systemansvarig.");
                if (DEBUG)
                    errorMsgs.AddRange(db.GetTmpMsgs());
                returnkod = 2;
            }
            if (errorMsgs.Count > 0)
                this.tmpMsgs = errorMsgs.ToArray();
            return returnkod;
        }
Example #23
0
        /// <summary>
        /// Kollar om tiden är ledig i bokningsdatabasen
        /// </summary>
        /// <param name="date">Datumet som bokningen gäller</param>
        /// <param name="tid">Tid intervallet ex. HH:MM</param>
        /// <returns>Sant om det är ledigt, falskt annars</returns>
        public bool kollaTidLedig(string date, string tid)
        {
            SqlCeDatabase db = new SqlCeDatabase();

            string tid1 = tid.Substring(0, tid.IndexOf(' '));
            string tid2 = tid.Substring(tid.LastIndexOf(' ')+1, 5);

            string date1 = date + " " + tid1;
            string date2 = date + " " + tid2;

            string queryTid = "SELECT * FROM Bokning WHERE datum BETWEEN '?x?' AND '?x?'";
            string[] args = { date1, date2 };
            if (db.query(queryTid, args) == 0)
            {
                string[] resultat = db.fetch();
                if (resultat.Length == 0 )
                    return true;
            }
            return false;
        }
Example #24
0
        /// <summary>
        /// Funktion som ska kunna söka efter lediga fordon i specificerad typ under visst tidsinterval
        /// </summary>
        /// <param name="typ">Typ av fordon</param>
        /// <param name="starttid">Starttiden för hyrningen då fordonet måste vara ledig</param>
        /// <param name="sluttid">Sluttuden för hyrningen då fordonet kommer lämnas tillbaka, måste också vara ledig</param>
        /// <returns>Returnerar en int
        /// 0 - Om det finns lediga fordon
        /// 10 - Om det inte finns några lediga fordon
        /// 20 - Vid kommunikationsfel med databasen</returns>
        public int kollaLedigaHyrFordon(string typ, string starttid, string sluttid)
        {
            SqlCeDatabase db = new SqlCeDatabase();
            string[] allaFordon;
            string[] hyrdaFordon;
            int hyrFordonStatus;
            int allaFordonStatus;

            /* Hämtar alla hyrfordon och skapar Exceptions om det inte finns fordon */
            allaFordonStatus = hamtaAllaHyrFordon(typ);
            if (allaFordonStatus == 0)
                allaFordon = GetTmpMsgs();
            else if (allaFordonStatus == 10)
                return 10;
            else
                throw new Exception(db.GetTmpMsgs()[0]);

            /* Hämtar alla hyrfordon som är hyrda under den angivna tidsperioden
             * och skapar ett Exception om det blev något fel med själva förfrågningen till databasen */
            hyrFordonStatus = hamtaHyrdaFordon(typ, starttid, sluttid);
            if (hyrFordonStatus == 0)
                hyrdaFordon = GetTmpMsgs();
            else if (hyrFordonStatus == 10)
            {
                this.tmpMsgs = allaFordon;
                return 0;
            }
            else
                throw new Exception(db.GetTmpMsgs()[0]);

            List<string> ledigaFordon = new List<string>();

            /* Går igenom alla hyrfordon och kollar om tabellen med hyrda fordon innehåller det registreringsnumret
             * i så fall händer inget, annars läggs fordonet till i ledigaFordon-listan */
            foreach (string fordon in allaFordon)
            {
                if (!hyrdaFordon.Contains(fordon))
                    ledigaFordon.Add(fordon);
            }

            /* Returnerar 10 om det inte fanns några lediga fordon */
            if (ledigaFordon.Count == 0)
                return 10;
            else
            {
                this.tmpMsgs = ledigaFordon.ToArray();
                return 0;
            }
        }
Example #25
0
 /// <summary>
 /// Denna funktion lägger till personer till registret.
 /// Den använder sig av klassen SqlCeDatabase för att ansluta till en kompakt MSSQL-server/fil.
 /// </summary>
 /// <param name="args">En array med strängar som representerar värdena till kunden.
 /// Kan med fördel användas med kollaInmatnings funktionen</param>
 /// <returns>Returnerar ett intvärde.
 /// 0 om allt slutade utan problem
 /// Annars returnerar den db.operation eller db.query felkoden.</returns>
 public int ReggaKund(string[] args)
 {
     SqlCeDatabase db = new SqlCeDatabase();
     string query = "Insert into Kunder" +
                     "(fnamn, enamn, email, tfn, adress, personnr, losen)" +
                     " values " +
                     "('?x?','?x?','?x?','?x?','?x?','?x?','?x?')";
     if (db.query(query, args) == 0)
     {
         if (db.operation() == 0)
         {
             int resultat = 0;
             return resultat;
         }
         else
         {
             return db.operation();
         }
     }
     else
         return db.query(query, args);
 }
Example #26
0
 /// <summary>
 /// Tom konstruktör
 /// </summary>
 public kund()
 {
     this.db = new SqlCeDatabase();
 }