public IActionResult AddSentiment() { EventSentimentModel newSentiment = new EventSentimentModel { Name = Guid.NewGuid().ToString(), Value = 0 }; return(PartialView("~/Views/Shared/EditorTemplates/EventSentimentModel.cshtml", newSentiment)); }
private EventSentimentModel GetEventSentiment(EventModel eventObj, string sentiment) { EventSentimentModel eventSentiment = eventObj.EventSentiments?.Find(p => p.Name == sentiment); if (eventSentiment == null) { if (eventObj.EventSentiments == null) { eventObj.EventSentiments = new List <EventSentimentModel>(); } eventSentiment = new EventSentimentModel() { Name = sentiment, Value = 0 }; eventObj.EventSentiments.Add(eventSentiment); } return(eventSentiment); }
private async Task <EventModel> UpdateEventSentimentValue(string eventId, string note, string sentiment) { EventModel eventObj = await _eventRestService.GetEvent(eventId); if (eventObj.IsEventActive) { EventSentimentModel eventSentiment = GetEventSentiment(eventObj, sentiment); eventSentiment.Value++; eventObj.LastNote = note; UpdateSentimentValuesPercentage(eventObj); try { var result = await _eventRestService.UpdateEvent(eventObj); if (result == HttpStatusCode.OK) { return(eventObj); } else if (result == HttpStatusCode.PreconditionFailed) { await UpdateEventSentimentValue(eventId, note, sentiment); //Etag error, retrying... } else { _logger.LogError($"UpdateEventSentimentValue: {result}"); return(null); } } catch (Exception e) { _logger.LogError($"UpdateEventSentimentValue: {e.Message}"); return(null); } } return(null); }