Esempio n. 1
0
        public ActionResult Create(Gallery gallery, IEnumerable <HttpPostedFileBase> imageBase)
        {
            gallery.Title = gallery.Title;
            gallery.Owner = User.Identity.GetUserName();
            gallery.Date  = DateTime.Now;

            var             factory         = DependencyResolver.Current.GetService <IControllerFactory>() ?? new DefaultControllerFactory();
            ImageController imageController = factory.CreateController(this.ControllerContext.RequestContext, "Image") as ImageController;

            RouteData route = new RouteData();

            route.Values.Add("action", "Test");

            ControllerContext imageContext = new ControllerContext(new HttpContextWrapper(System.Web.HttpContext.Current), route, imageController);

            //Speichere Image in Datenbank
            imageController.ControllerContext = imageContext;
            imageController.Create(imageBase);

            //Nehme das Image aus der Datenbank anhand des Namens und Rufe die View Create mit dem Image aus der Datenbank auf.
            var fileName = Path.GetFileName(imageBase.First().FileName);
            var dbImage  = _context.Image.SingleOrDefault(n => n.Name == fileName);

            gallery.TitelImage = dbImage;

            _context.Gallery.Add(gallery);
            _context.SaveChanges();
            return(RedirectToAction("Index", "Gallery"));
        }
Esempio n. 2
0
        public ActionResult Save(NewsFeed newsFeed, IEnumerable <HttpPostedFileBase> imageBase)
        {
            //Pruefe ob die Eingaben Valide sind, falls nicht wiederhole bis richtig
            if (!ModelState.IsValid)
            {
                var viewModel = new NewsFeedFormViewModel
                {
                    NewsFeed   = newsFeed,
                    TitleImage = newsFeed.TitelImage
                };
                return(View("Save", viewModel));
            }
            //Wenn NewsFeed nicht in der Datenbank ist, erstelle neuen, ansonsten uebernehme neue Daten
            if (newsFeed.Id == 0)
            {
                Add(newsFeed, imageBase);
            }
            else
            {
                //Gibt datenbankobject
                var newsInDb = _context.NewsFeed.Single(n => n.Id == newsFeed.Id);
                //Vom System vorgegeben
                newsInDb.Date      = DateTime.Now;
                newsInDb.Edited    = true;
                newsInDb.Moderator = User.Identity.GetUserName();
                //Frei waehlbar
                newsInDb.Titel = newsFeed.Titel;
                newsInDb.Text  = newsFeed.Text;

                // Hier fuehren wir eine Context uebertrageung an einen anderen Controller durch
                var             factory         = DependencyResolver.Current.GetService <IControllerFactory>() ?? new DefaultControllerFactory();
                ImageController imageController = factory.CreateController(this.ControllerContext.RequestContext, "Image") as ImageController;
                RouteData       route           = new RouteData();
                route.Values.Add("action", "Test");

                ControllerContext imageContext = new ControllerContext(new HttpContextWrapper(System.Web.HttpContext.Current), route, imageController);
                //Speichere Image in Datenbank
                imageController.ControllerContext = imageContext;
                imageController.Create(imageBase);

                //Nehme das Image aus der Datenbank anhand des Namens und Rufe die View Create mit dem Image aus der Datenbank auf.
                var fileName = Path.GetFileName(imageBase.First().FileName);
                var dbImage  = _context.Image.SingleOrDefault(n => n.Name == fileName);
                newsFeed.TitelImage = dbImage;
                _context.NewsFeed.Add(newsFeed);
                _context.SaveChanges();
            }
            return(RedirectToAction("Index", "NewsFeed"));
        }