コード例 #1
0
        // GET: Admin/TaggingAnalysisAjax
        public ActionResult Index()
        {
            var searchModel = new TagSearchModel();


            ViewBag.ArtworkPoolId = new MultiSelectList(db.ArtworkPools, "ArtworkPoolId", "Name", null);
            ViewBag.GroupTagId    = new MultiSelectList(db.GroupTags, "GroupTagId", "Tag", null);

            return(View(searchModel));
        }
コード例 #2
0
        public async Task <HttpResponseMessage> PostCountWondersByTag([FromBody] TagSearchModel model)
        {
            try
            {
                if (model.UserId != null && DataContext.AspNetUsers.All(x => x.Id != model.UserId))
                {
                    return(Request.CreateResponse(HttpStatusCode.Unauthorized));
                }

                SetUserGenders(model.UserId);

                int numberOfWonders;;
                numberOfWonders = await Task.Run(() =>
                {
                    DataContext.TurnOffLazyLoading();
                    var results = DataContext.Deals.AsNoTracking()
                                  .Include(g => g.Gender)
                                  .Include(t => t.Tags)
                                  .Include(c => c.Company)
                                  .Include(c => c.Cost)
                                  .Include(c => c.Category)
                                  .Include(a => a.Address)
                                  .Include(l => l.Location)
                                  .Include(s => s.Season)
                                  .Include(a => a.Ages)
                                  .Include(i => i.Images)
                                  .Include(c => c.City)
                                  .Include(cl => cl.City.Location)
                                  .Where(w => w.CityId == model.CityId &&
                                         w.Archived == false &&
                                         w.Expired != true &&
                                         w.Priority == false &&
                                         w.Broadcast == false &&
                                         _genders.Contains(w.Gender.Id) &&
                                         (w.AlwaysAvailable == true || w.ExpiryDate >= DateTime.Now)
                                         // && w.Tags.Any(t => t.Name.StartsWith(model.TagName)));
                                         && w.Tags.Any(t => t.Name == model.TagName)).Count();

                    return(results);
                });

                DataContext.TurnOnLazyLoading();
                return(Request.CreateResponse(HttpStatusCode.OK, numberOfWonders));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
コード例 #3
0
        public async Task <TagModel> GetTagById(int tagId)
        {
            string tagQuery = $"id:{tagId}";

            _logger.LogDebug("Searching for tags: '{Query}'", tagQuery);

            TagSearchModel tagSearch = await _api.SearchTagsAsync(tagQuery, page : 1, perPage : 1);

            if (tagSearch.Tags is null)
            {
                throw new InvalidOperationException("The search query did not provide a list of tags");
            }

            if (!tagSearch.Tags.Any())
            {
                throw new ArgumentOutOfRangeException(nameof(tagId), tagId, "A tag with this ID was not found");
            }

            return(tagSearch.Tags.First());
        }
 public IHttpActionResult FetchEventsByTag(TagSearchModel model)
 {
     return(Ok(new ApiResponse(200)));
 }
コード例 #5
0
        public ActionResult TagSearch(TagSearchModel searchData, string buttonType)
        {
            var TaggingStartTime = searchData.TaggingDateBegin.Add(searchData.TaggingTimeBegin);
            var TaggingEndTime   = searchData.TaggingDateEnd.Add(searchData.TaggingTimeEnd);

            var context = new TagDbContext();

            bool errorExist = false;


            // 1. Vorbedingungen prüfen
            // wenn Auswahl, dann muss auch was ausgewählt sein => sonst Fehler!
            // wenn Zeitraum, dann muss startTime <= endTime sein => sonst fehler


            /*
             *  Anzeige, wenn "Alle" gewählt ist und trotzdem Elemente der Liste angeklickt wurden.
             *  Nur zum Verständnis, wenn Liste nicht die gewünschten Ergebnisse anzeigt.
             *
             * if (searchData.IsArtworkSelection == false && searchData.ArtworkPoolId != null)
             * {
             *  ModelState.AddModelError("ArtworkPoolId", "Sie haben in der Liste eine Auswahl getroffen, aber bereits 'Alle' gewählt.");
             * }
             *
             * if (searchData.IsGroupTagSelection == false && searchData.GroupTagId != null)
             * {
             *  ModelState.AddModelError("GroupTagId", "Sie haben in der Liste eine Auswahl getroffen, aber bereits 'Alle' gewählt.");
             * }
             */

            if (searchData.IsArtworkSelection == true && (searchData.ArtworkPoolId == null || searchData.ArtworkPoolId.Count() == 0))
            {
                ModelState.AddModelError("ArtworkPoolId", "Bitte wählen Sie Elemente aus der Liste.");
                errorExist = true;
            }


            if (searchData.IsTimeSpanSelection == true && (TaggingStartTime >= TaggingEndTime))
            {
                ModelState.AddModelError("TaggingDateBegin", "Die Startzeit muss vor der Endzeit liegen.");
                errorExist = true;
            }


            if (searchData.IsGroupTagSelection == true && (searchData.GroupTagId == null || searchData.GroupTagId.Count() == 0))
            {
                ModelState.AddModelError("GroupTagId", "Bitte wählen Sie Elemente aus der Liste.");
                errorExist = true;
            }

            if (errorExist)
            {
                // das Modell für die Anzeige muss jetzt wieder gebaut werden
                ViewBag.ArtworkPoolId = new MultiSelectList(db.ArtworkPools, "ArtworkPoolId", "Name", null);
                ViewBag.GroupTagId    = new MultiSelectList(db.GroupTags, "GroupTagId", "Tag", null);


                return(View(searchData));
            }

            ICollection <ArtworkTag> taggings = null;

            if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime &&
                                  searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId) &&
                                  t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId))
                                  ).ToList();
            }

            // ArtworkId == Auswahl && TimeSpan == Zeitraum && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime &&
                                  searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId)).ToList();
            }

            // ArtworkId == Auswahl && TimeSpan == keine Einschränkung && GroupTagId == Auswahl
            else if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId) &&
                                                                    searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId))
                                  ).ToList();
            }

            // ArtworkId == Alle && TimeSpan == Zeitraum && GroupTagId == Auswahl
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime &&
                                  t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId))
                                  ).ToList();
            }

            // ArtworkId == Auswahl && TimeSpan == keine Einschränkung && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId))
                           .ToList();
            }

            // ArtworkId == Alle && TimeSpan == Zeitraum && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime
                                  ).ToList();
            }

            // ArtworkId == Alle && TimeSpan == keine Einschränkung && GroupTagId == Auswahl
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId))
                                  ).ToList();
            }

            // ArtworkId == Alle && TimeSpan == keine Einschränkung && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .ToList();
            }


            if (buttonType == "download")
            {
                return(TaggingAnalysisDownload(taggings));
            }
            else
            {
                return(TaggingAnalysisWeb(taggings));
            }
        }
