Пример #1
0
        public static void Event_InteractPressed(Client player, int id)
        {
            switch (id)
            {
            case 54:
                NAPI.Entity.SetEntityPosition(player, ExitAlcoShop[player.GetData("CLUB")] + new Vector3(0, 0, 1.2));
                return;

            case 55:
                NAPI.Entity.SetEntityPosition(player, EnterAlcoShop[player.GetData("CLUB")] + new Vector3(0, 0, 1.2));
                return;

            case 56:
                if (!Main.Players.ContainsKey(player))
                {
                    return;
                }

                if (Main.Players[player].FractionID != player.GetData("CLUB"))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не состоите в {Fractions.Manager.getName(player.GetData("CLUB"))}", 3000);
                    return;
                }

                if (!player.IsInVehicle)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы должны находиться в машине", 3000);
                    return;
                }

                int club = player.GetData("CLUB");

                var matCount = VehicleInventory.GetCountOfType(player.Vehicle, ItemType.Material);
                if (matCount == 0)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "В машине нет материала", 3000);
                    return;
                }

                if (ClubsStocks[club].Materials >= MaxMats)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Склад заполнен", 3000);
                    return;
                }

                VehicleInventory.Remove(player.Vehicle, ItemType.Material, matCount);
                ClubsStocks[club].Materials += matCount;
                ClubsStocks[club].UpdateLabel();
                Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, "Вы выгрузили весь материал из машины на склад клуба", 3000);
                return;

            case 57:
                if (!Main.Players.ContainsKey(player))
                {
                    return;
                }
                OpenBuyAlcoholMenu(player);
                return;
            }
        }
Пример #2
0
        public void TestMethod_Statistics()
        {
            IVehicleInventory inventory = new VehicleInventory();
            var mfg = new Manufacturer("Toyota", "100 main", "800-999-9999");

            var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Ford, "model", 2017, "yellow", 1500, 10000, 10000);

            inventory.Add(vehicle);
            vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.BMW, "model", 2016, "red", 2500, 60000, 60000);
            inventory.Add(vehicle);
            vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.Toyota, "model", 2016, "red", 2500, 20000, 20000);
            inventory.Add(vehicle);

            var vehicleList = inventory.List();

            Assert.AreEqual(30000, vehicleList.AverageMSRP());
            Assert.AreEqual(10000, vehicleList.MinMSRP());
            Assert.AreEqual(60000, vehicleList.MaxMSRP());

            Assert.AreEqual(30000, vehicleList.AverageMileage());
            Assert.AreEqual(10000, vehicleList.MinMileage());
            Assert.AreEqual(60000, vehicleList.MaxMileage());

            Assert.AreEqual(3, vehicleList.CountDueForOilChange());

            //do an oil change, then re-check count
            vehicle.LastOilChangeDate  = DateTime.Now;
            vehicle.LastOilChangeMiles = 20000;
            Assert.AreEqual(2, vehicleList.CountDueForOilChange());
        }
Пример #3
0
        public void CanDeleteVehicle()
        {
            VehicleInventory vehicleToAdd = new VehicleInventory();

            var repo = new VehicleInventoryRepositoryDapper();

            vehicleToAdd.ModelID            = 1;
            vehicleToAdd.MakeID             = 1;
            vehicleToAdd.SalesTypeID        = 1;
            vehicleToAdd.BodyTypeID         = 3;
            vehicleToAdd.YearBuilt          = 2020;
            vehicleToAdd.TransmissionID     = 1;
            vehicleToAdd.ExtColorID         = 1;
            vehicleToAdd.IntColorID         = 3;
            vehicleToAdd.Mileage            = 233;
            vehicleToAdd.VINNumber          = "3A4FY48B87T593601";
            vehicleToAdd.MSRP               = 24900;
            vehicleToAdd.SalesPrice         = 23000;
            vehicleToAdd.VehicleDescription = "Brand New!";
            vehicleToAdd.IsFeaturedVehicle  = true;
            vehicleToAdd.ImageFileName      = "placeholder.png";

            repo.AddVehicle(vehicleToAdd);

            var loaded = repo.GetByID(5);

            Assert.IsNotNull(loaded);

            repo.DeleteVehicle(5);

            loaded = repo.GetByID(5);

            Assert.IsNull(loaded);
        }
Пример #4
0
        public static BOLCarInventory UpDataTo_db(BOLCarInventory oldCar, BOLCarInventory newCar)
        {
            try
            {
                using (RentalcarsEntities1 ef = new RentalcarsEntities1())
                {
                    VehicleInventory dbUser = ef.VehicleInventories.FirstOrDefault(u => u.VehicleNumber == oldCar.VehicleNumber);
                    if (dbUser != null)
                    {
                        dbUser.CarsTypeID      = newCar.CarsTypeID;
                        dbUser.UpdatedMileage  = newCar.UpdatedMileage;
                        dbUser.VehiclePic      = newCar.VehiclePic;
                        dbUser.IsProperForRent = newCar.IsProperForRent;
                        dbUser.VehicleNumber   = newCar.VehicleNumber;
                        dbUser.BranchesID      = newCar.BranchesID;

                        ef.SaveChanges();
                        return(newCar);
                    }

                    else
                    {
                        throw new InvalidOperationException($"this car type is not exist please change the values and try again");
                    }
                }
            }
            catch
            {
                return(null);
            }
        }
Пример #5
0
        private static void DemoVehicleInventory()
        {
            IVehicleInventory inventory = new VehicleInventory();
            var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Tesla, "Model S", 2017, "yellow", 1500, 2500, 100);

            //var temp = vehicle.Mfg;
            inventory.Add(vehicle);
            vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.BMW, "325i", 2016, "red", 2500, 4000, 100);
            inventory.Add(vehicle);

            inventory.Remove(vehicle);

            inventory.Add(vehicle);
            var v1 = inventory.List(SortOrder.Vin);

            Console.WriteLine("List of Vehicles");
            v1.ForEach(v => Console.WriteLine($"{v.VinNumber}, {v.Make}, {v.Model}"));

            var v2 = inventory.FindByYear(2017);

            var v3 = inventory.List(SortOrder.Vin).FindByMake(VehicleMake.BMW);

            v3.AddToMileage(99);
            var v3_1 = inventory.List().FindByMake(VehicleMake.BMW);

            var v4 = inventory.List().FindByMake(VehicleMake.Ford);

            var stringList = inventory.ListAsString(SortOrder.Vin);

            Console.WriteLine("List of Vehicles - in Json(string) format");
            Console.WriteLine($"{stringList}");
        }
