/// <summary> /// Create a new Feedback entity from the input. /// </summary> /// <param name="message">A message in a conversation.</param> /// <param name="data">Represents the submit data associated with the Share feedback card.</param> /// <param name="member">Teams channel account detailing user Azure Active Directory details.</param> /// <param name="feedbackProvider">Tickets Provider.</param> /// <returns>TicketEntity object.</returns> private static async Task <FeedbackEntity> CreateFeedbackAsync( IMessageActivity message, ShareFeedbackCardPayload data, TeamsChannelAccount member, IFeedbackProvider feedbackProvider) { string description = null; if (data.Rating == nameof(FeedbackRating.Helpful)) { description = data.DescriptionHelpful; } else if (data.Rating == nameof(FeedbackRating.NeedsImprovement)) { description = data.DescriptionNeedsImprovement; } else if (data.Rating == nameof(FeedbackRating.NotHelpful)) { description = data.DescriptionNotHelpful; } FeedbackEntity feedbackEntity = new FeedbackEntity { FeedbackId = Guid.NewGuid().ToString(), UserPrincipalName = member.UserPrincipalName, UserName = member.Name, UserGivenName = member.GivenName, Rating = data.Rating, Description = description, UserQuestion = data.UserQuestion, KnowledgeBaseAnswer = data.KnowledgeBaseAnswer, Subject = data.Project, }; await feedbackProvider.UpsertFeecbackAsync(feedbackEntity).ConfigureAwait(false); return(feedbackEntity); }