public async Task <IActionResult> Edit(int id, [Bind("Id,Text,MessageId")] MessageHashtag messageHashtag) { if (id != messageHashtag.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(messageHashtag); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MessageHashtagExists(messageHashtag.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["MessageId"] = new SelectList(_context.Messages, "Id", "Id", messageHashtag.MessageId); return(View(messageHashtag)); }
public async Task <IActionResult> Create([Bind("Id,Text,MessageId")] MessageHashtag messageHashtag) { if (ModelState.IsValid) { var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); var neighbor = _context.Neighbors.Where(n => n.ApplicationUserId == userId).FirstOrDefault(); var messageHashtagTexts = messageHashtag.Text.Split(",").ToList(); //var neighborHashtags = _context.Hashtags.Where(h => h.NeighborId == neighbor.Id).Select(h => h.Text).ToList(); var hashtagTexts = _context.Hashtags.Where(h => h.NeighborId == neighbor.Id).Select(h => h.Text).ToList(); //var hashtagListForMessage = new List<string>(); foreach (var m in messageHashtagTexts) { MessageHashtag newMessageHashtag = new MessageHashtag(); newMessageHashtag.MessageId = messageHashtag.MessageId; //hashtagListForMessage.Add(m); newMessageHashtag.Text = m; _context.Add(newMessageHashtag); await _context.SaveChangesAsync(); if (hashtagTexts.Contains(m)) { continue; } else { Hashtag newHashtag = new Hashtag(); newHashtag.NeighborId = neighbor.Id; newHashtag.Text = m; _context.Add(newHashtag); await _context.SaveChangesAsync(); } } //Message message = _context.Messages.Where(m => m.Id == messageHashtag.MessageId).FirstOrDefault(); //message.Hashtags = hashtagListForMessage; return(RedirectToAction("Index", "Messages")); } ViewData["MessageId"] = new SelectList(_context.Messages, "Id", "Id", messageHashtag.MessageId); return(View(messageHashtag)); }
private void CreateHashtag(Message message, Capture tag, IList <Hashtag> createdHashtags) { var value = tag.Value.Replace("#", "").ToLower(); var hashtag = createdHashtags.FirstOrDefault(x => x.Name == value) ?? _hashtagRepository.FindByName(value); if (hashtag == null) { hashtag = new Hashtag { Name = value }; _hashtagRepository.Create(hashtag); createdHashtags.Add(hashtag); } var messageHashtag = new MessageHashtag { Hashtag = hashtag, Message = message, Index = tag.Index, Length = tag.Length }; _messageHashtagRepository.Create(messageHashtag); }