Beispiel #1
0
 public ProposalViewModel()
 {
     audience           = new AudienceDocument();
     audienceChannel    = new AudienceChannelDocument();
     providerImageClass = string.Empty;
     proposal           = new ProposalDocument();
     listQuestion       = new List <ProposalQuestionViewModel>();
 }
Beispiel #2
0
        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
            });
        }
Beispiel #3
0
        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;
        }
Beispiel #5
0
        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);
        }
Beispiel #7
0
        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
            });
        }
Beispiel #8
0
        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;
        }
Beispiel #9
0
        /// <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;
 }
Beispiel #11
0
 public ChannelViewModel()
 {
     audienceChannel = new AudienceChannelDocument();
     audience        = new AudienceDocument();
 }
Beispiel #12
0
        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" }));
            }
        }