Пример #1
0
        public ActionResult CreateAdvertisement()
        {
            CreateAdverstisementViewModel viewModel = new CreateAdverstisementViewModel();

            viewModel.Locations    = new List <Location>();
            viewModel.Locations    = db.Locations.ToList();
            viewModel.Difficulties = new List <Difficulty>();
            viewModel.Difficulties = db.Difficulties.ToList();

            viewModel.AvaibleCategories = new List <CategoryViewModel>();
            var categories = db.Categories;

            foreach (Category c in categories)
            {
                var cvm = new CategoryViewModel();
                cvm.Id   = c.Id;
                cvm.Name = c.Name;
                viewModel.AvaibleCategories.Add(cvm);
            }

            viewModel.SelectedCategories = new List <CategoryViewModel>();

            return(View(viewModel));
        }
Пример #2
0
        public ActionResult CreateAdvertisement(CreateAdverstisementViewModel viewModel, IEnumerable <HttpPostedFileBase> uploads)
        {
            viewModel.Locations    = db.Locations.ToList();
            viewModel.Difficulties = db.Difficulties.ToList();

            var selectedCategories = new List <Category>();
            var postedCategoryIds  = new string[0];

            if (viewModel.PostedCategories == null)
            {
                viewModel.PostedCategories = new PostedCategories();
            }

            if (viewModel.PostedCategories.CategoriesIds != null)
            {
                postedCategoryIds = viewModel.PostedCategories.CategoriesIds;
            }

            if (postedCategoryIds.Any())
            {
                selectedCategories = db.Categories.Where(x => postedCategoryIds.Any(s => x.Id.ToString().Equals(s))).ToList();
            }

            viewModel.AvaibleCategories = new List <CategoryViewModel>();
            var categories = db.Categories;

            foreach (Category c in categories)
            {
                var cvm = new CategoryViewModel();
                cvm.Id   = c.Id;
                cvm.Name = c.Name;
                viewModel.AvaibleCategories.Add(cvm);
            }

            viewModel.SelectedCategories = new List <CategoryViewModel>();
            foreach (Category c in selectedCategories)
            {
                var cvm = new CategoryViewModel();
                cvm.Id   = c.Id;
                cvm.Name = c.Name;
                viewModel.SelectedCategories.Add(cvm);
            }

            try
            {
                if (ModelState.IsValid)
                {
                    foreach (var upload in uploads)
                    {
                        if (upload != null && upload.ContentLength > 0)
                        {
                            var photo = new AdvertisementPhoto
                            {
                                FileName    = System.IO.Path.GetFileName(upload.FileName),
                                ContentType = upload.ContentType
                            };
                            using (var reader = new System.IO.BinaryReader(upload.InputStream))
                            {
                                photo.FileContent = reader.ReadBytes(upload.ContentLength);
                            }
                            viewModel.Advertisement.AdvertisementPhotos.Add(photo);
                        }
                    }

                    viewModel.Advertisement.AddDate       = DateTime.Now;
                    viewModel.Advertisement.PerformanceId = 1;
                    viewModel.Advertisement.AuthorId      = User.Identity.GetUserId();
                    viewModel.Advertisement.IsFinished    = false;

                    foreach (var c in viewModel.SelectedCategories)
                    {
                        var cat = db.Categories.Find(c.Id);
                        viewModel.Advertisement.Categories.Add(cat);
                    }

                    db.Advertisements.Add(viewModel.Advertisement);
                    db.SaveChanges();

                    return(RedirectToAction("Index"));
                }
            }
            catch (DbEntityValidationException e)
            {
                var error = e.EntityValidationErrors.First().ValidationErrors.First();
                this.ModelState.AddModelError(error.PropertyName, error.ErrorMessage);
            }

            return(View(viewModel));
        }