Esempio n. 1
0
        public async Task WhenRequestVehicleControllerUsingPostWithVehicleOnBody_AndRequestVehicleControllerUsingGet_ThenVerifyIfVehicleWasAdded_ThenRequestVehicleControllerUsingPutWithUpdatedVehicleOnBody_AndRequestVehicleControllerUsingGet_ThenVerifyIfVehicleWasUpdated()
        {
            // Arrange
            var vehicle = VehicleHelper.CreateRandomVehicle();

            // Act
            var post_response = await client.PostAsync($"{url}",
                                                       new StringContent(JsonConvert.SerializeObject(vehicle), Encoding.UTF8, "application/json"));

            Assert.AreEqual(post_response.StatusCode, System.Net.HttpStatusCode.OK);

            var get_response = await client.GetAsync($"{url}/{vehicle.Id}");

            Assert.AreEqual(get_response.StatusCode, System.Net.HttpStatusCode.OK);
            VehicleHelper.AssertVehicle(vehicle, JsonConvert.DeserializeObject <Vehicle>(await get_response.Content.ReadAsStringAsync()));

            var updatedVehicle = VehicleHelper.CreateRandomVehicle();

            updatedVehicle.Id = vehicle.Id;
            var put_response = await client.PutAsync($"{url}/{vehicle.Id}",
                                                     new StringContent(JsonConvert.SerializeObject(updatedVehicle), Encoding.UTF8, "application/json"));

            Assert.AreEqual(put_response.StatusCode, System.Net.HttpStatusCode.OK);

            get_response = await client.GetAsync($"{url}/{vehicle.Id}");

            Assert.AreEqual(get_response.StatusCode, System.Net.HttpStatusCode.OK);
            VehicleHelper.AssertVehicle(updatedVehicle, JsonConvert.DeserializeObject <Vehicle>(await get_response.Content.ReadAsStringAsync()));
        }
Esempio n. 2
0
        public async void Get_ReturnsData()
        {
            // arrange
            var targetId           = IdentifierHelper.VehicleId;;
            var errorCodeConverter = new ErrorCodeConverter();

            var vehicleServiceMoq = new Mock <IVehicleService>();

            vehicleServiceMoq.Setup(x => x.Get(It.IsAny <Guid>()))
            .ReturnsAsync(() => new Result <Vehicle>(ResultCode.Success, TestVehicle()));

            var dataStructureConverterMoq = new Mock <IDataStructureConverter>();

            dataStructureConverterMoq.Setup(x => x.ConvertAndMap <VehicleModel, Vehicle>(It.IsAny <string>(), It.IsAny <Vehicle>()))
            .Returns(new Dictionary <string, object>
            {
                { "vehicle", VehicleHelper.Get() }
            });

            var sut = new VehiclesController(vehicleServiceMoq.Object, errorCodeConverter, dataStructureConverterMoq.Object)
            {
                ControllerContext = DefaultControllerContext()
            };

            // act
            var result = await sut.Get(targetId);

            var okResult = result as OkObjectResult;
            var response = okResult.Value as Dictionary <string, object>;

            // assert
            Assert.NotNull(response.Values);
        }
Esempio n. 3
0
        public async Task <IActionResult> RegisterMember([Bind("Personnummer,FirstName,LastName,Address,PostNumber,City,IsPro")] MembershipViewModel newMember)
        {
            if (ModelState.IsValid)
            {
                Membership member = new Membership
                {
                    Personnummer     = newMember.Personnummer,
                    FirstName        = newMember.FirstName,
                    LastName         = newMember.LastName,
                    RegistrationDate = DateTime.Now,
                    Birthdate        = VehicleHelper.ConvertBirthdayFromPersonnummer(newMember.Personnummer),
                    Address          = newMember.Address,
                    PostNumber       = newMember.PostNumber,
                    City             = newMember.City,
                    StayPro          = newMember.StayPro,
                    GarageId         = 1
                };

                dbGarage.Membership.Add(member);
                await dbGarage.SaveChangesAsync();

                TempData["message"] = $"Thank you, {member.FirstName} for joining our garage! Enjoy your 30 days of free Pro Membership!";
                return(RedirectToAction("Index", "Home"));
            }

            return(View(newMember));
        }
