public ProposalViewModel() { audience = new AudienceDocument(); audienceChannel = new AudienceChannelDocument(); providerImageClass = string.Empty; proposal = new ProposalDocument(); listQuestion = new List <ProposalQuestionViewModel>(); }
public AudienceChannelViewModel FindAudienceChannelById(string audienceChannelId) { string query = $"SELECT * FROM {CosmosCollections.AudienceChannel.ToString()} WHERE {CosmosCollections.AudienceChannel.ToString()}.id='{audienceChannelId}'"; AudienceChannelDocument acd = context.ExecuteQuery <AudienceChannelDocument>(this.databaseName, CosmosCollections.AudienceChannel.ToString(), query).SingleOrDefault(); return(new AudienceChannelViewModel { channel = acd }); }
public List <ProposalReviewListItemViewModel> GetProposalsByAudienceChannelId(string audienceChannelId) { string collectionName = CosmosCollections.Proposal.ToString(); string queryGetProposal = $"SELECT * FROM {collectionName} WHERE {collectionName}.AudienceChannelId='{audienceChannelId}'"; List <ProposalDocument> proposals = context.ExecuteQuery <ProposalDocument>(this.databaseName, CosmosCollections.Proposal.ToString(), queryGetProposal); AudienceChannelDocument audienceChannel = _audienceChannelManager.GetAudienceChannelById(audienceChannelId); List <ProposalReviewListItemViewModel> results = proposals.Select(p => MapToProposalReviewListItemViewModel(p, audienceChannel)).ToList(); return(results); }
public AudienceChannelViewModel() { EmailProviderSelected = string.Empty; PushProviderSelected = string.Empty; WebSpaceProviderSelected = string.Empty; ValidationQuestion = false; telemetria = new Trace(); channel = new AudienceChannelDocument(); listQuestions = new List <QuestionAskToAudienceChannelDocument>(); manager = new AudienceChannelManager(); emailProductForm = new EmailProductForms(); pushProductForm = new PushProductForms(); IsValidApiKey = false; }
public PartialViewResult GetAudienceChannelEditForm(string audienceChannelId) { AudienceChannelViewModel viewModel = this._audienceChannelManager.FindAudienceChannelById(audienceChannelId); AudienceChannelDocument audienceChannel = _audienceChannelManager.GetAudienceChannelById(audienceChannelId); AudienceDocument audience = audienceManager.GetAudienceById(audienceChannel.AudienceId); viewModel.listQuestions = audienceManager.GetQuestionsByAudienceChannelId(audienceChannelId); ViewBag.IsPremium = audience.IsPremium; ViewBag.visibility = audience.Visibility; ViewBag.ImageSrcPreview = audience.ImageUrl; ViewBag.descriptionPreview = audience.Description; string path = _audienceChannelManager.GetEditChannelPathFromPartnerId(audienceChannel.ChannelId); return(PartialView(path, viewModel)); }
public AudienceChannelDocument GetAudienceChannelById(string audienceChannelId) { AudienceChannelDocument audienceChannel = null; try { collectionName = CosmosCollections.AudienceChannel.ToString(); string query = $"SELECT * FROM {collectionName} WHERE {collectionName}.id='{audienceChannelId}'"; audienceChannel = context.ExecuteQuery <AudienceChannelDocument>(databaseName, collectionName, query).FirstOrDefault(); } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(audienceChannel); }
public PublisherProposalDetailViewModel FindPublisherProposalDetailVMById(string proposalId) { ProposalDocument proposal = FindProposalById(proposalId); AdvertiserProfileDocument advertiser = _advertiserProfileManager.FindProfileByProfileId(proposal.AdvertiserProfileId); AudienceChannelDocument audienceChannel = GetAudienceChannelById(proposal.AudienceChannelId); string audienceUrl = getAudienceUrlSite(audienceChannel.AudienceId); CountryDocument country = _catalogManager.FindCountryById(advertiser.CountryBusinessInId); return(new PublisherProposalDetailViewModel { Accepted = proposal.AcceptedByPublisher, AdvertiserImage = advertiser.IconUrl, AdvertiserLocation = country.Name, AdvertiserName = advertiser.Title, ProposalId = proposal.Id, QuestionsAndAnswers = proposal.Questions, RejectDetail = proposal.RejectDetail, WebSite = audienceUrl, MemberSinceYear = advertiser.RegisterDate, Price = proposal.Price }); }
public List<ConversationItemViewModel> GetAllConversations(string email,int rolId) { ConcurrentBag<ConversationItemViewModel> conversationItemsParallel = new ConcurrentBag<ConversationItemViewModel>(); List<ConversationItemViewModel> conversationItems = new List<ConversationItemViewModel>(); List<ConversationDocument> conversations = new List<ConversationDocument>(); conversations = manager.GetConversationsAsync(email, rolId); string profileName = string.Empty; // from profile string profileTagLine = string.Empty; // from audience when is publisher string iconUrl = string.Empty; // from profile PublisherProfileDocument publisherProfile= manager.GetPublisherProfile(email); AdvertiserProfileDocument advertiserProfile = manager.GetAdvertiserProfile(email); if(publisherProfile != null && rolId==1) { profileName = publisherProfile.Name; iconUrl = publisherProfile.IconUrl; Parallel.ForEach(conversations, (conversation) => { List<ConversationMessageDocument> messages = manager.GetConversationMessagesByConversationId(conversation.Id); ConversationMessageDocument lastMessage = new ConversationMessageDocument(); if (messages.Count() > 0) { lastMessage = (from message in messages orderby message.RegisterDate descending select message).FirstOrDefault(); } AudienceChannelDocument audienceChannel = manager.GetAudienceChannelById(conversation.AudienceChannelId); profileTagLine = audienceChannel.TagLine; ConversationItemViewModel viewModel = new ConversationItemViewModel() { ProfileName = manager.GetAdvertiserProfileNameByConversationId(conversation.Id, email), ProfileTagLine = profileTagLine, IconUrl = manager.GetAdvertiserImageByConversationId(conversation.Id, email), Messages = messages, LastMessage = lastMessage, ConversationId = conversation.Id, Chunks = manager.GetConversationMessagesPerChunk(messages) }; conversationItemsParallel.Add(viewModel); }); } if(advertiserProfile!=null && rolId==2) { profileName = advertiserProfile.Title; iconUrl = advertiserProfile.IconUrl; profileTagLine = advertiserProfile.Tagline; Parallel.ForEach(conversations, (conversation) => { List<ConversationMessageDocument> messages = manager.GetConversationMessagesByConversationId(conversation.Id); ConversationMessageDocument lastMessage = new ConversationMessageDocument() { Message = string.Empty }; if (messages.Count() > 0) { lastMessage = (from message in messages orderby message.RegisterDate descending select message).FirstOrDefault(); } ConversationItemViewModel viewModel = new ConversationItemViewModel() { ProfileName = manager.GetPublisherProfileNameByConversationId(conversation.Id, email), ProfileTagLine = profileTagLine, IconUrl = manager.GetPublisherImageByConversationId(conversation.Id, email), Messages = messages, LastMessage = lastMessage, ConversationId = conversation.Id, Chunks = manager.GetConversationMessagesPerChunk(messages) }; conversationItemsParallel.Add(viewModel); }); } conversationItems = conversationItemsParallel.ToList(); conversationItems.OrderByDescending(x => x.LastMessage.MessageTime); return conversationItems; }
/// <summary> /// /// </summary> /// <param name="proposal"></param> /// <param name="audienceChannel">Si se le pasa un audienceChannel este se usara para setear price and productName, sino se consultara uno a la BD</param> /// <param name=""></param> /// <returns></returns> private ProposalReviewListItemViewModel MapToProposalReviewListItemViewModel(ProposalDocument proposal, AudienceChannelDocument audienceChannel = null) { if (audienceChannel == null) { audienceChannel = _audienceChannelManager.GetAudienceChannelById(proposal.AudienceChannelId); } AdvertiserProfileDocument advertiserProfile = _advertiserProfileManager.FindProfileByProfileId(proposal.AdvertiserProfileId); ApplicationUser user = _identityManager.FindUserByUserId(advertiserProfile.UserId); CountryDocument country = _catalogManager.FindCountryById(advertiserProfile.CountryBusinessInId); DateTime registerProposal = Convert.ToDateTime(proposal.RegisterDate); string messageDaysAgo = DateUtils.GetTextDaysAgo(registerProposal); return(new ProposalReviewListItemViewModel() { TimeAgoReceived = messageDaysAgo, AdvertiserImageSrc = advertiserProfile.IconUrl, AdvertiserName = user.Name, IdProposal = proposal.Id, Location = country != null?country.Name:"", Price = audienceChannel.Price.ToString() + " kind", ProductName = audienceChannel.Name }); }
public ViewChannelViewModel() { audience = new AudienceDocument(); audienceChannel = new AudienceChannelDocument(); providerImageClass = string.Empty; }
public ChannelViewModel() { audienceChannel = new AudienceChannelDocument(); audience = new AudienceDocument(); }
public ActionResult Channel([FromBody] AudienceChannelViewModel model) { try { model.channel.Description = Negocio.Utilerias.StringUtilities.RemoveNewLineInString(model.channel.Description); //List<QuestionAskToAudienceChannelDocument> newQuestions = (List<QuestionAskToAudienceChannelDocument>)TempData["vdListQuestions"]; AudienceChannelDocument audienceChannelSaved = this._audienceChannelManager.GetAudienceChannelById(model.channel.Id); bool changeImage = model.channel.IsDefaultImage != audienceChannelSaved.IsDefaultImage; bool changeDescription = model.channel.IsDefaultDescription != audienceChannelSaved.IsDefaultDescription; string newImageUrl = string.Empty; string newDescription = string.Empty; AudienceDocument audience = null; if (changeImage) { if (model.channel.IsDefaultImage) { audience = this.audienceManager.GetAudienceById(audienceChannelSaved.AudienceId); newImageUrl = audience.ImageUrl; } else { //Si la imagen es seleccionada por el usuario newImageUrl = BindFile(model); if (string.IsNullOrEmpty(newImageUrl)) { newImageUrl = audienceChannelSaved.ImageUrl; } } } else { if (model.channel.IsDefaultImage) { newImageUrl = audienceChannelSaved.ImageUrl; } else { //Si la imagen es seleccionada por el usuario newImageUrl = BindFile(model); if (string.IsNullOrEmpty(newImageUrl)) { if (string.IsNullOrEmpty(audienceChannelSaved.ImageUrl)) { audience = this.audienceManager.GetAudienceById(audienceChannelSaved.AudienceId); newImageUrl = audience.ImageUrl; } else { newImageUrl = audienceChannelSaved.ImageUrl; } } } } if (changeDescription) { if (model.channel.IsDefaultDescription) { audience = audience == null?this.audienceManager.GetAudienceById(audienceChannelSaved.AudienceId) : audience; newDescription = audience.Description; } } audienceChannelSaved.Price = model.channel.Price; audienceChannelSaved.Name = model.channel.Name; audienceChannelSaved.TagLine = model.channel.TagLine; audienceChannelSaved.ImageUrl = newImageUrl; audienceChannelSaved.Description = changeDescription ? (model.channel.IsDefaultDescription ? newDescription : Negocio.Utilerias.StringUtilities.RemoveNewLineInString(model.channel.Description)) : audienceChannelSaved.Description; audienceChannelSaved.IsDefaultImage = model.channel.IsDefaultImage; audienceChannelSaved.IsDefaultDescription = model.channel.IsDefaultDescription; audienceChannelSaved.Visibility = model.channel.Visibility; model.channel = audienceChannelSaved; //model.listQuestions = newQuestions; this._audienceChannelManager.UpdateAudienceChannel(model); return(Json(new { success = true, message = "Audience Channel edited successfully" })); } catch { return(Json(new { error = "Error creating Audience Channel" })); } }