public EditAssignVehicleViewModel(VehicleContract vehicleContract)
 {
     this.ContractorID      = vehicleContract.Contract.ContractorID;
     this.VehicleContractID = vehicleContract.VehicleContractID;
     this.VehicleID         = vehicleContract.VehicleID;
     this.ContractID        = vehicleContract.ContractID;
 }
 public VehicleContractViewModel(VehicleContract vehicleContract)
 {
     this.VehicleContractID    = vehicleContract.VehicleContractID;
     this.VehicleID            = vehicleContract.VehicleID;
     this.ContractID           = vehicleContract.ContractID;
     this.IdentificationNumber = vehicleContract.Vehicle.IdentificationNumber;
     this.Description          = vehicleContract.Vehicle.Description;
     this.ContractCode         = vehicleContract.Contract.ContractCode;
 }
        public VehicleContract GetContract()
        {
            var contract = new VehicleContract()
            {
                VehicleContractID = this.VehicleContractID,
                VehicleID         = this.VehicleID,
                ContractID        = this.ContractID
            };

            return(contract);
        }
예제 #4
0
 public static Vehicle ToModel(this VehicleContract vehicleContract)
 {
     return((vehicleContract == null)
                         ? null
                         : new Vehicle
     {
         ID = vehicleContract.ID,
         Model = vehicleContract.Model,
         Year = (short)vehicleContract.Year,
         Description = vehicleContract.Description
     });
 }
예제 #5
0
        public async Task <ActionResult> VehiclesToUnassign(int vehicleID, int contractID)
        {
            VehicleContract vehicleContract = await vehicleRepository.GetVehicleContract(vehicleID, contractID);

            if (vehicleContract == null)
            {
                return(HttpNotFound());
            }
            var model = new VehicleContractViewModel(vehicleContract);

            return(View(model));
        }
예제 #6
0
        public async Task <Result> UpdateVehicleAsync(VehicleContract vehicleContract)
        {
            return(await ExecDBAsync(
                       async db =>
            {
                var vehicle = vehicleContract.ToModel();
                var(valid, error) = vehicle.Validate();
                if (valid)
                {
                    db.Vehicles.Attach(vehicle)
                    .Log(Log, result => (LogLevel.Info, $"Saving {result.ToContract()}."));

                    (await db.SaveChangesAsync()).Log(Log, rows => (LogLevel.Debug, $"Rows affected: {rows}"));

                    return Result.Succeeded();
                }


                Log.LogError($"Failed validation: {error}.");
                return Result.Failed(error);
            }
                       ));
        }
예제 #7
0
        public async Task <ActionResult> VehiclesToAssign(EditAssignVehicleViewModel model)
        {
            if (ModelState.IsValid)
            {
                VehicleContract contract = (VehicleContract)model.GetContract();

                try
                {
                    await vehicleRepository.CreateContractAsync(contract);

                    return(RedirectToAction("AssignedVehicles", "Contractors", new { contractID = model.ContractID }));
                }
                catch (Exception e)
                {
                    var errors = string.Join(",", e.Message);
                    ModelState.AddModelError(string.Empty, errors);
                }
            }

            ViewBag.VehicleID = new SelectList(vehicleRepository.UnAssignedVehicles(model.ContractID, base.CurrentContractorID), "VehicleID", "IdentificationNumber");
            // If we got this far, something failed, redisplay form
            return(View(model));
        }
예제 #8
0
        public async Task <VehicleResult> AddVehicleAsync(VehicleContract vehicleContract)
        {
            return(await ExecDBAsync(
                       async db =>
            {
                var vehicle = vehicleContract.ToModel();
                var(valid, error) = vehicle.Validate();
                if (valid)
                {
                    vehicleContract = db.Vehicles.Add(vehicle)
                                      .ToContract()
                                      .Log(Log, result => (LogLevel.Info, $"Adding with new ID {result.ID}: {result}."));

                    (await db.SaveChangesAsync()).Log(Log, rows => (LogLevel.Debug, $"Rows affected: {rows}"));

                    return VehicleResult.Succeeded(vehicleContract);
                }


                Log.LogError($"Failed validation: {error}.");
                return VehicleResult.Failed(error);
            }
                       ));
        }