コード例 #6
0
        public ActionResult Index(TagSearchModel searchData)
        {
            var TaggingStartTime = searchData.TaggingDateBegin.Add(searchData.TaggingTimeBegin);
            var TaggingEndTime   = searchData.TaggingDateEnd.Add(searchData.TaggingTimeEnd);

            var context = new TagDbContext();

            ICollection <ArtworkTag> taggings = null;

            bool errorExist = false;


            // 1. Vorbedingungen prüfen
            // wenn Auswahl, dann muss auch was ausgewählt sein => sonst Fehler!
            // wenn Zeitraum, dann muss startTime <= endTime sein => sonst fehler


            /*
             *  Anzeige, wenn "Alle" gewählt ist und trotzdem Elemente der Liste angeklickt wurden.
             *  Nur zum Verständnis, wenn Liste nicht die gewünschten Ergebnisse anzeigt.
             *
             * if (searchData.IsArtworkSelection == false && searchData.ArtworkPoolId != null)
             * {
             *  ModelState.AddModelError("ArtworkPoolId", "Sie haben in der Liste eine Auswahl getroffen, aber bereits 'Alle' gewählt.");
             * }
             *
             * if (searchData.IsGroupTagSelection == false && searchData.GroupTagId != null)
             * {
             *  ModelState.AddModelError("GroupTagId", "Sie haben in der Liste eine Auswahl getroffen, aber bereits 'Alle' gewählt.");
             * }
             */

            if (searchData.IsArtworkSelection == true && (searchData.ArtworkPoolId == null || searchData.ArtworkPoolId.Count() == 0))
            {
                ModelState.AddModelError("ArtworkPoolId", "Bitte wählen Sie Elemente aus der Liste.");
                errorExist = true;
            }


            if (searchData.IsTimeSpanSelection == true && (TaggingStartTime >= TaggingEndTime))
            {
                ModelState.AddModelError("TaggingDateBegin", "Die Startzeit muss vor der Endzeit liegen.");
                errorExist = true;
            }


            if (searchData.IsGroupTagSelection == true && (searchData.GroupTagId == null || searchData.GroupTagId.Count() == 0))
            {
                ModelState.AddModelError("GroupTagId", "Bitte wählen Sie Elemente aus der Liste.");
                errorExist = true;
            }

            if (errorExist)
            {
                // das Modell für die Anzeige muss jetzt wieder gebaut werden
                ViewBag.ArtworkPoolId = new MultiSelectList(db.ArtworkPools, "ArtworkPoolId", "Name", null);
                ViewBag.GroupTagId    = new MultiSelectList(db.GroupTags, "GroupTagId", "Tag", null);


                return(View(searchData));
            }



            // 2. nur weitermachen, wenn keine Fehler

            // ArtworkId == Auswahl && TimeSpan == Zeitraum && GroupTagId == Auswahl
            if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime &&
                                  searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId) &&
                                  t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId))
                                  ).ToList();
            }

            // ArtworkId == Auswahl && TimeSpan == Zeitraum && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime &&
                                  searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId)).ToList();
            }

            // ArtworkId == Auswahl && TimeSpan == keine Einschränkung && GroupTagId == Auswahl
            else if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId) &&
                                                                    searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId))
                                  ).ToList();
            }

            // ArtworkId == Alle && TimeSpan == Zeitraum && GroupTagId == Auswahl
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime &&
                                  t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId))
                                  ).ToList();
            }

            // ArtworkId == Auswahl && TimeSpan == keine Einschränkung && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId))
                           .ToList();
            }

            // ArtworkId == Alle && TimeSpan == Zeitraum && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime
                                  ).ToList();
            }

            // ArtworkId == Alle && TimeSpan == keine Einschränkung && GroupTagId == Auswahl
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId))
                                  ).ToList();
            }

            // ArtworkId == Alle && TimeSpan == keine Einschränkung && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .ToList();
            }


            var model = new List <TagAnalysisModel>();

            foreach (var tag in taggings)
            {
                var tam = new TagAnalysisModel
                {
                    Tag           = tag.Tag,
                    Artwork       = tag.Artwork.Title,
                    ImagePoolName = tag.Artwork.ArtworkPool.Name,
                    TaggingTime   = tag.TaggingTime,
                    GroupTags     = tag.TaggingGroup.GetTagList(),
                };


                model.Add(tam);
            }

            var ms     = new MemoryStream();
            var writer = new StreamWriter(ms, Encoding.Default);


            //Response.Clear();
            //Response.AddHeader("content-Disposition", "attachement; filename=taggings.csv");
            //Response.ContentType = "text/csv";
            writer.Write("Schlagwort;Bild;Bildpool;Zeitstempel;Gruppenschlagworte");

            writer.Write(Environment.NewLine);
            foreach (var item in model)
            {
                writer.Write(String.Format("{0};{1};{2};{3};{4}",
                                           item.Tag,
                                           item.Artwork,
                                           item.ImagePoolName,
                                           item.TaggingTime,
                                           item.GroupTags
                                           ));
                writer.Write(Environment.NewLine);
            }

            writer.Flush();
            writer.Dispose();
            // Anzeige, wenn "Alle" gewählt ist und trotzdem Elemente der Liste angeklickt wurden.
            // Nur zum Verständnis, wenn Liste nicht die gewünschten Ergebnisse anzeigt.
            //ViewBag.ArtworkPoolId = new MultiSelectList(db.ArtworkPools, "ArtworkPoolId", "Name", null);
            //ViewBag.GroupTagId = new MultiSelectList(db.GroupTags, "GroupTagId", "Tag", null);
            return(File(ms.GetBuffer(), "text/csv", "Taggings.csv")); // && View(searchData);
        }