Пример #6
0
 public static BOLCarInventory AddCarTo_db(BOLCarInventory car)
 {
     try
     {
         using (RentalcarsEntities1 ef = new RentalcarsEntities1())
         {
             VehicleInventory isExist = ef.VehicleInventories.FirstOrDefault(u => u.VehicleNumber == car.VehicleNumber);
             if (isExist == null)
             {
                 ef.VehicleInventories.Add(new VehicleInventory
                 {
                     CarsTypeID      = car.CarsTypeID,
                     UpdatedMileage  = car.UpdatedMileage,
                     VehiclePic      = car.VehiclePic,
                     IsProperForRent = car.IsProperForRent,
                     VehicleNumber   = car.VehicleNumber,
                     BranchesID      = car.BranchesID
                 });
                 ef.SaveChanges();
                 return(car);
             }
             else
             {
                 throw new InvalidOperationException($"this car number is already exist please change and try again");
             }
         }
     }
     catch
     {
         return(null);
     }
 }
Пример #7
0
 public static string deleteFrom_db(int VehicleNumber)
 {
     try
     {
         using (RentalcarsEntities1 ef = new RentalcarsEntities1())
         {
             VehicleInventory dbvehicle   = ef.VehicleInventories.FirstOrDefault(u => u.VehicleNumber == VehicleNumber);
             List <Order>     isItInOrder = ef.Orders.Where(u => u.VehiclesID == dbvehicle.VehiclesID && u.ActualReturnDate != null).ToList();
             if (isItInOrder.Count == 0)
             {
                 if (dbvehicle != null)
                 {
                     ef.VehicleInventories.Remove(dbvehicle);
                     ef.SaveChanges();
                     return("deleted");
                 }
                 else
                 {
                     throw new InvalidOperationException($"this car type is not exist please change the values and try again");
                 }
             }
             else
             {
                 return("this vehicle is in order");
             }
         }
     }
     catch
     {
         return("wrong vehicle number");
     }
 }
Пример #8
0
        public void TestMethod_OilChange()
        {
            IVehicleInventory inventory = new VehicleInventory();
            var mfg = new Manufacturer("Subaru", "100 main", "800-999-9999");

            var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Subaru, "Impreza", 2017, "yellow", 1500, 2500, 10000);

            vehicle.LastOilChangeDate  = new DateTime(2016, 10, 1);
            vehicle.LastOilChangeMiles = 1000;
            Assert.IsTrue(vehicle.IsDueForOilChange());

            vehicle.LastOilChangeMiles = 10000;
            vehicle.LastOilChangeDate  = DateTime.Now;
            Assert.IsFalse(vehicle.IsDueForOilChange());


            vehicle = VehicleFactory.CreateVehicle("vinnumberVW", VehicleMake.Volkswagen, "Jetta", 2017, "yellow", 1500, 2500, 10000);
            vehicle.LastOilChangeDate  = new DateTime(2016, 10, 1);
            vehicle.LastOilChangeMiles = 2100;
            Assert.IsFalse(vehicle.IsDueForOilChange());

            vehicle = VehicleFactory.CreateVehicle("vinnumbertesla", VehicleMake.Tesla, "Models", 2017, "yellow", 1500, 2500, 10000);
            Assert.IsFalse(vehicle.IsDueForOilChange());

            vehicle = VehicleFactory.CreateVehicle("vinnumbertoyota", VehicleMake.Toyota, "4runner", 2017, "yellow", 1500, 2500, 10000);
            Assert.IsTrue(vehicle.IsDueForOilChange());
            vehicle.LastOilChangeDate  = new DateTime(2017, 1, 1);
            vehicle.LastOilChangeMiles = 11000;
            Assert.IsFalse(vehicle.IsDueForOilChange());

            // alternative - use separate class to check for oil change
            var dueForOilChange = OilChangeRules.IsDueForOilChange(vehicle);

            Assert.IsFalse(dueForOilChange);
        }
Пример #9
0
        public static List <int> GetListOrderByDate(DateTime start, DateTime end)
        {
            List <int> orderedCars = new List <int>();

            try
            {
                using (RentalcarsEntities1 ef = new RentalcarsEntities1())
                {
                    List <Order> dbOrder = ef.Orders.Where(u => u.ActualReturnDate == null).ToList();
                    if (dbOrder.Count != 0)
                    {
                        foreach (var item in dbOrder)
                        {
                            if (item.ReturnDate >= start && item.StartDate <= end || item.StartDate <= start && item.ReturnDate >= end)
                            {
                                VehicleInventory getCarInfo = ef.VehicleInventories.FirstOrDefault(u => u.VehiclesID == item.VehiclesID);
                                orderedCars.Add(getCarInfo.VehicleNumber);
                            }
                        }
                    }
                    return(orderedCars);
                }
            }
            catch { return(null); }
        }
