//[HttpPost]
        public ViewResult NextImage()
        {
            // Hol das Objekt aus der Session State raus
            var sessionControl = GetSessionControl();

            // Tamino: hol das aktuelle Bild
            var imageAktuell = GetImage(sessionControl.GetCurrentImage().ImageEntryID);

            var idm = sessionControl.GetNextImage();

            var entry = GetImage(idm.ImageEntryID);

            ViewBag.Copyright = entry.CopyrightOwner.Name;

            var model = new TagModel();

            model.Image = idm;

            // Tamino: Aktualisiere den TaggingState
            //var TaggingState = new TaggingStateModel();

            // Tamino: Aktualisiere die Views auf der Statusseite
            TaggingHub.UpdateViews(imageAktuell, entry, HttpContext.User.Identity.Name);

            ViewBag.TaggingState = TaggingState.InProgress;

            return(View("TaggingEditor", model));
        }
        public PartialViewResult DeleteTag(int id)
        {
            var sessionControl = GetSessionControl();

            var idm = sessionControl.GetCurrentImage();

            // zuerst den Tag speichern
            var tag = db.Taggings.SingleOrDefault(t => t.ArtworkTagId == id);

            if (tag != null)
            {
                db.Taggings.Remove(tag);
                db.SaveChanges();

                // Das Objekt tag gibt es nicht in der Liste, sondern ein Duplikat davon!!!
                var tag2 = idm.Tags.SingleOrDefault(t => t.ArtworkTagId == id);
                // Jetzt noch in der Session ablegen
                idm.Tags.Remove(tag2);
            }

            // Tamino: Aktuellen Status von der DB abfragen. Alle Tags des Bildes in eine Liste schreiben
            ICollection <ArtworkTag> taggings = null;

            taggings = db.Taggings.Include("Artwork").Include("TaggingGroup")
                       .Where(t => t.TaggingGroupId == sessionControl.Group.TaggingGroupId && t.ArtworkId == idm.ImageEntryID).ToList();

            // Tamino: Nach anzahl der tags und verischidenen tags auswerten

            var _image = new TagAnalysisImage
            {
                ArtworkID           = idm.ImageEntryID,
                numberTags          = 0,
                numberDifferentTags = 0,
            };

            var tagList = new List <TagList>();

            foreach (ArtworkTag _tag in taggings)
            {
                var tam = new TagList
                {
                    Tag    = _tag.Tag,
                    Anzahl = 1,
                };

                if (tagList.Exists(x => x.Tag == tam.Tag))
                {
                    tagList.Find(x => x.Tag == tam.Tag).Anzahl++;
                    _image.numberTags++;
                }
                else
                {
                    tagList.Add(tam);
                    _image.numberTags++;
                    _image.numberDifferentTags++;
                }
            }

            // Tamino: string für das Update bauen

            var writer = new StringBuilder();

            writer.Append("<table class='table-condensed table-striped col-sm-12'>");
            foreach (TagList tags in tagList)
            {
                writer.Append("<tr><td class='col-sm-6'>" + tags.Tag +
                              "</td><td class='col-sm-6' style='text-align: right;'>" + tags.Anzahl +
                              "</td></tr>");
            }
            writer.Append("</table><div id='ImageId' style='display: none;'>" + idm.ImageEntryID + "</div>");

            string[] pageUpdate = new string[] { _image.ArtworkID.ToString(), _image.numberTags.ToString(),
                     _image.numberDifferentTags.ToString(), writer.ToString() };
            // Tamino: Tags auf det Statusseite aktualisieren

            TaggingHub.UpdateTags(pageUpdate, HttpContext.User.Identity.Name);

            // Das Modell für die Anzeige der Liste aktualisieren
            return(PartialView("_TagList", idm));
        }