public async Task <IActionResult> Edit(EditBicycleViewModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            if (input.Image != null)
            {
                await this.imageService.UploadImage(input.Image, string.Format(GlobalConstants.IMAGEPATH, IMAGE, input.Id));

                await this.bicycleService.AddImageUrls(input.Id, string.Format(GlobalConstants.IMAGEPATH, IMAGE, input.Id));
            }

            await this.bicycleService.DoEdit(input);

            return(this.Redirect(string.Format(DETAILSPATH, input.Id)));
        }
        public async Task EditVechicleShouldEdit()
        {
            var options        = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase("Edit_tests").Options;
            var dbContext      = new ApplicationDbContext(options);
            var imageService   = new ImageService(dbContext);
            var bicycleService = new BicycleService(dbContext, imageService);

            AutoMapperConfig.RegisterMappings(typeof(EditBicycleViewModel).Assembly, typeof(Bicycle).Assembly);

            var addBycicle = new AddBycicleViewModel()
            {
                Type         = BicycleType.Mountain,
                Made         = "Something",
                Speeds       = 21,
                Size         = BicycleSize.M,
                SizeOfTires  = 21,
                PriceForHour = 21,
                Description  = "Something",
            };

            var addedBycicle = await bicycleService.AddVehicle <AddBycicleViewModel>(addBycicle);

            var editBycicle = new EditBicycleViewModel()
            {
                Id           = addedBycicle,
                Type         = BicycleType.Mountain,
                Made         = "Edited",
                Speeds       = 21,
                Size         = BicycleSize.M,
                SizeOfTires  = 21,
                PriceForHour = 21,
                Description  = "Something",
            };

            await bicycleService.DoEdit <EditBicycleViewModel>(editBycicle);

            var editedBycicle = bicycleService.EditDetails <EditBicycleViewModel>(addedBycicle);

            Assert.Equal("Edited", editedBycicle.Made);
        }
        public IActionResult Edit(int id, string type)
        {
            var bicycle = this.bicycleService.EditDetails <EditBicycleViewModel>(id);

            if (bicycle != null)
            {
                var model = new EditBicycleViewModel()
                {
                    Id           = bicycle.Id,
                    Type         = bicycle.Type,
                    Made         = bicycle.Made,
                    Speeds       = bicycle.Speeds,
                    Size         = bicycle.Size,
                    IsAvailable  = bicycle.IsAvailable,
                    SizeOfTires  = bicycle.SizeOfTires,
                    PriceForHour = bicycle.PriceForHour,
                    Description  = bicycle.Description,
                };

                return(this.View(model));
            }

            return(this.Redirect(string.Format(ALLPATH, type)));
        }