Пример #10
0
        public void CanUpdateListing()
        {
            VehicleInventory vehicleToAdd = new VehicleInventory();

            var repo = new VehicleInventoryRepositoryDapper();

            vehicleToAdd.ModelID            = 1;
            vehicleToAdd.MakeID             = 1;
            vehicleToAdd.SalesTypeID        = 1;
            vehicleToAdd.BodyTypeID         = 3;
            vehicleToAdd.YearBuilt          = 2020;
            vehicleToAdd.TransmissionID     = 1;
            vehicleToAdd.ExtColorID         = 1;
            vehicleToAdd.IntColorID         = 3;
            vehicleToAdd.Mileage            = 233;
            vehicleToAdd.VINNumber          = "3A4FY48B87T593601";
            vehicleToAdd.MSRP               = 24900;
            vehicleToAdd.SalesPrice         = 23000;
            vehicleToAdd.VehicleDescription = "Brand New!";
            vehicleToAdd.IsFeaturedVehicle  = true;
            vehicleToAdd.ImageFileName      = "placeholder.png";

            repo.AddVehicle(vehicleToAdd);

            vehicleToAdd.ModelID            = 2;
            vehicleToAdd.MakeID             = 2;
            vehicleToAdd.SalesTypeID        = 2;
            vehicleToAdd.BodyTypeID         = 3;
            vehicleToAdd.YearBuilt          = 2017;
            vehicleToAdd.TransmissionID     = 1;
            vehicleToAdd.ExtColorID         = 2;
            vehicleToAdd.IntColorID         = 1;
            vehicleToAdd.Mileage            = 2300;
            vehicleToAdd.VINNumber          = "3A4FY48Z87T593601";
            vehicleToAdd.MSRP               = 22900;
            vehicleToAdd.SalesPrice         = 22000;
            vehicleToAdd.VehicleDescription = "Slightly New!";
            vehicleToAdd.IsFeaturedVehicle  = true;
            vehicleToAdd.ImageFileName      = "updated.png";

            repo.UpdateVehicle(vehicleToAdd);

            var updatedVehicle = repo.GetByID(5);

            Assert.AreEqual(2, updatedVehicle.ModelID);
            Assert.AreEqual(2, updatedVehicle.MakeID);
            Assert.AreEqual(2, updatedVehicle.SalesTypeID);
            Assert.AreEqual(3, updatedVehicle.BodyTypeID);
            Assert.AreEqual(2017, updatedVehicle.YearBuilt);
            Assert.AreEqual(1, updatedVehicle.TransmissionID);
            Assert.AreEqual(2, updatedVehicle.ExtColorID);
            Assert.AreEqual(1, updatedVehicle.IntColorID);
            Assert.AreEqual(2300, updatedVehicle.Mileage);
            Assert.AreEqual("3A4FY48Z87T593601", updatedVehicle.VINNumber);
            Assert.AreEqual(22900, updatedVehicle.MSRP);
            Assert.AreEqual(22000, updatedVehicle.SalesPrice);
            Assert.AreEqual("Slightly New!", updatedVehicle.VehicleDescription);
            Assert.AreEqual(true, updatedVehicle.IsFeaturedVehicle);
            Assert.AreEqual("updated.png", updatedVehicle.ImageFileName);
        }
        public void AddVehicle(VehicleInventory vehicle)
        {
            using (var cn = new SqlConnection(Settings.GetConnectionString()))
            {
                var parameters = new DynamicParameters();

                parameters.Add("@VehicleID",
                               dbType: DbType.Int32, direction: ParameterDirection.Output);
                parameters.Add("@ModelID", vehicle.ModelID);
                parameters.Add("@MakeID", vehicle.MakeID);
                parameters.Add("@SalesTypeID", vehicle.SalesTypeID);
                parameters.Add("@BodyTypeID", vehicle.BodyTypeID);
                parameters.Add("@YearBuilt", vehicle.YearBuilt);
                parameters.Add("@TransmissionID", vehicle.TransmissionID);
                parameters.Add("@ExtColorID", vehicle.ExtColorID);
                parameters.Add("@IntColorID", vehicle.IntColorID);
                parameters.Add("@Mileage", vehicle.Mileage);
                parameters.Add("@VINNumber", vehicle.VINNumber);
                parameters.Add("@MSRP", vehicle.MSRP);
                parameters.Add("@SalesPrice", vehicle.SalesPrice);
                parameters.Add("@VehicleDescription", vehicle.VehicleDescription);
                parameters.Add("@IsFeaturedVehicle", vehicle.IsFeaturedVehicle);
                parameters.Add("@ImageFileName", vehicle.ImageFileName);

                cn.Execute("VehicleInsert",
                           parameters, commandType: CommandType.StoredProcedure);

                vehicle.VehicleID = parameters.Get <int>("@VehicleID");
            }
        }
Пример #12
0
 public static int GetCarsTypeID(int vehiclesID)
 {
     using (RentalcarsEntities1 ef = new RentalcarsEntities1())
     {
         VehicleInventory getCarTypeId = ef.VehicleInventories.FirstOrDefault(u => u.VehiclesID == vehiclesID);
         return(getCarTypeId.CarsTypeID);
     }
 }
Пример #13
0
        public void TestMethod_BasicFeatures()
        {
            IVehicleInventory inventory = new VehicleInventory();
            var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Tesla, "model", 2017, "yellow", 1500, 2500, 100);

            //var temp = vehicle.Mfg;
            inventory.Add(vehicle);
            vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.BMW, "model", 2016, "red", 2500, 4000, 100);
            inventory.Add(vehicle);
            var v1 = inventory.List(SortOrder.Vin);

            Assert.AreEqual(2, v1.Count);
            Assert.AreEqual(v1[0].VinNumber, "vinnumber1");

            inventory.Remove(vehicle);
            v1 = inventory.List(SortOrder.Vin);
            Assert.AreEqual(1, v1.Count);

            inventory.Add(vehicle);

            var v2 = inventory.FindByYear(2017);

            Assert.AreEqual(1, v2.Count);

            var v3 = inventory.List(SortOrder.Vin).FindByMake(VehicleMake.BMW);

            Assert.AreEqual(1, v3.Count);
            Assert.IsTrue(v3[0].Disclaimer.Contains("Copyright BMW AG, Munich, Germany"));

            v3.AddToMileage(99);
            var v3_1 = inventory.List().FindByMake(VehicleMake.BMW);

            Assert.AreEqual(199, v3_1[0].Miles);

            var v4 = inventory.List().FindByMake(VehicleMake.Ford);

            Assert.AreEqual(0, v4.Count);

            var stringList = inventory.ListAsString(SortOrder.Vin);

            Assert.IsTrue(stringList.Contains("vinnumber3"));
            Assert.IsTrue(stringList.Contains("vinnumber1"));
            // verify that the BMW has the disclaimer
            Assert.IsTrue(stringList.Contains("Copyright BMW AG, Munich, Germany"));

            // test for tesla manufacturer info
            Assert.IsTrue(stringList.Contains("Teslaphone"));
        }
        public void AddVehicle(VehicleInventory vehicle)
        {
            var repo = GetAll();

            VehicleInventory newVehicle = new VehicleInventory();

            newVehicle.MakeID             = vehicle.MakeID;
            newVehicle.ModelID            = vehicle.ModelID;
            newVehicle.SalesTypeID        = vehicle.SalesTypeID;
            newVehicle.BodyTypeID         = vehicle.BodyTypeID;
            newVehicle.YearBuilt          = vehicle.YearBuilt;
            newVehicle.TransmissionID     = vehicle.TransmissionID;
            newVehicle.ExtColorID         = vehicle.ExtColorID;
            newVehicle.IntColorID         = vehicle.IntColorID;
            newVehicle.Mileage            = vehicle.Mileage;
            newVehicle.VINNumber          = vehicle.VINNumber;
            newVehicle.MSRP               = vehicle.MSRP;
            newVehicle.SalesPrice         = vehicle.SalesPrice;
            newVehicle.VehicleDescription = vehicle.VehicleDescription;
            newVehicle.IsFeaturedVehicle  = vehicle.IsFeaturedVehicle;
            newVehicle.ImageFileName      = vehicle.ImageFileName;
        }
Пример #15
0
        public static void BuyDrugs(Client player, int amount)
        {
            if (!Main.Players.ContainsKey(player))
            {
                return;
            }
            if (!player.IsInVehicle || !player.Vehicle.HasData("CANDRUGS"))
            {
                Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы должны находиться в машине, которая может перевозить наркотики", 3000);
                return;
            }
            if (Fractions.Manager.FractionTypes[Main.Players[player].FractionID] != 1)
            {
                Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы не можете закупать наркотики", 3000);
                return;
            }
            if (!Fractions.Manager.canUseCommand(player, "buydrugs"))
            {
                return;
            }

            var tryAdd = VehicleInventory.TryAdd(player.Vehicle, new nItem(ItemType.Drugs, amount));

            if (tryAdd == -1 || tryAdd > 0)
            {
                Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Недостаточно места в машине", 3000);
                return;
            }
            if (Fractions.Stocks.fracStocks[Main.Players[player].FractionID].Money < amount * PricePerDrug)
            {
                Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Недостаточно средств на складе банды", 3000);
                return;
            }

            VehicleInventory.Add(player.Vehicle, new nItem(ItemType.Drugs, amount));
            Fractions.Stocks.fracStocks[Main.Players[player].FractionID].Money -= amount * PricePerDrug;

            Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы закупили {amount}г наркотиков", 3000);
        }