Esempio n. 4
0
        public void ProcessDataTest()
        {
            RoboticRover roboticNew = new RoboticRover('N', new Plateau(5, 5)
            {
                XAxis = 1, YAxis = 2
            });                                                                                          //Standard documentation test

            VehicleHelper.ProcessData("LMLMLMLMM", roboticNew, originalPlateau);

            RoboticRover roboticNew2 = new RoboticRover('E', new Plateau(5, 5)
            {
                XAxis = 3, YAxis = 3
            });                                                                                          //Standard documentation test

            VehicleHelper.ProcessData("MMRMMRMRRM", roboticNew2, originalPlateau);

            RoboticRover roboticNew3 = new RoboticRover('E', new Plateau(5, 5)
            {
                XAxis = 3, YAxis = 3
            });                                                                                           //Check for what happens if boundaries exceed

            VehicleHelper.ProcessData("MMMRMMRMRRM", roboticNew3, originalPlateau);

            RoboticRover roboticNew4 = new RoboticRover('E', new Plateau(5, 5)
            {
                XAxis = 3, YAxis = 3
            });                                                                                           //Check for if direction changes

            VehicleHelper.ProcessData("MMMRMMRMRRMR", roboticNew4, originalPlateau);
        }
        public async void GetAllVehicles_WhenFound()
        {
            // arrange
            var locationId         = IdentifierHelper.LocationId;
            var errorCodeConverter = new ErrorCodeConverter();

            var locationServiceMoq = new Mock <ILocationService>();

            locationServiceMoq.Setup(x => x.GetVehicles(It.IsAny <Guid>()))
            .ReturnsAsync(() => new Result <IEnumerable <Vehicle> >(ResultCode.Success, TestVehicles()));

            var dataStructureConverterMoq = new Mock <IDataStructureConverter>();

            dataStructureConverterMoq.Setup(x => x.ConvertAndMap <IEnumerable <VehicleModel>, IEnumerable <Vehicle> >(It.IsAny <string>(), It.IsAny <IEnumerable <Vehicle> >()))
            .Returns(new Dictionary <string, object>
            {
                { "vehicles", VehicleHelper.GetMany() }
            });

            var sut = new LocationsController(locationServiceMoq.Object, errorCodeConverter, dataStructureConverterMoq.Object)
            {
                ControllerContext = DefaultControllerContext()
            };

            // act
            var result = await sut.GetAllVehicles(locationId);

            var okResult = result as OkObjectResult;
            var response = okResult.Value as Dictionary <string, object>;

            // assert
            Assert.Equal(200, okResult.StatusCode);
        }
Esempio n. 6
0
        // POST: Garages/Delete/5
        //[HttpPost, ActionName("UnParked")]
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> UnparkVehicle(int?id)//Todo -Add to Remove action for Receipt
        {
            // Unpark. Updates Vehicle and ParkingPlace in db
            UnparkTheVehicle(id);

            //Create Receipt
            ReceiptViewModel receipt = null;

            var vehicle = await dbGarage.Vehicle.FindAsync(id);

            if (vehicle != null)
            {
                var member = dbGarage.Membership
                             .FirstOrDefault(m => m.MembershipId == vehicle.MembershipId);
                receipt = new ReceiptViewModel
                {
                    Id = vehicle.VehicleId,
                    RegistrationNumber = vehicle.RegistrationNumber,
                    MemberNumber       = member.Personnummer,
                    CheckIn            = vehicle.CheckInTime,
                    StayPro            = member.StayPro,
                    IsPro        = VehicleHelper.IsPro(member),
                    MemberSpaces = dbGarage.Vehicle.Where(v => v.IsParked && v.MembershipId == member.MembershipId)
                                   .Select(v => v.VehicleType.Size)
                                   .Count()
                };

                dbGarage.Vehicle.Update(vehicle);
                await dbGarage.SaveChangesAsync();

                TempData["message"] = $"You have unparked your {vehicle.VehicleType}!";
                return(View("Receipt", receipt));
            }
            return(View());
        }
Esempio n. 7
0
 public void GetDirectionToMoveTest()
 {
     for (int i = 0; i < 4; i++) //One iteration for each side
     {
         Plateau plateau = VehicleHelper.GetDirectionToMove(robotic);
         VehicleHelper.TurnVehicle(robotic, 'L');
     }
 }
