示例#1
0
 public EditVehiclePresenter(EditVehicleModel model, IVehicle view)
 {
     this.model              = model;
     this.view               = view;
     view.SelectVehicles    += PresenterSelectVehicles;
     view.UpdateVehicleInfo += PresenterUpdateVehicleInfo;
 }
示例#2
0
        public JsonResult EditVehicle([FromBody] EditVehicleModel vehicle)
        {
            string id       = Constant.GetUserID();
            var    Response = SQL.UpdateVehicle(vehicle, id);

            return(Json(Response, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        public async Task <ActionResult> EditVehicleAPI(int id, EditVehicleModel updateModel)
        {
            var userId      = this.User.Identity.GetUserId();
            var currentUser = this.Service <IUserService>().Get(userId);

            var errorMessage = ValidateVehicleEditing(updateModel, currentUser);

            if (errorMessage != null)
            {
                return(Json(new { message = errorMessage }));
            }

            var vehicleService = this.Service <IVehicleService>();

            var currentUserID = User.Identity.GetUserId();
            var vehicleEntity = vehicleService.Get(v => v.ID == id && v.Garage.OwnerID == currentUserID).FirstOrDefault();

            if (vehicleEntity == null)
            {
                return(new HttpStatusCodeResult(404, "Không tìm thấy xe."));
            }

            Mapper.Map <EditVehicleModel, Vehicle>(updateModel, vehicleEntity);
            await vehicleService.UpdateAsync(vehicleEntity);

            return(new HttpStatusCodeResult(200, "Updated successfully."));
        }
示例#4
0
        public ActionResult Edit(int id)
        {
            var v = SVD.Controller.Instance.VehicleController.GetVehicle(id);

            if (v == null)
            {
                Helpers.AddPageMessage("No such vehicle found!", PageMessageType.Error);
                RedirectToAction("Index");
            }

            if (!Helpers.UserHasVehicleControlRights(v))
            {
                Helpers.AddPageMessage("You shouldn't be there!", PageMessageType.Error);
                RedirectToAction("Index", "Home");
            }

            var m = new EditVehicleModel
            {
                Title                 = v.Title,
                Description           = v.Description,
                IsLocationSensitive   = v.IsLocationApproximate,
                PoliceForce           = v.PoliceForce,
                PolicePhoneNumber     = v.PolicePhoneNumber,
                PoliceReference       = v.PoliceReference,
                Registration          = v.Registration,
                TheftDescription      = v.TheftDescription,
                TheftMethodId         = v.TheftMethod.Id.ToString(),
                VehicleManufacturerId = v.Model.ManufacturerId.ToString(),
                VehicleModelId        = v.Model.Id.ToString(),
                VehicleTypeId         = v.Model.Type.Id.ToString(),
                Vin          = v.Vin,
                EngineNumber = v.EngineNumber,
                Year         = v.Year.ToString()
            };

            if (v.Colour != null)
            {
                m.ColourId = v.Colour.Id.ToString();
            }

            if (v.TheftDate.HasValue)
            {
                m.TheftDate = v.TheftDate.Value.ToString("dd MMMM yyyy");
            }

            m.VehicleSecurityTypeCsv = ",";
            foreach (var vst in v.SecurityTypes)
            {
                m.VehicleSecurityTypeCsv += vst.Id + ",";
            }

            if (v.TheftLatitude.HasValue && v.TheftLongitude.HasValue)
            {
                m.TheftLocationLat  = v.TheftLatitude.Value.ToString();
                m.TheftLocationLong = v.TheftLongitude.Value.ToString();
            }

            return(View(m));
        }
示例#5
0
        public void ShowEditVehicle()
        {
            var view      = new EditVehicle(this);
            var model     = new EditVehicleModel(session);
            var presenter = new EditVehiclePresenter(model, view);

            ShowControl(view);
        }
        public ActionResult Edit(int id)
        {
            var model = new EditVehicleModel();
            var repo  = VehicleRepositoryFactory.GetRepository();

            model.Vehicle = repo.GetVehicle(id);
            var MakesRepo = MakeRepositoryFactory.GetRepository();

            model.Makes = new SelectList(MakesRepo.GetAll(), "MakeID", "Make");
            var ModelsRepo = ModelRepositoryFactory.GetRepository();

            model.Models = new SelectList(ModelsRepo.GetSelected(model.Vehicle.MakeID), "ModelID", "Model");
            return(View(model));
        }
示例#7
0
        // Check entity on editing
        public string ValidateVehicleEditing(EditVehicleModel vehicle, AspNetUser currentUser)
        {
            if (vehicle.LicenseNumber.Length > 50)
            {
                return("Biển số xe phải dưới 50 ký tự.");
            }

            if (vehicle.Name.Length > 100)
            {
                return("Tên xe phải dưới 100 ký tự.");
            }

            if (currentUser.Garages.All(g => g.ID != vehicle.GarageID))
            {
                return("Garage không tồn tại.");
            }

            if (vehicle.VehicleGroupID.HasValue && currentUser.VehicleGroups.All(g => g.ID != vehicle.VehicleGroupID))
            {
                return("Nhóm xe không tồn tại.");
            }

            if (vehicle.TransmissionDetail != null && vehicle.TransmissionDetail.Length > 100)
            {
                return("Chi tiết hộp số phải dưới 100 ký tự.");
            }

            if (vehicle.Engine != null && vehicle.Engine.Length > 100)
            {
                return("Chi tiết động cơ phải dưới 100 ký tự.");
            }

            if (vehicle.Description != null && vehicle.Description.Length > 1000)
            {
                return("Mô tả xe phải dưới 1000 ký tự.");
            }

            if (!Models.Constants.COLOR.ContainsKey(vehicle.Color))
            {
                return("Mã màu không hợp lệ.");
            }

            return(null);
        }
示例#8
0
        public MessageResult UpdateVehicle(EditVehicleModel vehicle, string id)
        {
            int           i          = 0;
            MessageResult swResponse = new MessageResult();

            try
            {
                using (SqlConnection conn = new SqlConnection(DBConn))
                {
                    string sql = "UPDATE Vehicles SET VehicleRegistration=@VRegNO,VehicleType=@VType,VehicleCapacity=@VCapacity, FuelConsumption=@FuelConsumption,UpdatedBy=@UpdatedBy,UpdatedAt=@UpdatedAt where ID=@ID";
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        conn.Open();
                        cmd.Parameters.AddWithValue("@ID", vehicle.ID);
                        cmd.Parameters.AddWithValue("@VRegNO", vehicle.VehicleRegistration);
                        cmd.Parameters.AddWithValue("@VType", vehicle.VehicleType);
                        cmd.Parameters.AddWithValue("@VCapacity", vehicle.VehicleCapacity);
                        cmd.Parameters.AddWithValue("@FuelConsumption", vehicle.FuelConsumption);
                        cmd.Parameters.AddWithValue("@UpdatedBy", id);
                        cmd.Parameters.AddWithValue("@UpdatedAt", DateTime.Now);
                        i = cmd.ExecuteNonQuery();
                        conn.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                i = 0;
            }
            if (i == 0)
            {
                swResponse.Status  = "warning";
                swResponse.Message = "Failed to Insert. Try Again";
            }
            else
            {
                swResponse.Status  = "success";
                swResponse.Message = "Vehicle Updated Successfully";
            }
            return(swResponse);
        }
示例#9
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,Abrv,MakeId")] EditVehicleModel editVehicleModel)
        {
            if (id != editVehicleModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var vehicleModel = _mapper.Map <EditVehicleModel, VehicleModel>(editVehicleModel);
                    await _vehicleModelService.UpdateVehicleModelAsync(vehicleModel);
                }
                catch (Exception)
                {
                    return(RedirectToAction("Error", "Home"));
                }
                return(RedirectToAction(nameof(Index), new { makeId = editVehicleModel.MakeId }));
            }
            return(View(editVehicleModel));
        }
示例#10
0
        public ActionResult Edit(int id, EditVehicleModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var v = SVD.Controller.Instance.VehicleController.GetVehicle(id);

            if (v == null)
            {
                Helpers.AddPageMessage("No such vehicle found!", PageMessageType.Error);
                RedirectToAction("Index");
            }

            if (!Helpers.UserHasVehicleControlRights(v))
            {
                Helpers.AddPageMessage("You shouldn't be there!", PageMessageType.Error);
                RedirectToAction("Index", "Home");
            }

            // do the updates.
            v.Status                = (VehicleStatus)byte.Parse(model.StatusId);
            v.Description           = model.Description;
            v.IsLocationApproximate = false;
            v.Model             = SVD.Controller.Instance.MakesAndModelsController.GetModel(int.Parse(model.VehicleModelId)).Model;
            v.PoliceForce       = model.PoliceForce;
            v.PolicePhoneNumber = model.PolicePhoneNumber;
            v.PoliceReference   = model.PoliceReference;
            v.Registration      = model.Registration;
            v.SecurityTypes     = model.VehicleSecurityTypesChosen;
            v.TheftDescription  = model.TheftDescription;
            v.TheftMethod       = SVD.Controller.Instance.VehicleController.GetTheftMethod(int.Parse(model.TheftMethodId));
            v.Vin          = model.Vin;
            v.EngineNumber = model.EngineNumber;
            v.Year         = int.Parse(model.Year);
            v.Colour       = !string.IsNullOrEmpty(model.ColourId) ? SVD.Controller.Instance.VehicleController.GetColour(int.Parse(model.ColourId)) : null;

            DateTime date;

            if (DateTime.TryParse(model.TheftDate, out date))
            {
                v.TheftDate = date;
            }

            #region location
            if (!string.IsNullOrEmpty(model.TheftLocationLat) && !string.IsNullOrEmpty(model.TheftLocationLong))
            {
                var newLat  = decimal.Parse(model.TheftLocationLat);
                var newLong = decimal.Parse(model.TheftLocationLong);

                if (v.TheftLatitude != newLat || v.TheftLongitude != newLong)
                {
                    v.TheftLatitude  = newLat;
                    v.TheftLongitude = newLong;

                    // clear the places.
                    v.TheftLocationPlaces.Clear();

                    // create a place object for each location type we're aware of from Google.
                    if (!string.IsNullOrEmpty(model.TheftLocationCountry))
                    {
                        var pos = model.TheftLocationCountryPos.Split(',');
                        v.TheftLocationPlaces.Add(new Place(ObjectMode.New)
                        {
                            Type      = PlaceType.Country,
                            Code      = model.TheftLocationCountryCode,
                            Name      = model.TheftLocationCountry,
                            Latitude  = double.Parse(pos[0]),
                            Longitude = double.Parse(pos[1])
                        });
                    }
                    if (!string.IsNullOrEmpty(model.TheftLocationAdministrativeAreaLevel1))
                    {
                        var pos = model.TheftLocationAdministrativeAreaLevel1Pos.Split(',');
                        v.TheftLocationPlaces.Add(new Place(ObjectMode.New)
                        {
                            Type      = PlaceType.AdministrativeAreaLevel1,
                            Name      = model.TheftLocationAdministrativeAreaLevel1,
                            Latitude  = double.Parse(pos[0]),
                            Longitude = double.Parse(pos[1])
                        });
                    }
                    if (!string.IsNullOrEmpty(model.TheftLocationAdministrativeAreaLevel2))
                    {
                        var pos = model.TheftLocationAdministrativeAreaLevel2Pos.Split(',');
                        v.TheftLocationPlaces.Add(new Place(ObjectMode.New)
                        {
                            Type      = PlaceType.AdministrativeAreaLevel2,
                            Name      = model.TheftLocationAdministrativeAreaLevel2,
                            Latitude  = double.Parse(pos[0]),
                            Longitude = double.Parse(pos[1])
                        });
                    }
                    if (!string.IsNullOrEmpty(model.TheftLocationRoute))
                    {
                        var pos = model.TheftLocationRoutePos.Split(',');
                        v.TheftLocationPlaces.Add(new Place(ObjectMode.New)
                        {
                            Type      = PlaceType.Route,
                            Name      = model.TheftLocationRoute,
                            Latitude  = double.Parse(pos[0]),
                            Longitude = double.Parse(pos[1])
                        });
                    }
                    if (!string.IsNullOrEmpty(model.TheftLocationSubLocality))
                    {
                        var pos = model.TheftLocationSubLocalityPos.Split(',');
                        v.TheftLocationPlaces.Add(new Place(ObjectMode.New)
                        {
                            Type      = PlaceType.SubLocality,
                            Name      = model.TheftLocationSubLocality,
                            Latitude  = double.Parse(pos[0]),
                            Longitude = double.Parse(pos[1])
                        });
                    }
                    if (!string.IsNullOrEmpty(model.TheftLocationLocality))
                    {
                        var pos = model.TheftLocationLocalityPos.Split(',');
                        v.TheftLocationPlaces.Add(new Place(ObjectMode.New)
                        {
                            Type      = PlaceType.Locality,
                            Name      = model.TheftLocationLocality,
                            Latitude  = double.Parse(pos[0]),
                            Longitude = double.Parse(pos[1])
                        });
                    }

                    Helpers.ResolvePlaceParents(v.TheftLocationPlaces);
                }
            }
            #endregion

            SVD.Controller.Instance.VehicleController.UpdateVehicle(v);
            Helpers.AddPageMessage("Vehicle updated!", PageMessageType.Success);
            model.Title = v.Title;
            return(View(model));
        }
        public ActionResult Edit(EditVehicleModel model)
        {
            if (ModelState.IsValid)
            {
                var repo = VehicleRepositoryFactory.GetRepository();

                try
                {
                    var oldDetails = repo.GetVehicle(model.Vehicle.ID);

                    if (model.ImageUpload != null && model.ImageUpload.ContentLength > 0)
                    {
                        var savepath = Server.MapPath("~/Images");

                        string fileName  = Path.GetFileNameWithoutExtension(model.ImageUpload.FileName);
                        string extension = Path.GetExtension(model.ImageUpload.FileName);

                        var filePath = Path.Combine(savepath, fileName + extension);

                        int counter = 1;
                        while (System.IO.File.Exists(filePath))
                        {
                            filePath = Path.Combine(savepath, fileName + counter.ToString() + extension);
                            counter++;
                        }

                        model.ImageUpload.SaveAs(filePath);
                        model.Vehicle.ImageFileName = Path.GetFileName(filePath);

                        // delete old file
                        var oldPath = Path.Combine(savepath, oldDetails.ImageFileName);
                        if (System.IO.File.Exists(oldPath))
                        {
                            System.IO.File.Delete(oldPath);
                        }
                    }
                    else
                    {
                        // they did not replace the old file, so keep the old file name
                        model.Vehicle.ImageFileName = oldDetails.ImageFileName;
                    }

                    repo.Update(model.Vehicle);

                    return(RedirectToAction("Edit", new { id = model.Vehicle.ID }));
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else
            {
                var repo = VehicleRepositoryFactory.GetRepository();
                model.Vehicle = repo.GetVehicle(model.Vehicle.ID);
                var MakesRepo = MakeRepositoryFactory.GetRepository();
                model.Makes = new SelectList(MakesRepo.GetAll(), "MakeID", "Make");
                var ModelsRepo = ModelRepositoryFactory.GetRepository();
                model.Models = new SelectList(ModelsRepo.GetSelected(model.Vehicle.MakeID), "ModelID", "Model");
                return(View(model));
            }
        }