Beispiel #1
0
        /*Följande metod redigerar en existerande cykels pris i databasen. Användaren har blivit tillfrågad efter
         * ramnummer och det nya priset, som sedan matas in i denna metod. Metoden letar upp korrekt cykel i den
         * "generella" cykeltabellen m.h.a. ramnummret och korrigerar dess pris innan en SaveChange genomförs.*/

        /*TODO:
         *
         * Får ej transaction.Commit och transaction.Rollback att fungera som önskat. WORK IN PROGRESS.
         * Målet är att försöka få en form utav felhantering som sedan kan implementeras på fler metoder där input
         * behöver säkerställas.
         *
         * ARBETE PÅGÅR.*/

        public void EditBicycleToDatabase(string frame_number, int price)
        {
            using (var context = new bicycle_rental2DBEntities())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        Bicycle editBicycle = context.Bicycles.FirstOrDefault(b => b.frame_number == frame_number);
                        editBicycle.price = price;
                        context.SaveChanges();

                        transaction.Commit();
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        Console.WriteLine("Error occured.");
                        Console.ReadKey();
                    }
                }
            }
        }
Beispiel #2
0
        /*Följande metod tar emot ett ramnummer som användaren har fyllt i m.h.a. en annan metod, söker upp matchande cykel i
         * den "generella" cykeltabellen för att sedan presentera ALL data på just den cykeln.
         *
         * Denna metoden borde nog egentligen inte ha printat informationen, utan bara hämtat objekt/objektinformationen och
         * skickat vidare den till en mer relevant metod. Åtgärdas i mån av tid. TODO.*/

        public void DisplaySpecificBicycle(string frame_number)
        {
            Console.Clear();

            using (var context = new bicycle_rental2DBEntities())
            {
                Bicycle bicycle = context.Bicycles.FirstOrDefault(b => b.frame_number == frame_number);
                Console.WriteLine("DISPLAYING BICYCLE: " + bicycle.make + " " + bicycle.model);
                Console.WriteLine("\n\nBicycle type: " + bicycle.bicycle_type);
                Console.WriteLine("Bicycle category: " + bicycle.bicycle_category);
                Console.WriteLine("Recommended user: "******"Color: " + bicycle.color);
                Console.WriteLine("Frame size: " + bicycle.frame_size);
                Console.WriteLine("Wheel size: " + bicycle.wheel_size);
                Console.WriteLine("Gears: " + bicycle.gears);
                Console.WriteLine("Brakes back: " + bicycle.brake_back);
                Console.WriteLine("Brakes front: " + bicycle.brake_front);
                Console.WriteLine("Price: " + bicycle.price);

                /*Hämtar extra information om cykeln som visas är en elcykel. Info hämtas m.h.a. ramnummer och finnes i
                 * subtabellen över elcyklar.*/

                if (bicycle.bicycle_type == "Elcykel")
                {
                    Console.WriteLine("\nBATTERY INFORMATION:");
                    Electric_bicycle displayElectric = context.Electric_bicycle.FirstOrDefault(b => b.frame_number == frame_number);
                    Console.WriteLine("\nBattery capacity: " + displayElectric.battery_capacity + " Wh.");
                    Console.WriteLine("Average charge time: " + displayElectric.battery_avg_charge_time + " hours.");
                    Console.WriteLine("Average distance per full charge: " + displayElectric.battery_avg_distance + " km.");
                    Console.WriteLine("Motor power: " + displayElectric.motor_power + " W.");
                }

                Console.WriteLine("\n\n\n\nPress a key to return to the main menu.");
                Console.ReadKey();
            }
        }
Beispiel #3
0
        /*Följande metod tar emot indata (som kommer ifrån en användare och en annan metod) och ger den till ett nytt cykelobjekt.*/

        public void AddBicycleToDatabase(string frame_number, string type, string category, string user, string make, string model, string color, string frame_size, string wheel_size, byte gears, string brake_back, string brake_front, int price)
        {
            using (var context = new bicycle_rental2DBEntities())
            {
                Bicycle newBicycle = new Bicycle
                {
                    frame_number     = frame_number,
                    bicycle_type     = type,
                    bicycle_category = category,
                    recommended_user = user,
                    make             = make,
                    model            = model,
                    color            = color,
                    frame_size       = frame_size,
                    wheel_size       = wheel_size,
                    gears            = gears,
                    brake_back       = brake_back,
                    brake_front      = brake_front,
                    price            = price
                };
                context.Bicycles.Add(newBicycle);

                /*Följande if-sats kollar vilken cykeltyp som ska läggas till och uppdaterar korrekt subtabell för cyklar.
                 * Tillgängliga subtabeller för cyklar är vanliga cyklar, elcyklar, och enhjulingar.
                 * Om det är en elcykel som läggs till kommer några extraprompts relaterat till batteriet på elcykeln.
                 * När cykeln placeras i en korrekt subtabell så utförs en SaveChange.*/

                if (type == "Vanlig cykel")
                {
                    context.Regular_bicycle.Add(new Regular_bicycle {
                        frame_number = frame_number
                    });
                    context.SaveChanges();
                }
                else if (type == "Elcykel")
                {
                    Console.WriteLine("Enter the battery capacity (in Wh).");
                    string UserInputBatteryCapacity = Console.ReadLine();

                    Console.WriteLine("Enter the average charge time (in hours).");
                    string UserInputAvgChrgTime = Console.ReadLine();

                    Console.WriteLine("Enter the average distance (in km).");
                    string UserInputAvgDistance = Console.ReadLine();

                    Console.WriteLine("Enter the motor power (in W).");
                    string UserInputPower = Console.ReadLine();

                    context.Electric_bicycle.Add(new Electric_bicycle {
                        frame_number            = frame_number,
                        battery_capacity        = UserInputBatteryCapacity,
                        battery_avg_charge_time = UserInputAvgChrgTime,
                        battery_avg_distance    = UserInputAvgDistance,
                        motor_power             = UserInputPower
                    });

                    context.SaveChanges();
                }
                else if (type == "Enhjuling")
                {
                    context.Unicycles.Add(new Unicycle {
                        frame_number = frame_number
                    });
                    context.SaveChanges();
                }
            }
        }