Esempio n. 8
0
 public void TurnVehicleTest()
 {
     for (int i = 0; i < 4; i++) //One iteration for each side
     {
         VehicleHelper.TurnVehicle(robotic, 'L');
     }
     for (int i = 0; i < 4; i++)//One iteration for each side
     {
         VehicleHelper.TurnVehicle(robotic, 'R');
     }
 }
        private bool AreAvailableSpace(Vehicle vehicle)
        {
            List <Vehicle> vehicles = vehicleQuery.GetAllActiveVehicles(vehicle.VehicleType);

            if ((VehicleHelper.IsCar(vehicle) && vehicles.Count.Equals(20)) ||
                (VehicleHelper.IsMotorcycle(vehicle) && vehicles.Count.Equals(10)))
            {
                errorMessage = Messages.ErrorSpaceFull;
                return(false);
            }
            return(true);
        }
Esempio n. 10
0
        public void MoveVehicleTest()
        {
            RoboticRover roboticNew = new RoboticRover('N', new Plateau(5, 5)
            {
                XAxis = 1, YAxis = 1
            });

            for (int i = 0; i < 4; i++)
            {
                VehicleHelper.MoveVehicle(roboticNew, originalPlateau);
                VehicleHelper.TurnVehicle(roboticNew, 'L');
            }
        }
Esempio n. 11
0
        public ActionResult SearchFor(string sortOrder, string oldSortBy, string memberName)
        {
            List <MembersViewModel> lstMembers = null;

            if (String.IsNullOrWhiteSpace(sortOrder))
            {
                sortOrder = "asc";
            }

            if (!String.IsNullOrWhiteSpace(memberName))
            {
                memberName = memberName.Trim();
                memberName = memberName.ToLower();

                ViewBag.SearchFor = memberName;
                lstMembers        = dbGarage.Membership.Where(r => r.FirstName.ToLower().Equals(memberName) || r.LastName.ToLower().Equals(memberName))
                                    .Select
                                        (m => new MembersViewModel
                {
                    MembershipId  = m.MembershipId,
                    FirstName     = m.FirstName,
                    LastName      = m.LastName,
                    Name          = $"{m.FirstName} {m.LastName}",
                    Vehicles      = m.Vehicles.Where(v => v.MembershipId == m.MembershipId).ToList(),
                    TotalVehicles = m.Vehicles.Count()
                })
                                    .ToList <MembersViewModel>();
            }
            else
            {
                lstMembers = dbGarage.Membership
                             .Select
                                 (n => new MembersViewModel
                {
                    MembershipId  = n.MembershipId,
                    FirstName     = n.FirstName,
                    LastName      = n.LastName,
                    Name          = $"{n.FirstName} {n.LastName}",
                    Vehicles      = n.Vehicles.Where(v => v.MembershipId == n.MembershipId).ToList(),
                    TotalVehicles = n.Vehicles.Count()
                })
                             .ToList <MembersViewModel>();
            }

            lstMembers = VehicleHelper.Sort(lstMembers, oldSortBy, sortOrder);

            ViewBag.SortOrder   = sortOrder;
            ViewBag.OlderSortBy = oldSortBy;

            return(View("Members", lstMembers));
        }
Esempio n. 12
0
        public void CheckForBoundaries()
        {
            RoboticRover roboticNew = new RoboticRover('N', new Plateau(5, 5)
            {
                XAxis = 1, YAxis = 1
            });
            Plateau plateau = VehicleHelper.GetDirectionToMove(robotic);

            for (int i = 0; i < 4; i++)//One iteration for each side
            {
                VehicleHelper.CheckForBoundaries(roboticNew.CurrentCoordinates(), plateau, originalPlateau);
                plateau = TurnAndGetDirection(robotic);
            }
        }