コード例 #7
0
        public ActionResult TaggingAnalysisWeb(TagSearchModel searchData)
        {
            var TaggingStartTime = searchData.TaggingDateBegin.Add(searchData.TaggingTimeBegin);
            var TaggingEndTime   = searchData.TaggingDateEnd.Add(searchData.TaggingTimeEnd);

            var context = new TagDbContext();

            ICollection <ArtworkTag> taggings = null;

            if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime &&
                                  searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId) &&
                                  t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId))
                                  ).ToList();
            }

            // ArtworkId == Auswahl && TimeSpan == Zeitraum && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime &&
                                  searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId)).ToList();
            }

            // ArtworkId == Auswahl && TimeSpan == keine Einschränkung && GroupTagId == Auswahl
            else if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId) &&
                                                                    searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId))
                                  ).ToList();
            }

            // ArtworkId == Alle && TimeSpan == Zeitraum && GroupTagId == Auswahl
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime &&
                                  t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId))
                                  ).ToList();
            }

            // ArtworkId == Auswahl && TimeSpan == keine Einschränkung && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == true && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => searchData.ArtworkPoolId.Contains(t.Artwork.ArtworkPool.ArtworkPoolId))
                           .ToList();
            }

            // ArtworkId == Alle && TimeSpan == Zeitraum && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == true && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingTime >= TaggingStartTime && t.TaggingTime <= TaggingEndTime
                                  ).ToList();
            }

            // ArtworkId == Alle && TimeSpan == keine Einschränkung && GroupTagId == Auswahl
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == true)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .Where(t => t.TaggingGroup.GroupTags.Any(g => searchData.GroupTagId.Contains(g.GroupTagId))
                                  ).ToList();
            }

            // ArtworkId == Alle && TimeSpan == keine Einschränkung && GroupTagId == Alle
            else if (searchData.IsArtworkSelection == false && searchData.IsTimeSpanSelection == false && searchData.IsGroupTagSelection == false)
            {
                taggings = context.Taggings.Include("Artwork").Include("TaggingGroup")
                           .ToList();
            }

            var modelGroupedByImage = new List <TagAnalysisImage>();

            var model = new List <TagList>();

            foreach (var tag in taggings)
            {
                var imageTags = new TagAnalysisImage
                {
                    Artwork       = tag.Artwork.Title,
                    ArtworkID     = tag.ArtworkId.Value,
                    ImagePoolName = tag.Artwork.ArtworkPool.Name,
                };
                var tam = new TagList
                {
                    Tag    = tag.Tag,
                    Anzahl = 1,
                };
                if (modelGroupedByImage.Exists(x => x.ArtworkID == imageTags.ArtworkID && x.ImagePoolName == imageTags.ImagePoolName))
                {
                    model = modelGroupedByImage.First(x => x.ArtworkID == imageTags.ArtworkID && x.ImagePoolName == imageTags.ImagePoolName).Tags.ToList();

                    if (model.Exists(x => x.Tag == tam.Tag))
                    {
                        model.Find(x => x.Tag == tam.Tag).Anzahl++;
                    }
                    else
                    {
                        model.Add(tam);
                    }

                    modelGroupedByImage.First(x => x.ArtworkID == imageTags.ArtworkID && x.ImagePoolName == imageTags.ImagePoolName).Tags = model;
                }
                else
                {
                    var taglist = new List <TagList>();

                    taglist.Add(tam);

                    imageTags.Tags = taglist;

                    modelGroupedByImage.Add(imageTags);
                }
            }
            ;
            // Bilder alphabetisch sortieren
            modelGroupedByImage = modelGroupedByImage.OrderBy(x => x.Artwork).ToList();
            // tags nach Anzahl der Nennungen sortieren
            foreach (var image in modelGroupedByImage)
            {
                image.Tags = image.Tags.OrderByDescending(x => x.Anzahl).ToList();
            }
            ;

            TagDbContext db = new TagDbContext();

            var img_model = db.Images.ToList();

            ViewBag.Taglist = modelGroupedByImage;
            return(View(img_model));
        }
