コード例 #1
0
        public IHttpActionResult PostVehicle(VehicleBindingModel vehicle)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var list = unitOfWork.Vehicle.GetAll();

            foreach (var item in list)
            {
                if (item.Model == vehicle.Model)
                {
                    return(BadRequest("Already is vehicle with this name: " + vehicle.Model));
                }
            }

            var           typeOfVehicles = unitOfWork.TypeOfVehicle.GetAll();
            TypeOfVehicle toV            = new TypeOfVehicle();

            foreach (var item in typeOfVehicles)
            {
                if (item.Name == vehicle.TypeOfVehicle)
                {
                    toV = item;
                    break;
                }
            }

            Vehicle vehi = new Vehicle()
            {
                Description = vehicle.Description, Image = vehicle.Image, Manufactor = vehicle.Manufactor, Model = vehicle.Model, PricePerHour = vehicle.PricePerHour, Unavailable = false, Year = vehicle.Year, Type = toV
            };



            toV.Vehicles.Add(vehi);

            var      services = unitOfWork.Services.GetAll();
            Services ser      = new Services();

            foreach (var item in services)
            {
                if (item.Name == vehicle.ServerName)
                {
                    ser = item;
                    break;
                }
            }

            ser.Vehicles.Add(vehi);

            unitOfWork.Vehicle.Add(vehi);
            unitOfWork.TypeOfVehicle.Update(toV);
            unitOfWork.Services.Update(ser);
            unitOfWork.Complete();

            return(CreatedAtRoute("DefaultApi", new { id = vehi.Id }, vehicle));
        }
コード例 #2
0
        public IHttpActionResult PostVehicle(VehicleBindingModel vehicleBindingModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            string images = "";

            foreach (var item in vehicleBindingModel.Images)
            {
                images += item + ";";
            }

            var vehicle = new Vehicle()
            {
                Model             = vehicleBindingModel.Model,
                Manufactor        = vehicleBindingModel.Manufactor,
                Year              = vehicleBindingModel.Year,
                Description       = vehicleBindingModel.Description,
                PricePerHour      = vehicleBindingModel.PricePerHour,
                Unavailable       = vehicleBindingModel.Unavailable,
                VehicleImagesBase = images
            };

            var typesOfVehicle = unitOfWork.TypesOfVehicle.GetAll();
            var services       = unitOfWork.Services.GetAll();



            TypeOfVehicle t = new TypeOfVehicle();
            Service       s = new Service();

            foreach (var item in typesOfVehicle)
            {
                if (item.Name == vehicleBindingModel.type)
                {
                    vehicle.Type = item;
                    t            = item;
                    item.Vehicles.Add(vehicle);
                }
            }

            foreach (var item in services)
            {
                if (item.Name == vehicleBindingModel.Service)
                {
                    s = item;
                    s.Vehicles.Add(vehicle);
                }
            }

            unitOfWork.Vehicles.Add(vehicle);
            unitOfWork.TypesOfVehicle.Update(t);
            unitOfWork.Services.Update(s);
            unitOfWork.Complete();

            return(CreatedAtRoute("DefaultApi", new { id = vehicle.Id }, vehicle));
        }
コード例 #3
0
        //[Authorize(Roles="Admin,Manager,AppUser,Client,NotAuthenticated")]
        //[AllowAnonymous]
        public IHttpActionResult PostVehicles(VehicleBindingModel vehicleBM)
        {
            lock (unitOfWork.Vehicles)
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var type = new TypeOfVehicle();

                var types = unitOfWork.Types.GetAll();

                foreach (var t in types)
                {
                    if (t.Name == vehicleBM.Type)
                    {
                        type = t;
                    }
                }

                var ser = new Service();

                var services = unitOfWork.Services.GetAll();

                foreach (var s in services)
                {
                    if (s.Name == vehicleBM.ServiceName)
                    {
                        ser = s;
                    }
                }

                var vehicle = new Vehicle()
                {
                    Deleted      = vehicleBM.Deleted,
                    Description  = vehicleBM.Description,
                    Images       = vehicleBM.Images,
                    Manufactor   = vehicleBM.Manufactor,
                    Model        = vehicleBM.Model,
                    PricePerHour = (decimal)vehicleBM.PricePerHour,
                    Type         = type,
                    Unvailable   = vehicleBM.Unvailable,
                    Year         = (int)vehicleBM.Year
                };


                ser.Vehicles.Add(vehicle);

                unitOfWork.Vehicles.Add(vehicle);
                unitOfWork.Complete();

                return(CreatedAtRoute("DefaultApi", new { id = vehicle.Id }, vehicle));
            }
        }
コード例 #4
0
        public async Task <IHttpActionResult> PostVehicle(VehicleBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var user = db.Users.Find(User.Identity.GetUserId());

            var driver = user.Profiles.OfType <Driver>().FirstOrDefault();

            var engineTypeGuid = Guid.Parse(model.EngineType.Id);

            var engineType = db.EngineTypes.FirstOrDefault(et => et.Id == engineTypeGuid);

            if (engineType == null)
            {
                return(BadRequest());
            }

            var stripedRegistration = model.Registration.Trim(' ').ToUpper();

            Vehicle vehicle;

            var existingVehicles = db.Vehicles.Where(v => v.Registration == stripedRegistration);

            if (existingVehicles.Any())
            {
                vehicle = existingVehicles.FirstOrDefault();
            }
            else
            {
                vehicle = new Vehicle
                {
                    Id           = Guid.NewGuid(),
                    Registration = model.Registration,
                    EngineType   = engineType
                };
            }

            driver.Vehicles.Add(vehicle);

            db.Vehicles.Add(vehicle);

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (VehicleExists(vehicle.Id))
                {
                    return(Conflict());
                }

                throw;
            }

            return(CreatedAtRoute("DefaultApi", new { id = vehicle.Id }, new VehicleViewModel()
            {
                Id = vehicle.Id.ToString(),
                Registration = vehicle.Registration,
                EngineType = new EngineTypeViewModel()
                {
                    Id = vehicle.EngineType.Id.ToString()
                }
            }));
        }