Esempio n. 13
0
        private void UpdateSteeringAngle(float deltaTime)
        {
            // TODO: Reduce max steering angle at high speeds.

            const float MaxAngle     = 0.5f;
            const float SteeringRate = 3;

            // We limit the amount of change per frame.
            float change = SteeringRate * deltaTime;

            float direction = 0;

            if (_inputService.IsDown(Keys.A))
            {
                direction += 1;
            }
            if (_inputService.IsDown(Keys.D))
            {
                direction -= 1;
            }

            var gamePadState = _inputService.GetGamePadState(LogicalPlayerIndex.One);

            direction -= gamePadState.ThumbSticks.Left.X;

            if (direction != 0)
            {
                // Increase steering angle.
                _steeringAngle = MathHelper.Clamp(_steeringAngle + direction * change, -MaxAngle, +MaxAngle);
            }
            else
            {
                // Steer back to neutral position (angle 0).
                if (_steeringAngle > 0)
                {
                    _steeringAngle = MathHelper.Clamp(_steeringAngle - change, 0, +MaxAngle);
                }
                else if (_steeringAngle < 0)
                {
                    _steeringAngle = MathHelper.Clamp(_steeringAngle + change, -MaxAngle, 0);
                }

                // TODO: Maybe we steer back with half rate?
                // (Pressing a button steers faster than not pressing a button?)
            }

            VehicleHelper.SetCarSteeringAngle(_steeringAngle, Vehicle.Wheels[0], Vehicle.Wheels[1], Vehicle.Wheels[2], Vehicle.Wheels[3]);
        }
 public bool GetVehicleCheckOut(ref Vehicle vehicle, out string errorMessage)
 {
     errorMessage = string.Empty;
     vehicle      = GetVehicle(vehicle.Id);
     if (IsActiveVehicle(vehicle.Id))
     {
         vehicle.Payment       = CalculatePayment(vehicle);
         vehicle.DepartureTime = dateTimeHelper.GetDateTimeNow();
         vehicle.State         = VehicleHelper.SetActive();
         bool vehicleRegisteredSuccess = vehicleQuery.CheckOutVehicle(vehicle);
         return(vehicleRegisteredSuccess);
     }
     this.errorMessage = Messages.ErrorVehicleAlreadyCheckOut;
     errorMessage      = this.errorMessage;
     return(false);
 }
        private int CalculatePayment(Vehicle vehicle)
        {
            int payment = 0;

            int differenceHours = Convert.ToInt32(Math.Ceiling((dateTimeHelper.GetDateTimeNow() - vehicle.EntryTime).TotalHours));

            if (differenceHours >= 9)
            {
                payment = CalculatePaymentParkingDays(vehicle, differenceHours);
            }
            else
            {
                payment = GetPaymentParkingHours(vehicle, differenceHours);
            }
            payment = VehicleHelper.IsMotorcycle(vehicle) && vehicle.Displacement > 500 ?
                      payment + VehicleHelper.GetExtraCostMotorcycleHigher500Displacement() :
                      payment;
            return(payment);
        }
Esempio n. 16
0
        public ActionResult Sort(string sortBy, string sortOrder, string firstName)
        {
            List <MembersViewModel> lsMembers = null;

            if (String.IsNullOrWhiteSpace(sortOrder))
            {
                sortOrder = "asc";
            }

            lsMembers = dbGarage.Membership
                        .Select
                            (n => new MembersViewModel
            {
                MembershipId = n.MembershipId,
                FirstName    = n.FirstName,
                LastName     = n.LastName,
                Name         = $"{n.FirstName} {n.LastName}",
                Vehicles     = n.Vehicles.Where(v => v.MembershipId == n.MembershipId).ToList()
            })
                        .ToList <MembersViewModel>();


            // Sort list with vehicle
            lsMembers = VehicleHelper.Sort(lsMembers, sortBy, sortOrder);

            // Now set up sortOrder for next postback
            if (sortOrder.Equals("desc"))
            {
                sortOrder = "asc";
            }
            else
            {
                sortOrder = "desc";
            }


            // Set ViewBags
            ViewBag.SortOrder = sortOrder;
            ViewBag.OldSortBy = sortBy;

            return(View("Members", lsMembers));
        }
Esempio n. 17
0
        public async Task WhenRequestVehicleControllerUsingPost_AndRequestVehicleControllerUsingGetWithId_ThenICheckIfVehicleWasAddedCorrectly()
        {
            // Arrange
            var vehicle = VehicleHelper.CreateRandomVehicle();

            // Act
            var post_response = await client.PostAsync($"{url}",
                                                       new StringContent(JsonConvert.SerializeObject(vehicle), Encoding.UTF8, "application/json"));

            Assert.AreEqual(post_response.StatusCode, System.Net.HttpStatusCode.OK);

            var get_response = await client.GetAsync($"{url}/{vehicle.Id}");

            Assert.AreEqual(get_response.StatusCode, System.Net.HttpStatusCode.OK);

            // Assert
            var vehicleReceived = JsonConvert.DeserializeObject <Vehicle>(await get_response.Content.ReadAsStringAsync());

            VehicleHelper.AssertVehicle(vehicle, vehicleReceived);
        }