Пример #16
0
        public IHttpActionResult DeleteVehicle(int vehicleID)
        {
            var repo = VehicleRepositoryFactory.GetRepository();

            VehicleInventory vehicle = repo.GetByID(vehicleID);

            if (vehicle == null)
            {
                return(NotFound());
            }
            else
            {
                var      filepath = "~/images/" + vehicle.ImageFileName;
                FileInfo file     = new FileInfo(filepath);
                if (file.Exists)
                {
                    file.Delete();
                }
                repo.DeleteVehicle(vehicleID);
                return(Ok());
            }
        }
Пример #17
0
        public static int GetVehicleNumber(int vehiclesID)
        {
            try
            {
                using (RentalcarsEntities1 ef = new RentalcarsEntities1())
                {
                    VehicleInventory dbUser = ef.VehicleInventories.FirstOrDefault(u => u.VehiclesID == vehiclesID);

                    if (dbUser != null)
                    {
                        return(dbUser.VehicleNumber);
                    }
                    else
                    {
                        throw new InvalidOperationException($"this car is not exist please change  the values and try again");
                    }
                }
            }
            catch (Exception EX)
            {
                throw new Exception(EX.ToString());
            }
        }
Пример #18
0
        public static BOLCarInventory GetCarFrom_db(int carNumber)
        {
            try
            {
                BOLCarInventory carsInventory = new BOLCarInventory();

                using (RentalcarsEntities1 ef = new RentalcarsEntities1())
                {
                    VehicleInventory orderedCar = ef.VehicleInventories.FirstOrDefault(u => u.VehicleNumber == carNumber);

                    carsInventory.CarsTypeID      = orderedCar.CarsTypeID;
                    carsInventory.UpdatedMileage  = orderedCar.UpdatedMileage;
                    carsInventory.VehiclePic      = orderedCar.VehiclePic;
                    carsInventory.IsProperForRent = orderedCar.IsProperForRent;
                    carsInventory.VehicleNumber   = orderedCar.VehicleNumber;
                    carsInventory.BranchesID      = orderedCar.BranchesID;

                    return(carsInventory);
                }
            }
            catch { }
            return(null);
        }
Пример #19
0
        public static List <BOLCarInventory> GetCarFrom_db(List <BOLOrder> orderlist)
        {
            List <BOLCarInventory> carsInventory = new List <BOLCarInventory>();

            using (RentalcarsEntities1 ef = new RentalcarsEntities1())
            {
                foreach (var item in orderlist)
                {
                    VehicleInventory orderedCar = ef.VehicleInventories.FirstOrDefault(u => u.VehiclesID == item.VehiclesID);

                    carsInventory.Add(new BOLCarInventory
                    {
                        CarsTypeID      = orderedCar.CarsTypeID,
                        UpdatedMileage  = orderedCar.UpdatedMileage,
                        VehiclePic      = orderedCar.VehiclePic,
                        IsProperForRent = orderedCar.IsProperForRent,
                        VehicleNumber   = orderedCar.VehicleNumber,
                        BranchesID      = orderedCar.BranchesID
                    });
                }
                return(carsInventory);
            }
        }
        public void UpdateVehicle(VehicleInventory vehicle)
        {
            var repo = VehicleRepositoryFactory.GetRepository();

            VehicleInventory updateVehicle = new VehicleInventory();

            updateVehicle.MakeID             = vehicle.MakeID;
            updateVehicle.ModelID            = vehicle.ModelID;
            updateVehicle.SalesTypeID        = vehicle.SalesTypeID;
            updateVehicle.BodyTypeID         = vehicle.BodyTypeID;
            updateVehicle.YearBuilt          = vehicle.YearBuilt;
            updateVehicle.TransmissionID     = vehicle.TransmissionID;
            updateVehicle.ExtColorID         = vehicle.ExtColorID;
            updateVehicle.IntColorID         = vehicle.IntColorID;
            updateVehicle.Mileage            = vehicle.Mileage;
            updateVehicle.VINNumber          = vehicle.VINNumber;
            updateVehicle.MSRP               = vehicle.MSRP;
            updateVehicle.SalesPrice         = vehicle.SalesPrice;
            updateVehicle.VehicleDescription = vehicle.VehicleDescription;
            updateVehicle.IsFeaturedVehicle  = vehicle.IsFeaturedVehicle;
            updateVehicle.ImageFileName      = vehicle.ImageFileName;

            repo.UpdateVehicle(updateVehicle);
        }
Пример #21
0
        public async Task <Inventory> Update(bool isVeh, string vehPlate = "")
        {
            Log.Debug("Requesting inv");
            if (isVeh)
            {
                vehicleInventory = null;
                Magicallity.Client.Client.Instance.TriggerServerEvent("Inventory.RequestInventory", vehPlate);
                while (vehicleInventory == null)
                {
                    await BaseScript.Delay(0);
                }
            }
            else
            {
                playerInventory = null;
                Magicallity.Client.Client.Instance.TriggerServerEvent("Inventory.RequestInventory");
                while (playerInventory == null)
                {
                    await BaseScript.Delay(0);
                }
            }

            return(isVeh ? vehicleInventory as Inventory : playerInventory as Inventory);
        }
