Exemple #1
0
        public async Task <IActionResult> Edit(ExperienceEditViewModel input)
        {
            if (!this.ModelState.IsValid)
            {
                this.ViewBag.Messages = new[] {
                    new AlertViewModel("danger", "Warning!", "You have entered invalid data!"),
                };
                return(this.View(input));
            }

            var exists = this.experiencesService.Exists(input.Id);

            if (exists)
            {
                var isAllowed = await this.IsAllowedToAccess(input.Id);

                if (isAllowed)
                {
                    var experienceId = await this.experiencesService.EditAsync(input);

                    return(this.Redirect($"/Experiences/Details/{experienceId}?status=success"));
                }
                else
                {
                    return(this.Forbid());
                }
            }

            return(this.NotFound());
        }
        public IActionResult Edit(ExperienceEditViewModel experienceEditVM)
        {
            if (ModelState.IsValid)
            {
                var product = _productRepository.GetProductUsingNameAndCategory(experienceEditVM.ProductName, int.Parse(experienceEditVM.CategoryID)); /*experienceEditVM.Category.CategoryName*/
                if (product == null)
                {
                    product = new Product
                    {
                        ProductName = experienceEditVM.ProductName,
                        CategoryID  = int.Parse(experienceEditVM.CategoryID)
                    };

                    _productRepository.AddProduct(product);
                }



                string uniqueFileName = PhotoHelper.SaveImageAndReturnUniqueFileName(experienceEditVM.Photo, _hostingEnvironment, "images/products");

                if (!string.IsNullOrEmpty(uniqueFileName) && System.IO.File.Exists("wwwroot/images/products/" + experienceEditVM.ExistingPhotoPath))
                {
                    try
                    {
                        System.IO.File.Delete("wwwroot/images/products/" + experienceEditVM.ExistingPhotoPath);
                    }
                    catch
                    {
                    }
                }


                var photoPath = uniqueFileName ?? experienceEditVM.ExistingPhotoPath;

                var experience = new Experience
                {
                    ExperienceID   = experienceEditVM.ExperienceID,
                    ProductID      = product.ProductID,
                    Evaluation     = experienceEditVM.Evaluation,
                    Describe       = experienceEditVM.Describe,
                    Recommendation = experienceEditVM.Recommendation,
                    UserName       = User.FindFirst(ClaimTypes.Name).Value,
                    PhotoPath      = photoPath,
                    Date           = DateTime.Now
                };


                var updateExperience = _experienceRepository.UpdateExperience(experience);
                return(RedirectToAction("details", new { experienceID = updateExperience.ExperienceID }));
            }

            return(View());
        }
        public async Task <int> EditAsync(ExperienceEditViewModel input)
        {
            var experience = this.experienceRepository.All()
                             .Where(x => x.Id == input.Id)
                             .FirstOrDefault();

            experience.DateOfVisit = input.DateOfVisit;
            experience.Title       = input.Title;
            experience.Description = input.Description;
            experience.Guide       = input.Guide;
            experience.Intensity   = input.Intensity;

            this.experienceRepository.Update(experience);
            await this.experienceRepository.SaveChangesAsync();

            return(experience.Id);
        }
Exemple #4
0
        public async Task EditAsync_ShouldReturnCorrectValue()
        {
            await this.SeedData(this.context);

            var expectedTitle = "New Title";

            var input = new ExperienceEditViewModel()
            {
                Id          = 1,
                Title       = expectedTitle,
                Description = "Description of test",
            };

            var resultId = await this.experienceService.EditAsync(input);

            Assert.True(resultId == 1, "Edit method does not work correctly");
            Assert.True(input.Title == expectedTitle, "Edit method does not work correctly");
        }
        public ViewResult Edit(int experienceID)
        {
            Experience experience = _experienceRepository.GetExperienceForEdit(experienceID);


            ExperienceEditViewModel experienceEditVM = new ExperienceEditViewModel
            {
                ExperienceID      = experience.ExperienceID,
                ProductName       = experience.Product.ProductName,
                CategoryID        = experience.Product.Category.CategoryID.ToString(),
                Evaluation        = experience.Evaluation,
                Describe          = experience.Describe,
                Recommendation    = experience.Recommendation,
                ExistingPhotoPath = experience.PhotoPath
            };

            ViewBag.Categories = _categoryRepository.Categories.OrderBy(c => c.CategoryName);

            return(View(experienceEditVM));
        }
Exemple #6
0
        public async Task EditAsync_ShouldThrowException()
        {
            var context = WilderExperienceContextInMemoryFactory.InitializeContext();

            await this.SeedData(context);

            var expectedTitle = "New Title";

            var input = new ExperienceEditViewModel()
            {
                Id          = 3,
                Title       = expectedTitle,
                Description = "Description of test",
            };

            var repository = new EfDeletableEntityRepository <Experience>(context);
            var service    = new ExperiencesService(repository);

            Task act() => service.EditAsync(input);

            await Assert.ThrowsAsync <ArgumentNullException>(act);
        }