Esempio n. 18
0
        public void GetDirectionToTurnTest()
        {
            char direction = VehicleHelper.GetDirectionToTurn(robotic, 'L');

            robotic.Turn('W');
            direction = VehicleHelper.GetDirectionToTurn(robotic, 'L');
            robotic.Turn('S');
            direction = VehicleHelper.GetDirectionToTurn(robotic, 'L');
            robotic.Turn('E');
            direction = VehicleHelper.GetDirectionToTurn(robotic, 'L');
            robotic.Turn('N');
            direction = VehicleHelper.GetDirectionToTurn(robotic, 'R');
            robotic.Turn('E');
            direction = VehicleHelper.GetDirectionToTurn(robotic, 'R');
            robotic.Turn('S');
            direction = VehicleHelper.GetDirectionToTurn(robotic, 'R');
            robotic.Turn('W');
            direction = VehicleHelper.GetDirectionToTurn(robotic, 'R');
            robotic.Turn('N');
        }
        private async void LoadMotorcycles()
        {
            var response = await this.vehicleBusinessLogic.GetAllActiveVehicles(VehicleEnumerator.VehicleTypes.motorcycle.ToString());

            if (!response.IsSuccess)
            {
                this.IsRefreshing = false;
                await Application.Current.MainPage.DisplayAlert(
                    "Error",
                    response.Message,
                    "Aceptar");

                return;
            }
            this.vehiclesList = (List <Vehicle>)response.Result;
            this.Vehicles     = new ObservableCollection <VehicleItemViewModel>(
                VehicleHelper.ToVehicleItemViewModel(this.vehiclesList)
                );
            this.IsRefreshing = false;
        }
Esempio n. 20
0
        //List of things that can be spawned : https://subnauticacommands.com/items
        public void Spawn(GameObject gameObject)
        {
            TechType techType = CraftData.GetTechType(gameObject);

            try
            {
                if (VehicleHelper.IsVehicle(techType))
                {
                    SpawnVehicle(gameObject);
                }
                else
                {
                    SpawnItem(gameObject);
                    //TODO: Add support for no AI creature that need to be spawned as well
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, $"Error while trying to spawn {techType} from devconsole");
            }
        }
Esempio n. 21
0
        public async Task <int> Handle(CreateOrderingCommand request, CancellationToken cancellationToken)
        {
            if (await VehicleHelper.IsVehicleBusy(request.VehicleId, _context))
            {
                throw new ConflictException("Vehicle is currently participating in another project");
            }

            var project = new Domain.Entities.Ordering
            {
                OwnerUserId      = request.OwnerUserId,
                VehicleId        = request.VehicleId,
                OrderingStatusId = 10,
                CreatedDate      = DateTime.UtcNow,
                StartDirection   = _mapper.Map <Domain.Entities.Direction>(request.StartDirection),
                EndDirection     = _mapper.Map <Domain.Entities.Direction>(request.EndDirection)
            };

            await _context.Ordering.AddAsync(project);

            await _context.SaveChangesAsync(cancellationToken);

            return(project.OrderingId);
        }
Esempio n. 22
0
        public async Task <int> Handle(CreateVehicleCommand request, CancellationToken cancellationToken)
        {
            if (await VehicleHelper.IsVehicleNumberOccupied(request.Number, _context))
            {
                throw new ConflictException("Vehicle number is occupied!");
            }

            var vehicle = new Domain.Entities.Vehicle
            {
                OwnerUserId = request.OwnerUserId,
                Brand       = request.Brand,
                Model       = request.Model,
                Year        = request.Year,
                Number      = request.Number,
                Country     = request.Country
            };

            await _context.Vehicle.AddAsync(vehicle);

            await _context.SaveChangesAsync(cancellationToken);

            return(vehicle.VehicleId);
        }
