public FileStreamResult CreateScriptFile(Guid IdAudience) { AudienceManager repository = new AudienceManager(); AudienceDocument _audience = repository.GetAudienceById(IdAudience.ToString()); if (_audience != null) { string datafile = CreateScriptGtm(IdAudience); if (datafile.Length > 0) { var byteArray = System.Text.Encoding.ASCII.GetBytes(datafile); var stream = new System.IO.MemoryStream(byteArray); System.Web.Mvc.FileStreamResult _sfile = new System.Web.Mvc.FileStreamResult(stream, "text/plain"); _sfile.FileDownloadName = "scriptGTM.txt"; return(_sfile); } else { return(null); } } return(null); }
public FileStreamResult CreateVerificationFile(Guid IdAudience) { AudienceDocument _audience = GetAudienceById(IdAudience.ToString()); if (_audience != null) { string datafile = _audience.VerificationString; if (datafile.Length > 0) { var byteArray = System.Text.Encoding.ASCII.GetBytes(datafile); var stream = new System.IO.MemoryStream(byteArray); System.Web.Mvc.FileStreamResult _sfile = new System.Web.Mvc.FileStreamResult(stream, "text/plain"); _sfile.FileDownloadName = "kindads.txt"; return(_sfile); } else { return(null); } } return(null); }
public AudienceDocument GetAudienceById(string IdAudience) { AudienceManager repository = new AudienceManager(); AudienceDocument audience = repository.GetAudienceById(IdAudience); return(audience); }
public VerifyAudienceViewModel() { txt = new TxtSiteValidation(); ad = new AzureADSiteValidation(); gtm = new GoogleTagManagerValidation(); audience = new AudienceDocument(); }
public ProposalViewModel() { audience = new AudienceDocument(); audienceChannel = new AudienceChannelDocument(); providerImageClass = string.Empty; proposal = new ProposalDocument(); listQuestion = new List <ProposalQuestionViewModel>(); }
public bool SiteWithTokenVerified(Guid IdAudience) { bool result = false; AudienceDocument _audience = GetAudienceById(IdAudience.ToString()); result = (bool)_audience.Verified; return(result); }
public AudienceViewModel() { manager = new AudienceManager(); audience = new AudienceDocument(); preferences = new List <AudiencePreferenceDocument>(); preferencesStringify = string.Empty; telemetria = new Trace(); }
public AudienceDocument getAudienceById(string audienceId) { string Url = string.Empty; collectionName = CosmosCollections.Audience.ToString(); string query = $"SELECT * FROM {collectionName} WHERE {collectionName}.id='{audienceId}'"; AudienceDocument audience = context.ExecuteQuery <AudienceDocument>(databaseName, collectionName, query).FirstOrDefault(); return(audience); }
public PartialViewResult GetChannelForm(string channelId, string audienceId) { AudienceChannelViewModel viewModel = new AudienceChannelViewModel(); AudienceDocument audience = audienceManager.GetAudienceById(audienceId); ViewBag.IsPremium = audience.IsPremium; ViewBag.visibility = audience.Visibility; string path = _audienceChannelManager.GetChannelPathFromPartnerId(channelId); viewModel.channel.IsDefaultDescription = true; viewModel.channel.IsDefaultImage = true; return(PartialView(path, viewModel)); }
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 ActionResult CreateChannel([FromBody] string audienceId) { audienceManager.audienceId = audienceId; AudienceDocument audience = audienceManager.GetAudienceById(audienceManager.audienceId); TempData["tdIdAudience"] = audienceManager.audienceId; ViewBag.ImageSrcPreview = audience.ImageUrl; ViewBag.descriptionPreview = audience.Description; ViewBag.site = audience.WebSiteUrl; AudienceChannelViewModel model = new AudienceChannelViewModel(); if (!string.IsNullOrEmpty(audienceId)) { TempData["tdIdAudience"] = audienceId; } return(View(model)); }
public bool ValidateToken(string messageToken) { bool result = false; try { // Obtenemos el objeto JSON SiteValidationToken siteToVerified = JsonConvert.DeserializeObject <SiteValidationToken>(messageToken); Guid IdAudience = new Guid(siteToVerified.AudienceId); AudienceDocument audience = repository.GetAudienceById(IdAudience.ToString()); //Creamos el token con los datos del sitio //SiteToken siteToken = new SiteToken //{ // Name = audience.Title, // Url = siteToVerified.SiteUrl, // SiteId = new Guid(siteToVerified.AudienceId) //}; //string siteTokenRow = JsonConvert.SerializeObject(siteToken); //string token = Security.GetSha256(siteTokenRow); string siteclean = audience.WebSiteUrl.Replace("https://", "").Replace("http://", ""); string siteToVerifiedClean = siteToVerified.SiteUrl.Replace("https://", "").Replace("http://", ""); // Realizamos la validacion de la url del sitio y del token if (siteclean == siteToVerifiedClean) { audience.Verified = true; result = true; repository.UpdateAudience(audience); //Enviar notificacion del resultado } else { //Enviar notificacion del resultado } } catch (Exception e) { string messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(result); }
public ActionResult VerifyWebSite(string audienceId) { //cargar el script y mostralo en la vista AudienceDocument audience = new AudienceDocument(); VerifyAudienceViewModel model = new VerifyAudienceViewModel(); model.gtm.Script = siteViewModelManager.CreateScriptGtm(new Guid(audienceId)); model.gtm.ScriptByRows = siteViewModelManager.CreateScriptGtmByRows(new Guid(audienceId)); if (audienceId != null) { AudienceDocument ad = audienceManager.GetAudienceById(audienceId); ViewBag.site = ad.WebSiteUrl; TempData["tdIdAudience"] = audienceId; audience = ad; model.audience = audience; } return(View(model)); }
public AudienceDocument UpdateAudience(AudienceDocument audience, string preferencesStringify) { List <AudiencePreferenceDocument> existingPreferences = GetPreferencesByAudienceId(audience.Id); context.DeleteDocumentsById(databaseName, CosmosCollections.AudiencePreference.ToString(), existingPreferences.Select(p => p.Id).ToList()); if (!string.IsNullOrEmpty(preferencesStringify)) { List <AudiencePreferenceDocument> preferences = GetPreferences(preferencesStringify, audience.Id); foreach (var preference in preferences) { preference.Id = Guid.NewGuid().ToString(); context.AddDocument <AudiencePreferenceDocument>(databaseName, CosmosCollections.AudiencePreference.ToString(), preference); } } context.UpsertDocument <AudienceDocument>(this.databaseName, CosmosCollections.Audience.ToString(), audience); return(GetAudienceById(audience.Id)); }
public bool SiteWithTxtVerified(Guid IdAudience) { bool result = false; AudienceManager repository = new AudienceManager(); AudienceDocument audience = repository.GetAudienceById(IdAudience.ToString()); System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(audience.WebSiteUrl + "/kindads.txt"); request.Method = "GET"; try { System.Net.WebResponse webResponse = request.GetResponse(); using (System.IO.Stream webStream = webResponse.GetResponseStream()) { if (webStream != null) { using (System.IO.StreamReader responseReader = new System.IO.StreamReader(webStream)) { var _response = responseReader.ReadToEnd(); if (_response != null) { if (_response.Trim() == audience.VerificationString.Trim()) { //Verify Site audience.Verified = true; repository.UpdateAudience(audience); result = true; } } } } } } catch (Exception Ex) { //Do nothing } return(result); }
public ActionResult Channel(string audienceId, string audienceChannelId, string channelTypeId) { audienceManager.audienceId = audienceId; AudienceDocument audience = audienceManager.GetAudienceById(audienceManager.audienceId); TempData["tdIdAudience"] = audienceManager.audienceId; ViewBag.site = audience.WebSiteUrl; ViewBag.channelTypeId = channelTypeId; ViewBag.audienceName = audience.Title; ViewBag.audienceImage = audience.ImageUrl; ViewBag.siteUrl = audience.WebSiteUrl; ViewBag.NoProposals = this._proposalManager.GetNoProposalsByAudienceChannelId(audienceChannelId); if (!string.IsNullOrEmpty(audienceId)) { TempData["tdIdAudience"] = audienceId; } ViewBag.audienceChannelId = audienceChannelId; return(View()); }
public ViewChannelViewModel() { audience = new AudienceDocument(); audienceChannel = new AudienceChannelDocument(); providerImageClass = string.Empty; }
public bool UpdateAudience(AudienceDocument audienceDocument) { return(context.AddDocument(databaseName, CosmosCollections.Audience.ToString(), audienceDocument)); }
public AudienceListItemViewModel() { audience = new AudienceDocument(); _audienceManager = new AudienceChannelManager(); }
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" })); } }
public ActionResult EditAudience(AudienceViewModel viewModel) { string userId = User.Identity.GetUserId(); try { var protocol = viewModel.audience.UrlProtocol == "1" ? "https://" : "http://"; viewModel.audience.WebSiteUrl = string.Format("{0}{1}", protocol, viewModel.audience.WebSiteUrl.Replace("www.", "").Replace("https://", "").Replace("http://", "")); //Subimos imagen de icono en caso de que sea una nueva y la seteamos al VM bool newIconImage = true; newIconImage = string.IsNullOrEmpty(viewModel.audience.IconUrl); List <Models.Core.FileUpload> images = null; if (newIconImage) { images = GetAndSetIconUrl(viewModel); } //Submis imagen en de que sea nueva y la seteamos al VM bool newImgImage = true; newImgImage = string.IsNullOrEmpty(viewModel.audience.ImageUrl); if (newImgImage) { GetAndSetImageUrl(viewModel, images); } viewModel.audience.Description = Negocio.Utilerias.StringUtilities.RemoveNewLineInString(viewModel.audience.Description); //Seteamos campos basicos AudienceDocument audienceCandidate = manager.GetAudienceById(viewModel.audience.Id); string imgUrl = newImgImage ? viewModel.audience.ImageUrl : audienceCandidate.ImageUrl; bool changeImage = imgUrl != audienceCandidate.ImageUrl; bool changeDescription = audienceCandidate.Description != viewModel.audience.Description; bool changeVisibility = (audienceCandidate.Visibility != viewModel.audience.Visibility) && !viewModel.audience.Visibility; audienceCandidate.Title = viewModel.audience.Title; audienceCandidate.Tagline = viewModel.audience.Tagline; audienceCandidate.UrlProtocol = viewModel.audience.UrlProtocol; audienceCandidate.Description = viewModel.audience.Description; audienceCandidate.WebSiteUrl = viewModel.audience.WebSiteUrl; audienceCandidate.IconUrl = newIconImage ? viewModel.audience.IconUrl : audienceCandidate.IconUrl; audienceCandidate.ImageUrl = imgUrl; audienceCandidate.HowManyAdvertisers = viewModel.audience.HowManyAdvertisers; audienceCandidate.PeopleInYourBusiness = viewModel.audience.PeopleInYourBusiness; audienceCandidate.CountryBusinessInId = viewModel.audience.CountryBusinessInId; audienceCandidate.YearFounded = viewModel.audience.YearFounded; audienceCandidate.Visibility = viewModel.audience.Visibility; audienceCandidate.CategoryId = viewModel.audience.CategoryId; audienceCandidate.SubCategoryId = viewModel.audience.SubCategoryId; //Persistimos audience candidate and preferences AudienceDocument audience = manager.UpdateAudience(audienceCandidate, viewModel.preferencesStringify); //viewModel.audience = audience; if (changeDescription) { manager.EnqueueAudienceChange(new AudienceChangeNotification { ChangeType = TypeAudienceChange.ChangeDescription, idAudience = viewModel.audience.Id, Description = audienceCandidate.Description }); } if (changeImage) { manager.EnqueueAudienceChange(new AudienceChangeNotification { ChangeType = TypeAudienceChange.ChangeImage, idAudience = viewModel.audience.Id, ImageUrl = imgUrl }); } if (changeVisibility) { manager.EnqueueAudienceChange(new AudienceChangeNotification { ChangeType = TypeAudienceChange.DisableVisibility, idAudience = viewModel.audience.Id }); } return(Json(new { success = true, message = "Audience edited successfully", audienceId = viewModel.audience.Id })); } catch (Exception ex) { return(Json(new { error = "Error editing Audience" })); } }
public ActionResult CreateChannel([FromBody] AudienceChannelViewModel model) { string audienceId = TempData["tdIdAudience"].ToString(); Guid productId = Guid.NewGuid(); Guid audienceChannelId = Guid.NewGuid(); Guid settingId = Guid.NewGuid(); AudienceDocument audience = _audienceChannelManager.getAudienceById(audienceId); (string channelTypeId, string channelTypeName)channelType = ("", ""); string detail = string.Empty; if (model.EmailProviderSelected != string.Empty && model.EmailProviderSelected != null) { AudienceChannelViewModel viewModel = new AudienceChannelViewModel(); if (model.EmailProviderSelected == ChannelProvider.MailChimpId) { detail = viewModel.GetSubscribersMailChimp(model.emailProductForm.mailChimpForm.ApiToken, model.emailProductForm.mailChimpForm.ListId); } else if (model.EmailProviderSelected == ChannelProvider.CampaignMonitorId) { detail = viewModel.GetSubscribersCampaignMonitor(model.emailProductForm.campaignMonitorForm.ApiToken, model.emailProductForm.campaignMonitorForm.ListId); } else if (model.EmailProviderSelected == ChannelProvider.SendGridId) { detail = viewModel.GetSubscribersSendGrid(model.emailProductForm.sendGridForm.ApiToken, model.emailProductForm.sendGridForm.ListId); } else if (model.EmailProviderSelected == ChannelProvider.AweberId) { detail = viewModel.GetSubscribersAweber((ProviderAWeberApiResult)TempData["AweberApiTokenData"], model.emailProductForm.aweberForm.ListId); } channelType = KindAds.Comun.Structures.SChannelType.Email; model.channel.ChannelId = channelType.channelTypeId; _audienceChannelManager.AddEmailProduct(model, audienceChannelId.ToString(), settingId.ToString(), productId.ToString(), detail); model.channel.Id = audienceChannelId.ToString(); model.channel.ProductId = productId.ToString(); _audienceChannelManager.AddEmailProductSettings(audience.WebSiteUrl, model, productId.ToString()); } if (model.PushProviderSelected != string.Empty && model.PushProviderSelected != null) { channelType = KindAds.Comun.Structures.SChannelType.PushNotification; model.channel.ChannelId = channelType.channelTypeId; _audienceChannelManager.AddPushProduct(model, audienceChannelId.ToString(), settingId.ToString(), productId.ToString(), string.Empty); model.channel.Id = audienceChannelId.ToString(); model.channel.ProductId = productId.ToString(); _audienceChannelManager.AddPushProductSettings(audience.WebSiteUrl, model, productId.ToString()); detail = ""; } if (model.WebSpaceProviderSelected != string.Empty) { channelType = KindAds.Comun.Structures.SChannelType.WebsiteAdSpace; //todo } string productProviderId = _audienceChannelManager.GetProductProviderId(model); // add AudienceChannelDocument and Questions var selectedCat = audienceManager.GetIndustrieById(audience.CategoryId); BindQuestionsImageDescriptionAudienceChannelModel(model); model.channel.AudienceId = audienceId; model.channel.Visibility = audience.Visibility ? model.channel.Visibility : audience.Visibility; model.channel.IsActive = audience.Verified; model.channel.Detail = detail; model.channel.LastProviderDataUpdated = DateUtils.GetMexicanDateTimeNow(); model.channel.Category = selectedCat.Name; model.channel.SubCategory = selectedCat.SubIndustries.Where(s => s.Id == audience.SubCategoryId).SingleOrDefault().Name; model.channel.AudienceName = audience.Title; model.channel.ChannelType = channelType.channelTypeName; model.channel.providerName = SChannelProvider.Providers.SingleOrDefault(p => p.providerId == productProviderId).description; model.channel.ProductProviderId = productProviderId; model.channel.Rating = string.Empty; model.channel.Score = string.Empty; var operationResult = _audienceChannelManager.AddAudienceChannel(model); return(operationResult ? Json(new { success = true, message = "Audience Channel created successfully" }) : Json(new { error = "Error creating Audience Channel" })); }