コード例 #8
0
        public ActionResult ShowInBrowser(TagSearchModel searchData)
        {
            var TaggingStartTime = searchData.TaggingDateBegin.Add(searchData.TaggingTimeBegin);
            var TaggingEndTime   = searchData.TaggingDateEnd.Add(searchData.TaggingTimeEnd);

            var context = new TagDbContext();

            bool errorExist = false;


            // 1. Vorbedingungen prüfen
            // wenn Auswahl, dann muss auch was ausgewählt sein => sonst Fehler!
            // wenn Zeitraum, dann muss startTime <= endTime sein => sonst fehler


            /*
             *  Anzeige, wenn "Alle" gewählt ist und trotzdem Elemente der Liste angeklickt wurden.
             *  Nur zum Verständnis, wenn Liste nicht die gewünschten Ergebnisse anzeigt.
             *
             * if (searchData.IsArtworkSelection == false && searchData.ArtworkPoolId != null)
             * {
             *  ModelState.AddModelError("ArtworkPoolId", "Sie haben in der Liste eine Auswahl getroffen, aber bereits 'Alle' gewählt.");
             * }
             *
             * if (searchData.IsGroupTagSelection == false && searchData.GroupTagId != null)
             * {
             *  ModelState.AddModelError("GroupTagId", "Sie haben in der Liste eine Auswahl getroffen, aber bereits 'Alle' gewählt.");
             * }
             */

            if (searchData.IsArtworkSelection == true && (searchData.ArtworkPoolId == null || searchData.ArtworkPoolId.Count() == 0))
            {
                ModelState.AddModelError("ArtworkPoolId", "Bitte wählen Sie Elemente aus der Liste.");
                errorExist = true;
            }


            if (searchData.IsTimeSpanSelection == true && (TaggingStartTime >= TaggingEndTime))
            {
                ModelState.AddModelError("TaggingDateBegin", "Die Startzeit muss vor der Endzeit liegen.");
                errorExist = true;
            }


            if (searchData.IsGroupTagSelection == true && (searchData.GroupTagId == null || searchData.GroupTagId.Count() == 0))
            {
                ModelState.AddModelError("GroupTagId", "Bitte wählen Sie Elemente aus der Liste.");
                errorExist = true;
            }

            if (errorExist)
            {
                // das Modell für die Anzeige muss jetzt wieder gebaut werden
                ViewBag.ArtworkPoolId = new MultiSelectList(db.ArtworkPools, "ArtworkPoolId", "Name", null);
                ViewBag.GroupTagId    = new MultiSelectList(db.GroupTags, "GroupTagId", "Tag", null);


                return(View(searchData));
            }

            return(TaggingAnalysisWeb(searchData));
        }