Esempio n. 23
0
 async void Page_Loaded(object sender, RoutedEventArgs e)
 {
     VehicleHelper vh = new VehicleHelper();
     var vehiclesList = await vh.GetAllAsync();
     VehiclesComboBox.ItemsSource = vehiclesList;
 }
        private void Setup()
        {
            name             = "CustomizeItVehicleExtendedPanel";
            isVisible        = false;
            canFocus         = true;
            isInteractive    = true;
            relativePosition = new Vector3(0f, UiVehicleTitleBar.Instance.height);
            width            = parent.width;

            var fields = SelectedVehicle.GetType().GetFields();

            var fieldsToRetrieve = typeof(CustomVehicleProperties).GetFields().Select(x => x.Name);

            Inputs  = new List <UIComponent>();
            _labels = new List <UILabel>();

            var widestWidth = 0f;

            foreach (var field in fields.Where(x => fieldsToRetrieve.Contains(x.Name)))
            {
                var label = AddUIComponent <UILabel>();
                label.name          = field.Name + "Label";
                label.text          = UiUtils.FieldNames[field.Name];
                label.textScale     = 0.9f;
                label.isInteractive = false;

                if (field.FieldType == typeof(float) || field.FieldType == typeof(int))
                {
                    Inputs.Add(UiUtils.CreateVehicleTextField(this, field.Name));
                    _labels.Add(label);
                }
                else if (field.FieldType == typeof(bool))
                {
                    Inputs.Add(UiUtils.CreateVehicleCheckBox(this, field.Name));
                    _labels.Add(label);
                }

                if (label.width + UiUtils.FieldWidth + UiUtils.FieldMargin * 6 > widestWidth)
                {
                    widestWidth = label.width + UiUtils.FieldWidth + UiUtils.FieldMargin * 6;
                }
            }

            if (!CustomizeItExtendedMod.Settings.OverrideAVO)
            {
                foreach (var input in Inputs)
                {
                    if (!AdvancedVehicleOptionsCompatibilityPatch.IsAVOActive() ||
                        !AdvancedVehicleOptionsCompatibilityPatch.AVOFields.Contains(input.name))
                    {
                        continue;
                    }

                    input.isEnabled     = false;
                    input.isInteractive = false;

                    if (input is UITextField textField)
                    {
                        textField.text = "DISABLED";
                    }

                    if (input is UICheckBox checkbox)
                    {
                        checkbox.enabled       = false;
                        checkbox.isInteractive = false;
                        checkbox.disabledColor = Color.gray;
                    }
                }
            }


            Inputs.Add(UiUtils.CreateNameTextfield(this, "DefaultName", (component, value) =>
            {
                if (!string.IsNullOrEmpty(value))
                {
                    if (CustomizeItExtendedVehicleTool.instance.CustomVehicleNames.TryGetValue(SelectedVehicle.name,
                                                                                               out var props))
                    {
                        props.CustomName  = value;
                        props.DefaultName = true;
                    }
                    else
                    {
                        CustomizeItExtendedVehicleTool.instance.CustomVehicleNames.Add(SelectedVehicle.name,
                                                                                       new NameProperties(value, true));
                    }
                }
                else
                {
                    if (CustomizeItExtendedVehicleTool.instance.CustomVehicleNames.TryGetValue(SelectedVehicle.name,
                                                                                               out var _))
                    {
                        CustomizeItExtendedVehicleTool.instance.CustomVehicleNames.Remove(SelectedVehicle.name);
                    }
                }

                if (!CustomizeItExtendedMod.Settings.SavePerCity)
                {
                    CustomizeItExtendedMod.Settings.Save();
                }
            }, CustomizeItExtendedVehicleTool
                                                   .instance.CustomVehicleNames.TryGetValue(SelectedVehicle.name, out var customName)
                ? customName.CustomName
                : string.Empty));

            var nameLabel = AddUIComponent <UILabel>();

            nameLabel.name          = "DefaultNameLabel";
            nameLabel.text          = "Default Name";
            nameLabel.textScale     = 0.9f;
            nameLabel.isInteractive = false;

            if (nameLabel.width + UiUtils.FieldWidth + UiUtils.FieldMargin * 6 > widestWidth)
            {
                widestWidth = nameLabel.width + UiUtils.FieldWidth + UiUtils.FieldMargin * 6;
            }

            _labels.Add(nameLabel);

            Inputs.Sort((x, y) => x.name.CompareTo(y.name));
            _labels.Sort((x, y) => x.name.CompareTo(y.name));

            Inputs.Add(UiUtils.CreateVehicleResetButton(this));

            Inputs.Add(UiUtils.CreateDropdown(this, "SelectedVehicle", VehicleHelper.GetAllVehicleNames().ToArray(),
                                              (component, value) =>
            {
                var newVehicle = VehicleHelper.GetAllVehicles()
                                 .Find(x =>
                                       x.name == VehicleHelper.RetrieveOriginalVehicleName(((UIDropDown)component).items[value]));


                UiUtils.DeepDestroy(CustomizeItExtendedVehicleTool.instance.VehiclePanelWrapper);
                CustomizeItExtendedVehicleTool.instance.SelectedVehicle = newVehicle;
                newVehicle.GenerateVehiclePanel();
            }, VehicleHelper.RetrieveCurrentVehicleName(SelectedVehicle)));

            width = UIVehiclePanelWrapper.Instance.width =
                UiVehicleTitleBar.Instance.width = UiVehicleTitleBar.Instance.DragHandle.width = widestWidth;
            UiVehicleTitleBar.Instance.RecenterElements();
            Align();

            Inputs.Find(x => x.name == "SelectedVehicle").relativePosition = new Vector3(12,
                                                                                         Inputs.Find(x => x.name == "CustomizeItExtendedVehicleResetButton").relativePosition.y);


            height = Inputs.Count * (UiUtils.FieldHeight + UiUtils.FieldMargin) + UiUtils.FieldMargin * 3;

            UIVehiclePanelWrapper.Instance.height = height + UiVehicleTitleBar.Instance.height;


            UIVehiclePanelWrapper.Instance.relativePosition = new Vector3(CustomizeItExtendedMod.Settings.PanelX,
                                                                          CustomizeItExtendedMod.Settings.PanelY);

            isVisible = UIVehiclePanelWrapper.Instance.isVisible =
                UiVehicleTitleBar.Instance.isVisible = UiVehicleTitleBar.Instance.DragHandle.isVisible = true;
        }