Пример #22
0
        public static void interactPressed(Client player, int interact)
        {
            switch (interact)
            {
            case 15:
                if (player.IsInVehicle)
                {
                    return;
                }
                if (player.HasData("FOLLOWING"))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000);
                    return;
                }
                player.SetData("IN_HOSPITAL", true);
                NAPI.Entity.SetEntityPosition(player, emsCheckpoints[1] + new Vector3(0, 0, 1.12));
                Main.PlayerEnterInterior(player, emsCheckpoints[1] + new Vector3(0, 0, 1.12));
                return;

            case 16:
                if (player.HasData("FOLLOWING"))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000);
                    return;
                }
                if (NAPI.Player.GetPlayerHealth(player) < 100)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы должны сначала закончить лечение", 3000);
                    break;
                }

                /*if (player.HasData("HEAL_TIMER"))
                 * {
                 *  Main.StopT(player.GetData("HEAL_TIMER"));
                 *  player.ResetData("HEAL_TIMER");
                 *  Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Ваше лечение закончено", 3000);
                 * }*/
                player.SetData("IN_HOSPITAL", false);
                NAPI.Entity.SetEntityPosition(player, emsCheckpoints[0] + new Vector3(0, 0, 1.12));
                Main.PlayerEnterInterior(player, emsCheckpoints[0] + new Vector3(0, 0, 1.12));
                return;

            case 17:
                if (Main.Players[player].FractionID != 8)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не сотрудник EMS", 3000);
                    return;
                }
                if (!player.GetData("ON_DUTY"))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не начали рабочий день", 3000);
                    return;
                }
                if (!Stocks.fracStocks[8].IsOpen)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Склад закрыт", 3000);
                    return;
                }
                OpenHospitalStockMenu(player);
                return;

            case 18:
                if (Main.Players[player].FractionID == 8)
                {
                    if (!NAPI.Data.GetEntityData(player, "ON_DUTY"))
                    {
                        Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы начали рабочий день", 3000);
                        Manager.setSkin(player, 8, Main.Players[player].FractionLVL);
                        NAPI.Data.SetEntityData(player, "ON_DUTY", true);
                        break;
                    }
                    else
                    {
                        Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы закончили рабочий день", 3000);
                        Customization.ApplyCharacter(player);
                        if (player.HasData("HAND_MONEY"))
                        {
                            player.SetClothes(5, 45, 0);
                        }
                        else if (player.HasData("HEIST_DRILL"))
                        {
                            player.SetClothes(5, 41, 0);
                        }
                        NAPI.Data.SetEntityData(player, "ON_DUTY", false);
                        break;
                    }
                }
                else
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не сотрудник EMS", 3000);
                }
                return;

            case 19:
                if (NAPI.Player.GetPlayerHealth(player) > 99)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не нуждаетесь в лечении", 3000);
                    break;
                }
                if (player.HasData("HEAL_TIMER"))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы уже лечитесь", 3000);
                    break;
                }
                Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы начали лечение", 3000);
                //player.SetData("HEAL_TIMER", Main.StartT(3750, 3750, (o) => healTimer(player), "HEAL_TIMER"));
                player.SetData("HEAL_TIMER", Timers.Start(3750, () => healTimer(player)));
                return;

            case 51:
                OpenTattooDeleteMenu(player);
                return;

            case 58:
                if (Main.Players[player].FractionID != 8)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не сотрудник EMS", 3000);
                    break;
                }
                if (!player.IsInVehicle || !player.Vehicle.HasData("CANMEDKITS"))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не в машине или Ваша машина не может перевозить аптечки", 3000);
                    break;
                }

                var medCount = VehicleInventory.GetCountOfType(player.Vehicle, ItemType.HealthKit);
                if (medCount >= 50)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"В машине максимум аптечек", 3000);
                    break;
                }
                if (HumanMedkitsLefts <= 0)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Аптечки закончились. Приезжайте за новыми через час", 3000);
                    break;
                }
                var toAdd = (HumanMedkitsLefts > 50 - medCount) ? 50 - medCount : HumanMedkitsLefts;
                HumanMedkitsLefts = toAdd;

                VehicleInventory.Add(player.Vehicle, new nItem(ItemType.HealthKit, toAdd));
                Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы заполнили машину аптечками", 3000);
                return;

            case 63:
                if (Main.Players[player].FractionID != 8)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не сотрудник EMS", 3000);
                    break;
                }
                if (player.IsInVehicle)
                {
                    return;
                }
                if (player.Position.Z > 50)
                {
                    if (player.HasData("FOLLOWING"))
                    {
                        Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000);
                        return;
                    }
                    player.SetData("IN_HOSPITAL", true);
                    NAPI.Entity.SetEntityPosition(player, emsCheckpoints[8] + new Vector3(0, 0, 1.12));
                    Main.PlayerEnterInterior(player, emsCheckpoints[8] + new Vector3(0, 0, 1.12));
                }
                else
                {
                    if (player.HasData("FOLLOWING"))
                    {
                        Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000);
                        return;
                    }
                    player.SetData("IN_HOSPITAL", false);
                    NAPI.Entity.SetEntityPosition(player, emsCheckpoints[7] + new Vector3(0, 0, 1.12));
                    Main.PlayerEnterInterior(player, emsCheckpoints[7] + new Vector3(0, 0, 1.12));
                }
                return;
            }
        }
Пример #23
0
        public static void interactPressed(Client player, int interact)
        {
            switch (interact)
            {
            case 34:
                if (Main.Players[player].FractionID != 14)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не служите в армии", 3000);
                    return;
                }
                if (!Stocks.fracStocks[14].IsOpen)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Склад закрыт", 3000);
                    return;
                }
                Trigger.ClientEvent(player, "armyguns");
                return;

            case 35:
                if (Main.Players[player].FractionID != 14)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не служите в армии", 3000);
                    return;
                }
                OpenArmyClothesMenu(player);
                return;

            case 36:
                if (Main.Players[player].FractionID != 14)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не служите в армии", 3000);
                    return;
                }
                if (!player.IsInVehicle)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы должны находиться в машине", 3000);
                    return;
                }
                if (!player.Vehicle.HasData("CANMATS"))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"На этой машине нельзя перевозить маты", 3000);
                    return;
                }
                if (player.HasData("loadMatsTimer"))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы уже загружаете материалы в машину", 3000);
                    return;
                }
                if (!Fractions.Stocks.maxMats.ContainsKey(player.Vehicle.DisplayName))
                {
                    return;
                }
                var count = VehicleInventory.GetCountOfType(player.Vehicle, ItemType.Material);
                if (count >= Fractions.Stocks.maxMats[player.Vehicle.DisplayName])
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"В машине максимальное кол-во материала", 3000);
                    return;
                }
                //player.SetData("loadMatsTimer", Main.StartT(20000, 99999999, (o) => loadMaterialsTimer(player), "ALOADMATS_TIMER"));
                player.SetData("loadMatsTimer", Timers.StartOnce(20000, () => loadMaterialsTimer(player)));
                player.Vehicle.SetData("loaderMats", player);
                Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Загрузка материалов началась (20 секунд)", 3000);
                Trigger.ClientEvent(player, "showLoader", "Загрузка материалов", 1);
                player.SetData("vehicleMats", player.Vehicle);
                player.SetData("whereLoad", "ARMY");
                return;

            case 25:
                if (player.IsInVehicle)
                {
                    return;
                }
                if (player.HasData("FOLLOWING"))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000);
                    return;
                }
                if (player.Position.Z > 50)
                {
                    NAPI.Entity.SetEntityPosition(player, new Vector3(ArmyCheckpoints[3].X, ArmyCheckpoints[3].Y, ArmyCheckpoints[3].Z + 1));
                    Main.PlayerEnterInterior(player, new Vector3(ArmyCheckpoints[3].X, ArmyCheckpoints[3].Y, ArmyCheckpoints[3].Z + 1));
                }
                else
                {
                    NAPI.Entity.SetEntityPosition(player, new Vector3(ArmyCheckpoints[4].X, ArmyCheckpoints[4].Y, ArmyCheckpoints[4].Z + 1));
                    Main.PlayerEnterInterior(player, new Vector3(ArmyCheckpoints[4].X, ArmyCheckpoints[4].Y, ArmyCheckpoints[4].Z + 1));
                }
                return;

            case 60:     // open stock gun
                if (Main.Players[player].FractionID != 14)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не служите в армии", 3000);
                    return;
                }
                if (!NAPI.Data.GetEntityData(player, "ON_DUTY"))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы должны начать рабочий день", 3000);
                    return;
                }
                if (!Stocks.fracStocks[14].IsOpen)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Склад закрыт", 3000);
                    return;
                }
                player.SetData("ONFRACSTOCK", 14);
                GUI.Dashboard.OpenOut(player, Stocks.fracStocks[14].Weapons, "Склад оружия", 6);
                return;
            }
        }
