public ActionResult Preview() { //TODO: move to service! BlogOutput data = new BlogOutput(); var blog = service.GetBlogData(); if (blog != null && !String.IsNullOrEmpty(blog.titel)) { data.Title = blog.titel; data.Subtitle = blog.subtitel; data.Elements = new List <Element>(); data.GMapsMarker = new List <GMapsMarker>(); //add text to elements foreach (var text in blog.text) { data.Elements.Add(new TextElement { value = text.value, position = text.position }); } //add image and slideshow data into elements data.Elements.AddRange(mapImages(service.GetImages(), blog.images.ToList(), service.GetGallery())); //add video into elements foreach (var video in blog.videos) { data.Elements.Add(new VideoElement { Src = video.src, position = video.position }); } //sort, based on position data.Elements = data.Elements.OrderBy(x => x.position).ToList(); data.GMapsMarker.AddRange(blog.gmapsMarker); if (data.GMapsMarker.Count > 0) { data.IsGoogleMapsVisible = true; } service.SetBlog(data); //shove elements into view or display return(View(data)); } else { data.ErrorMessage = "No preview data available. Please add elements to your blog and then hit preview."; return(View(data)); } }