Esempio n. 25
0
        /// <summary>
        /// Method get a list of vehicle and information for the parked vehicle list
        /// </summary>
        /// <param name="iGarageId">Garage id</param>
        /// <returns>List of GarageVehiclesInfoViewModel objects</returns>
        private async Task <List <GarageVehiclesInfoViewModel> > GetParkedVehiclelist(int iGarageId)
        {
            var garage = await dbGarage.Garage.AsNoTracking().Where(i => i.GarageId == iGarageId).FirstOrDefaultAsync();

            var members = await dbGarage.Membership.AsNoTracking().Where(i => i.GarageId == iGarageId).ToListAsync();

            int iNumberOfOccupiedParkingPlaces = await dbGarage.ParkingPlace.Where(g => g.GarageId == garage.GarageId && g.IsOccupied).CountAsync();

            var vehicleTypes = await dbGarage.VehicleType.AsNoTracking().ToListAsync();

            // TODO Check if algo is ok in another test project
            // Now i want to know a members type of membership
            foreach (var member in members)
            {
                member.TypeOfMembersShip = MemberShipHelper.GetTypeOfMemberShip(member);
            }

            var results = await dbGarage.ParkingPlace
                          .Join(
                dbGarage.Vehicle,
                parkingPlace => parkingPlace.ParkingPlaceId,
                vehicle => vehicle.ParkingPlaceId,
                (parkingPlace, vehicle) => new GarageVehiclesInfoViewModel
            {
                VehicleId          = vehicle.VehicleId,
                RegistrationNumber = vehicle.RegistrationNumber,
                CheckInTime        = vehicle.CheckInTime,
                CheckOutTime       = DateTime.Now,
                IsParked           = vehicle.IsParked,
                VehicleTypeId      = vehicle.VehicleTypeId,
                VehicleType        = String.Empty,
                MemberShipId       = vehicle.MembershipId,
                Make           = vehicle.Make,
                Model          = vehicle.Model,
                Year           = vehicle.Year,
                ParkingPlaceId = parkingPlace.ParkingPlaceId,
                GarageId       = parkingPlace.GarageId
            })
                          .Where(n => n.GarageId == iGarageId && n.IsParked == true)
                          .ToListAsync();

            // Get data i dident get in the join
            Membership  memberShip  = null;
            VehicleType vehicleType = null;

            foreach (var result in results)
            {
                // Get members first and last name
                memberShip = members.Where(m => m.MembershipId == result.MemberShipId).FirstOrDefault();
                if (memberShip != null)
                {
                    result.MemberFirstName = memberShip.FirstName;
                    result.MemberLastName  = memberShip.LastName;
                }

                // Get the vehicle type
                vehicleType = vehicleTypes.Where(v => v.VehicleTypeId == result.VehicleTypeId).FirstOrDefault();
                if (vehicleType != null)
                {
                    result.VehicleType = vehicleType.Type_Name;
                }

                result.ParkedTime = VehicleHelper.CalculateParkedTime(result.CheckInTime);
            }

            return(results);
        }