Пример #24
0
        private void DoInstall(PlayerSession session, string[] args, string vehicleType, VehicleInventory vehicleInventory)
        {
            string steamId = session.SteamId.ToString();

            if (!permission.UserHasPermission(steamId, InstallPermission))
            {
                Player.Message(session, GetMsg("NoPermission", steamId).Replace("{permission}", InstallPermission));
                return;
            }

            //Check if player is installing a correct vehicle attachment
            int slot;

            if (!int.TryParse(args[1], out slot) || slot < 1 || slot > 8)
            {
                Player.Message(session, GetMsg("HelpCommand", steamId));
                return;
            }

            PlayerInventory playerInventory  = session.WorldPlayerEntity.GetComponent <PlayerInventory>();
            ItemObject      playerItemObject = playerInventory.GetSlot(slot - 1);

            if (playerItemObject != null)
            {
                ESlotType itemSlotType = GetSlotType(playerItemObject);

                string slotTypeString = itemSlotType.ToString().ToLower();
                Puts(slotTypeString);
                if (!slotTypeString.Contains(vehicleType))
                {
                    Player.Message(session, GetMsg("NotVehicleAttachment", steamId));
                    return;
                }

                //Correct item. Can install/switch.
                //Check if vehicle has the same attachment type installed. If not, install player's item. If yes, switch with player's item.
                bool updated     = false;
                bool notSwitched = false;
                for (int slotNumber = 0; slotNumber < vehicleInventory.StorageConfig.Slots.Length; ++slotNumber)
                {
                    StorageSlotConfig storageSlotConfig = vehicleInventory.StorageConfig.Slots[slotNumber];
                    if (storageSlotConfig.SlotRestrictions.Contains(itemSlotType))
                    {
                        ItemObject switchslot = vehicleInventory.GetSlot(storageSlotConfig.SlotNumber);
                        if (switchslot == null)
                        {
                            //Vehicle doesn't have attachment on that slot. Can install.
                            VehicleInstall(session, playerItemObject, vehicleInventory, storageSlotConfig.SlotNumber);
                            Player.Message(session, GetMsg("VehicleInstall", steamId).Replace("{attachInstalled}", playerItemObject.Generator.name).Replace("{vehicleType}", GetMsg("vehicles/" + vehicleType)));
                            updated = true;
                        }
                        else
                        {
                            ItemObject vehicleAttach = vehicleInventory.GetSlot(storageSlotConfig.SlotNumber);
                            if (RuntimeHurtDB.Instance.GetGuid(vehicleAttach.Generator) == RuntimeHurtDB.Instance.GetGuid(playerItemObject.Generator))
                            {
                                notSwitched = true;
                                continue;
                            }
                            else
                            {
                                //Vehicle have attachment on that slot. Can switch.
                                string attachSwitched = VehicleSwitch(session, playerItemObject, vehicleInventory, storageSlotConfig.SlotNumber);
                                Player.Message(session, GetMsg("VehicleSwitch", steamId).Replace("{attachSwitched}", attachSwitched).Replace("{vehicleType}", GetMsg("vehicles/" + vehicleType)).Replace("{attachInstalled}", playerItemObject.Generator.name));
                                updated = true;
                            }
                        }
                        vehicleInventory.Invalidate(false);
                    }
                    if (updated)
                    {
                        break;
                    }
                }
                if (notSwitched && !updated)
                {
                    Player.Message(session, GetMsg("VehicleAttachmentAlreadyInstalled", steamId).Replace("{attachment}", playerItemObject.Generator.name));
                }
            }
            else
            {
                Player.Message(session, GetMsg("NoAttachmentFound", steamId).Replace("{slot}", slot.ToString()));
            }
        }
Пример #25
0
        public static void loadMaterialsTimer(Client player)
        {
            NAPI.Task.Run(() =>
            {
                try
                {
                    if (!player.HasData("vehicleMats"))
                    {
                        return;
                    }
                    if (!player.IsInVehicle)
                    {
                        return;
                    }
                    Vehicle vehicle = player.GetData("vehicleMats");

                    var itemCount = VehicleInventory.GetCountOfType(player.Vehicle, ItemType.Material);
                    if (player.GetData("whereLoad") == "WAR" && !Fractions.MatsWar.isWar)
                    {
                        player.SetData("INTERACTIONCHECK", 0);
                        //Main.StopT(player.GetData("loadMatsTimer"), "loadMaterialsTimer");
                        player.ResetData("loadMatsTimer");
                        Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Корабль уже уехал", 3000);
                        return;
                    }
                    if (itemCount >= Fractions.Stocks.maxMats[vehicle.DisplayName])
                    {
                        Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"В машине максимальное кол-во материала", 3000);
                        //Main.StopT(player.GetData("loadMatsTimer"), "loadMaterialsTimer_1");
                        player.ResetData("loadMatsTimer");
                        return;
                    }
                    var data = new nItem(ItemType.Material);
                    if (player.GetData("whereLoad") == "WAR")
                    {
                        var count = Fractions.Stocks.maxMats[vehicle.DisplayName] - itemCount;
                        if (count >= Fractions.MatsWar.matsLeft)
                        {
                            data.Count = itemCount + Fractions.MatsWar.matsLeft;
                            Fractions.MatsWar.matsLeft = 0;
                            Fractions.MatsWar.endWar();
                        }
                        else
                        {
                            data.Count = count;
                            Fractions.MatsWar.matsLeft -= count;
                        }
                    }
                    else
                    {
                        data.Count = Fractions.Stocks.maxMats[vehicle.DisplayName] - itemCount;
                    }
                    VehicleInventory.Add(vehicle, data);
                    NAPI.Data.ResetEntityData(vehicle, "loaderMats");
                    //Main.StopT(player.GetData("loadMatsTimer"), "loadMaterialsTimer_2");
                    player.ResetData("loadMatsTimer");
                    Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы загрузили материалы в машину", 3000);
                }
                catch (Exception e) { Log.Write("LoadMatsTimer: " + e.Message, nLog.Type.Error); }
            });
        }
