public ActionResult CreateConversationFromProposal(string conversationJSON) { bool result = true; ConversationViewModel viewModel = new ConversationViewModel(); KindAds.Utils.Enums.Roles rol; rol = (User.IsInRole(KindAds.Utils.Enums.Roles.Publisher.ToString()) ? KindAds.Utils.Enums.Roles.Publisher : KindAds.Utils.Enums.Roles.Advertiser); int rolId = Convert.ToInt32(rol); var email = System.Web.HttpContext.Current.User.Identity.Name; try { ConversationParametersViewModel conversationParameters = JsonConvert.DeserializeObject <ConversationParametersViewModel>(conversationJSON); result = Manager.CreateConversation(conversationParameters); viewModel.conversationItems = viewModel.GetAllConversations(email, rolId); } catch (Exception e) { var messageException = Telemetry.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); Telemetry.Critical(messageException); } return(View("Home", viewModel)); }
public bool CreateConversation(ConversationParametersViewModel conversationParameters) { bool result = false; bool resultCreateConversationDocument = false; bool resultCreateAddConversationPeople = false; string conversationId = Guid.NewGuid().ToString(); try { resultCreateConversationDocument = CreateConversationDocument(conversationId, conversationParameters.AudienceChannelId, conversationParameters.NameConversation); resultCreateAddConversationPeople = AddConversationPeopleDocument(conversationId, conversationParameters.PublisherId, conversationParameters.AdvertiserId); result = (resultCreateConversationDocument && resultCreateAddConversationPeople) == true?true:false; } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(result); }
public ActionResult Proposal(ProposalViewModel viewModel) { ConversationParametersViewModel conversationParameters = new ConversationParametersViewModel(); viewModel.proposal.AudienceChannelId = TempData["idAudienceChannel"].ToString(); var operationResult = manager.AddProposal(viewModel, User.Identity.GetUserId()); string conversationParametersJson = string.Empty; if (operationResult) { string serviceBusQueueName = "proposaltopicdev"; var audienceChannel = audienceChannelManager.GetAudienceChannelById(viewModel.proposal.AudienceChannelId); var audience = audienceManager.GetAudienceById(audienceChannel.AudienceId); var publisherProfile = manager.GetPublisherProfileById(audience.PublisherId); var advertiserProfile = manager.GetAdvertiserProfile(User.Identity.GetUserId()); conversationParameters.NameConversation = publisherProfile.Name + "_" + audienceChannel.Name + "_" + advertiserProfile.Title; conversationParameters.AdvertiserId = advertiserProfile.Id; conversationParameters.PublisherId = publisherProfile.Id; conversationParameters.AudienceChannelId = audienceChannel.Id; conversationParametersJson = JsonConvert.SerializeObject(conversationParameters); ProposalNotification proposalNotification = new ProposalNotification() { idUser = publisherProfile.UserId, message = "Proposal created successfully" }; string message = JsonConvert.SerializeObject(proposalNotification); notificationManager = new NotificationManager(serviceBusQueueName); notificationManager.ProcessProposalNotification(message, new Dictionary <string, int>()); notificationManager.Close(); } return(operationResult ? Json(new { success = true, message = "Proposal created successfully", conversationParameters = conversationParametersJson, proposalId = viewModel.proposal.Id }) : Json(new { error = "Error creating Proposal" })); }