Esempio n. 26
0
        //We need to get TechType from parameters because CraftData can't resolve TechType.Cyclops by himself
        public VehicleModel BuildVehicleModelFrom(GameObject gameObject, TechType techType)
        {
            if (VehicleHelper.IsVehicle(techType))
            {
                List <InteractiveChildObjectIdentifier> childIdentifiers = VehicleChildObjectIdentifierHelper.ExtractInteractiveChildren(gameObject);
                Optional <Vehicle> opvehicle = Optional.OfNullable(gameObject.GetComponent <Vehicle>());

                NitroxId        constructedObjectId = NitroxEntity.GetId(gameObject);
                NitroxVector3[] hsb    = VehicleHelper.GetPrimalDefaultColours();
                string          name   = string.Empty;
                float           health = 200f;


                if (opvehicle.HasValue)
                { //Seamoth & Exosuit
                    Optional <LiveMixin> livemixin = Optional.OfNullable(opvehicle.Value.GetComponent <LiveMixin>());

                    if (livemixin.HasValue)
                    {
                        health = livemixin.Value.health;
                    }

                    name = opvehicle.Value.GetName();

                    if (techType == TechType.Exosuit)
                    {   //For odd reasons the default colors aren't set yet for exosuit so we force it
                        opvehicle.Value.ReflectionCall("RegenerateRenderInfo", false, false);
                    }

                    hsb = opvehicle.Value.subName.AliveOrNull()?.GetColors().ToDto();
                }
                else
                { //Cyclops
                    try
                    {
                        GameObject   target        = NitroxEntity.RequireObjectFrom(constructedObjectId);
                        SubNameInput subNameInput  = target.RequireComponentInChildren <SubNameInput>();
                        SubName      subNameTarget = (SubName)subNameInput.ReflectionGet("target");

                        name = subNameTarget.GetName();
                        hsb  = subNameTarget.AliveOrNull()?.GetColors().ToDto();

                        Optional <LiveMixin> livemixin = Optional.OfNullable(target.GetComponent <LiveMixin>());

                        if (livemixin.HasValue)
                        {
                            health = livemixin.Value.health;
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.Error($"{nameof(Vehicles)}: Error while trying to spawn a cyclops ({constructedObjectId})", ex);
                    }
                }

                return(VehicleModelFactory.BuildFrom(
                           techType.ToDto(),
                           constructedObjectId,
                           gameObject.transform.position.ToDto(),
                           gameObject.transform.rotation.ToDto(),
                           childIdentifiers,
                           Optional.Empty,
                           name,
                           hsb ?? VehicleHelper.GetDefaultColours(techType), //Shouldn't be null now, but just in case
                           health
                           ));
            }
            else
            {
                Log.Error($"{nameof(Vehicles)}: Impossible to build from a non-vehicle GameObject (Received {techType})");
            }

            return(null);
        }
Esempio n. 27
0
        private string CreatePostData(string name)
        {
            string type = VehicleHelper.GetVehicleType(name);

            return(DataOpener + type + DataPart2 + name);
        }
 private IEnumerable <Vehicle> TestVehicles()
 {
     return(VehicleHelper.GetMany());
 }
Esempio n. 29
0
 public Plateau TurnAndGetDirection(IVehicle vehicle)
 {
     VehicleHelper.TurnVehicle(robotic, 'L');
     return(VehicleHelper.GetDirectionToMove(robotic));
 }
Esempio n. 30
0
 private Vehicle TestVehicle()
 {
     return(VehicleHelper.Get());
 }