Пример #1
0
        /*Följande metod raderar en cykel ur "generella" cykeltabellen SAMT den korrekta subtabellen m.h.a. ramnummret
         * som kommer ifrån en användare.*/

        public void RemoveBicycleFromDatabase(string frame_number)
        {
            using (var context = new bicycle_rental2DBEntities())
            {
                Bicycle removeBicycle = context.Bicycles.FirstOrDefault(c => c.frame_number == frame_number);
                context.Bicycles.Remove(removeBicycle);

                if (removeBicycle.bicycle_type == "Vanlig cykel")
                {
                    Regular_bicycle removeRegular = context.Regular_bicycle.FirstOrDefault(b => b.frame_number == frame_number);
                    context.Regular_bicycle.Remove(removeRegular);
                    context.SaveChanges();
                }
                else if (removeBicycle.bicycle_type == "Elcykel")
                {
                    Electric_bicycle removeElectric = context.Electric_bicycle.FirstOrDefault(b => b.frame_number == frame_number);
                    context.Electric_bicycle.Remove(removeElectric);
                    context.SaveChanges();
                }
                else if (removeBicycle.bicycle_type == "Enhjuling")
                {
                    Unicycle removeUnicycle = context.Unicycles.FirstOrDefault(b => b.frame_number == frame_number);
                    context.Unicycles.Remove(removeUnicycle);
                    context.SaveChanges();
                }
            }
        }
Пример #2
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();
                    }
                }
            }
        }
Пример #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();
                }
            }
        }