Пример #26
0
        public bool SaveInventoryVehicle(VehicleInventoryDTO dto, string mode)
        {
            var flag = false;

            try
            {
                using (var entities = new ManiMotorsEntities1())
                {
                    if (mode == "EDIT")
                    {
                        var info = entities.VehicleInventories.FirstOrDefault(v => v.VehicleInventoryID == dto.VehicleInventoryID);
                        info.VehicleInfoID          = dto.VehicleInfoID;
                        info.ChasisNo               = dto.ChasisNo;
                        info.EngineNo               = dto.EngineNo;
                        info.Color                  = dto.Color;
                        info.ManfgDate              = dto.MfgDate;
                        info.ServiceBookNo          = dto.ServiceBookNo;
                        info.KeyNo                  = dto.KeyNo;
                        info.BatteryMake            = dto.BatteryMake;
                        info.BatteryNo              = dto.BatteryNo;
                        info.CreatedDate            = dto.CreatedDate;
                        info.Createdby              = dto.CreatedBy;
                        info.ModifiedDate           = dto.ModifiedDate;
                        info.Modifiedby             = dto.ModifiedBy;
                        info.IsMarginPrice          = dto.IsMarginPrice;
                        info.Is50PercentMarginPrice = dto.Is50PerMarginPrice;
                        info.Is70PercentMarginPrice = dto.Is70PerMarginPrice;
                        info.ExShowroomPrice        = dto.ExShowRoomPrice;
                        info.LT_RT_OtherExp         = dto.LT_RT_OtherExp;
                        info.InsurancePrice         = dto.InsurancePrice;
                        info.OnRoadPrice            = dto.OnRoadPrice;
                        info.MarginPrice            = dto.MarginPrice;
                        info.CreditPercentMargin    = dto.Margin50;
                        info.FullCashPercentMargin  = dto.Margin70;
                        info.WarrantyPrice          = dto.WarrantyPrice;
                        entities.SaveChanges();

                        var invInfo = entities.VehicleInventoryStatus.FirstOrDefault(vi => vi.VehicleInventoryID == dto.VehicleInventoryID);
                        if (invInfo != null)
                        {
                            invInfo.VehicleInventoryStatusTypeID = dto.VehicleInventoryStatusTypeID;
                            invInfo.Remarks      = dto.Remarks;
                            invInfo.Modifiedby   = dto.ModifiedBy;
                            invInfo.ModifiedDate = dto.ModifiedDate;
                            entities.SaveChanges();
                        }
                        flag = true;
                    }
                    else
                    {
                        VehicleInventory info = new VehicleInventory()
                        {
                            VehicleInfoID          = dto.VehicleInfoID,
                            ChasisNo               = dto.ChasisNo,
                            EngineNo               = dto.EngineNo,
                            Color                  = dto.Color,
                            ManfgDate              = dto.MfgDate,
                            ServiceBookNo          = dto.ServiceBookNo,
                            KeyNo                  = dto.KeyNo,
                            BatteryNo              = dto.BatteryNo,
                            BatteryMake            = dto.BatteryMake,
                            CreatedDate            = dto.CreatedDate,
                            Createdby              = dto.CreatedBy,
                            ModifiedDate           = dto.ModifiedDate,
                            Modifiedby             = dto.ModifiedBy,
                            IsMarginPrice          = dto.IsMarginPrice,
                            Is50PercentMarginPrice = dto.Is50PerMarginPrice,
                            Is70PercentMarginPrice = dto.Is70PerMarginPrice,
                            ExShowroomPrice        = dto.ExShowRoomPrice,
                            LT_RT_OtherExp         = dto.LT_RT_OtherExp,
                            InsurancePrice         = dto.InsurancePrice,
                            OnRoadPrice            = dto.OnRoadPrice,
                            MarginPrice            = dto.MarginPrice,
                            CreditPercentMargin    = dto.Margin50,
                            FullCashPercentMargin  = dto.Margin70,
                            WarrantyPrice          = dto.WarrantyPrice,
                        };
                        entities.VehicleInventories.Add(info);
                        entities.SaveChanges();
                        VehicleInventoryStatu obj = new VehicleInventoryStatu();
                        obj.VehicleInventoryID           = info.VehicleInventoryID;
                        obj.VehicleInventoryStatusTypeID = dto.VehicleInventoryStatusTypeID;//InStock Status
                        obj.Remarks = dto.Remarks;
                        entities.VehicleInventoryStatus.Add(obj);
                        entities.SaveChanges();
                        flag = true;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(flag);
        }
Пример #27
0
 private void VehicleInstall(PlayerSession session, ItemObject playerItemObject, VehicleInventory vehicleInventory, int slotNumber)
 {
     //Add attachment to vehicle.
     vehicleInventory.GiveItemServer(playerItemObject, slotNumber, slotNumber);
     vehicleInventory.Invalidate(false);
     //Remove attachment from player inventory
     playerItemObject.InvalidateStorage();
 }
Пример #28
0
        private string VehicleSwitch(PlayerSession session, ItemObject playerItemObject, VehicleInventory vehicleInventory, int slotNumber)
        {
            //Give vehicle attachment to player
            PlayerInventory playerInventory = session.WorldPlayerEntity.GetComponent <PlayerInventory>();
            ItemObject      vehicleAttach   = vehicleInventory.GetSlot(slotNumber);

            playerInventory.GiveItemServer(vehicleAttach);
            playerItemObject.InvalidateStorage();

            //Add attachment to vehicle
            vehicleInventory.GiveItemServer(playerItemObject, slotNumber, slotNumber);
            vehicleInventory.Invalidate(false);

            return(vehicleAttach.Generator.name);
        }
Пример #29
0
        public ActionResult AddVehicle(AddVehicleViewModel model)
        {
            VehicleInventory vehicle = new VehicleInventory();

            var repo = VehicleRepositoryFactory.GetRepository();

            var makeRepo = CarMakesRepositoryFactory.GetRepository();

            List <CarMakes> carMakes = makeRepo.GetAll();

            var makeID = (from make in carMakes
                          where model.CarMakeName == make.MakeName
                          select make.MakeID).FirstOrDefault();

            vehicle.MakeID = makeID;

            var modelRepo = CarModelItemRepositoryFactory.GetRepository();

            List <CarModelItem> carModels = modelRepo.GetAll();

            var modelID = (from carmodel in carModels
                           where model.ModelName == carmodel.ModelName
                           select carmodel.ModelID).FirstOrDefault();

            vehicle.ModelID = modelID;

            vehicle.SalesTypeID = model.SalesTypeID;

            vehicle.BodyTypeID = model.BodyTypeID;

            vehicle.YearBuilt = model.YearBuilt;

            vehicle.TransmissionID = model.TransmissionID;

            vehicle.ExtColorID = model.ExtColorID;

            vehicle.IntColorID = model.IntColorID;

            vehicle.Mileage = model.Mileage;

            if (vehicle.SalesTypeID == 1 && vehicle.Mileage > 1000)
            {
                ModelState.AddModelError("Mileage", "Mileage on new car must be below 1000");
            }
            if (vehicle.SalesTypeID == 2 && vehicle.Mileage < 1000)
            {
                ModelState.AddModelError("Mileage", "Mileage on used car must be above 1000");
            }

            vehicle.VINNumber = model.VINNumber;

            vehicle.MSRP = model.MSRP;

            if (vehicle.MSRP < 0)
            {
                ModelState.AddModelError("MSRP", "MSRP must be a positive number");
            }

            vehicle.SalesPrice = model.SalesPrice;

            if (vehicle.SalesPrice < 0)
            {
                ModelState.AddModelError("SalesPrice", "Sales price must be a positive number");
            }

            vehicle.VehicleDescription = model.VehicleDescription;

            vehicle.IsFeaturedVehicle = null;

            if (model.UploadedFile != null)
            {
                if (model.UploadedFile.ContentType != "image/jpeg" && model.UploadedFile.ContentType != "image/jpg" && model.UploadedFile.ContentType != "image/png")
                {
                    ModelState.AddModelError("UploadedFile", "Please upload a Jpeg, Jpg, or Png file");
                }
            }

            if (ModelState.IsValid)
            {
                repo.AddVehicle(vehicle);

                if (model.UploadedFile != null && model.UploadedFile.ContentLength > 0)
                {
                    if (model.UploadedFile.ContentType == "image/jpeg")
                    {
                        vehicle.ImageFileName = "inventory-" + vehicle.VehicleID + ".jpeg";
                        string path = Path.Combine(Server.MapPath("~/images"), "inventory-" + vehicle.VehicleID + ".jpeg");
                        model.UploadedFile.SaveAs(path);
                        repo.UpdateVehicle(vehicle);
                    }
                    if (model.UploadedFile.ContentType == "image/png")
                    {
                        vehicle.ImageFileName = "inventory-" + vehicle.VehicleID + ".png";
                        string path = Path.Combine(Server.MapPath("~/images"), "inventory-" + vehicle.VehicleID + ".png");
                        model.UploadedFile.SaveAs(path);
                        repo.UpdateVehicle(vehicle);
                    }
                    if (model.UploadedFile.ContentType == "image/jpg")
                    {
                        vehicle.ImageFileName = "inventory-" + vehicle.VehicleID + ".jpg";
                        string path = Path.Combine(Server.MapPath("~/images"), "inventory-" + vehicle.VehicleID + ".jpg");
                        model.UploadedFile.SaveAs(path);
                        repo.UpdateVehicle(vehicle);
                    }
                }

                return(RedirectToAction("Vehicles"));
            }
            else
            {
                var mRepo = CarMakesRepositoryFactory.GetRepository();

                List <CarMakes> makes = mRepo.GetAll();

                var carMakeNames = (from carmake in makes
                                    select carmake.MakeName).ToList();

                model.CarMakeNames = new SelectList(carMakes, "MakeName", "MakeName", 1);

                return(View("AddVehicle", model));
            }
        }
Пример #30
0
        private List <int> GetRestrictedSlots(string attach, string vehicleType, VehicleInventory vehicleInventory)
        {
            List <int>       slots   = new List <int>();
            List <ESlotType> results = new List <ESlotType>()
            {
                ESlotType.None
            };

            switch (attach)
            {
            case "rotors":
            case "rotor":
                results.Add(ESlotType.MozzyRearRotors);
                results.Add(ESlotType.MozzyMainRotors);
                break;

            case "bumper":
                results.Add(ESlotType.RoachBullBar);
                break;

            case "left":
                results.Add(vehicleType == "roach" ? ESlotType.RoachLeftPanel : ESlotType.MozzyLeftPanel);
                break;

            case "right":
                results.Add(vehicleType == "roach" ? ESlotType.RoachRightPanel : ESlotType.MozzyRightPanel);
                break;

            case "roof":
                results.Add(vehicleType == "roach" ? ESlotType.RoachRoofBay : ESlotType.MozzyRoofPanel);
                break;

            case "rear":
                switch (vehicleType)
                {
                case "roach": results.Add(ESlotType.RoachRearBay); break;

                case "mozzy": results.Add(ESlotType.MozzyTail); break;

                case "kanga": results.Add(ESlotType.KangaBackpanel); break;

                case "goat": results.Add(ESlotType.GoatBackpanel); break;
                }
                break;

            case "front":
                switch (vehicleType)
                {
                case "roach": results.Add(ESlotType.RoachFrontBay); break;

                case "mozzy": results.Add(ESlotType.MozzyFrontPanel); break;

                case "kanga": results.Add(ESlotType.KangaFrontpanel); break;

                case "goat": results.Add(ESlotType.GoatFrontpanel); break;
                }
                break;

            case "tire":
            case "wheel":
                switch (vehicleType)
                {
                case "roach": results.Add(ESlotType.RoachWheel); break;

                case "kanga":
                    results.Add(ESlotType.KangaRearWheel);
                    results.Add(ESlotType.KangaFrontWheel);
                    break;

                case "goat": results.Add(ESlotType.QuadWheel); break;

                case "slug": results.Add(ESlotType.SlugWheel); break;
                }
                break;

            case "gearbox":
            case "gear":
                switch (vehicleType)
                {
                case "roach": results.Add(ESlotType.RoachGearbox); break;

                case "kanga": results.Add(ESlotType.KangaGearbox); break;

                case "goat": results.Add(ESlotType.QuadGearbox); break;

                case "slug": results.Add(ESlotType.SlugGearbox); break;
                }
                break;

            case "engine":
                switch (vehicleType)
                {
                case "roach": results.Add(ESlotType.RoachEngine); break;

                case "mozzy": results.Add(ESlotType.MozzyEngine); break;

                case "kanga": results.Add(ESlotType.KangaEngine); break;

                case "goat": results.Add(ESlotType.QuadEngine); break;

                case "slug": results.Add(ESlotType.SlugEngine); break;
                }
                break;

            default: break;
            }

            for (int slotNumber = 0; slotNumber < vehicleInventory.StorageConfig.Slots.Length; ++slotNumber)
            {
                StorageSlotConfig storageSlotConfig = vehicleInventory.StorageConfig.Slots[slotNumber];
                if (vehicleInventory.GetSlot(storageSlotConfig.SlotNumber) == null)
                {
                    continue;
                }
                List <ESlotType> slotRestrictions = storageSlotConfig.SlotRestrictions;

                IEnumerable <ESlotType> slot = slotRestrictions.Where(x => results.Contains(x));

                if (slot != null && slot.Count() > 0)
                {
                    slots.Add(slotNumber);
                }
            }
            return(slots);
        }