public IActionResult EditAdv(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var adv = _businessLayer.GetAdv((int)id);

            if (adv == null)
            {
                return(NotFound());
            }

            CreateAdvViewModel viewModel = new CreateAdvViewModel();

            viewModel.CurrentAdv = adv;

            var advTypes = _businessLayer.GetAdvTypes();

            foreach (var advType in advTypes)
            {
                viewModel.AdvTypeNames.Add(new SelectListItem {
                    Text = advType.Name, Value = advType.Id.ToString()
                });
            }

            return(View(viewModel));
        }
        public async Task <IActionResult> EditAdv(CreateAdvViewModel viewModel)
        {
            ApplicationUser user = await _userManager.FindByNameAsync(User.Identity.Name.ToLower());

            if (viewModel.CurrentAdv.MemberId != user.Id)
            {
                ModelState.AddModelError(string.Empty, "Annonsen kan bara uppdateras av Medlemmen som la in annonsen");
            }

            if (ModelState.IsValid)
            {
                IFormFile imageFile = viewModel.MyImage;
                // Om medlemmen har laddat upp en ny bildfil
                if (imageFile != null)
                {
                    if (imageFile.Length > 0)
                    {
                        viewModel.CurrentAdv.ImageFileName = _businessLayer.UpdateImage(imageFile, viewModel.CurrentAdv.ImageFileName);
                    }
                }

                // Begär att BusinessLagret uppdaterar annonsen
                string result = _businessLayer.UpdateAdv(viewModel.CurrentAdv);

                if (result == "OK")
                {
                    // Om annonsen innehåller mindre än 2 Utrustningar
                    if (_businessLayer.GetEquipment(viewModel.CurrentAdv.Id).Count() < 2)
                    {
                        // Ge Medlemmen möjlighet att lägga till ytterligare utrustning till annonsen
                        return(RedirectToAction("CreateEquipment", new { advId = viewModel.CurrentAdv.Id }));
                    }
                    else
                    {
                        return(RedirectToAction("IndexOwnAds"));
                    }
                }
                else
                {
                    AddError(result);
                }
            }
            var advTypes = _businessLayer.GetAdvTypes();

            foreach (var advType in advTypes)
            {
                viewModel.AdvTypeNames.Add(new SelectListItem {
                    Text = advType.Name, Value = advType.Id.ToString()
                });
            }

            return(View(viewModel));
        }
        public async Task <IActionResult> CreateAdv(CreateAdvViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                Advertisement adv = new Advertisement();
                adv.AdvTypeId   = viewModel.CurrentAdv.AdvTypeId;
                adv.Title       = viewModel.CurrentAdv.Title;
                adv.Description = viewModel.CurrentAdv.Description;
                adv.Price       = viewModel.CurrentAdv.Price;
                adv.Place       = viewModel.CurrentAdv.Place;
                adv.StartDate   = DateTime.Now;

                IFormFile imageFile = viewModel.MyImage;

                // Om medlemmen har laddat upp en bildfil
                if (imageFile != null)
                {
                    if (imageFile.Length > 0)
                    {
                        adv.ImageFileName = _businessLayer.SaveImage(imageFile);
                    }
                }

                ApplicationUser user = await _userManager.FindByNameAsync(User.Identity.Name.ToLower());

                adv.MemberId = user.Id;

                // Begär att BusinessLagret skapar en ny annons
                string result = _businessLayer.CreateAdv(adv);
                if (result == "OK")
                {
                    // Ge Medlemmen möjlighet att lägga till utrustning till en annons
                    return(RedirectToAction("CreateEquipment", new { advId = adv.Id }));
                }
                else
                {
                    AddError(result);
                }
            }

            var advTypes = _businessLayer.GetAdvTypes();

            foreach (var advType in advTypes)
            {
                viewModel.AdvTypeNames.Add(new SelectListItem {
                    Text = advType.Name, Value = advType.Id.ToString()
                });
            }

            return(View(viewModel));
        }
        public IActionResult CreateAdv()
        {
            CreateAdvViewModel viewModel = new CreateAdvViewModel();

            var advTypes = _businessLayer.GetAdvTypes();

            foreach (var advType in advTypes)
            {
                viewModel.AdvTypeNames.Add(new SelectListItem {
                    Text = advType.Name, Value = advType.Id.ToString()
                });
            }

            return(View(viewModel));
        }