// 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)); }
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)); } }
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))); }
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)); } }
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); }
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)); }
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)); }