예제 #1
0
        public ActionResult GoBack()
        {
            AudienceViewModel viewModel = GetViewModelFromSession();

            // select preview stage
            if (viewModel.stage == "preferences")
            {
                viewModel.stage = "basic";
            }
            if (viewModel.stage == "images")
            {
                viewModel.stage = "preferences";
            }

            HoldViewModel(viewModel);
            return(View("CreateAudience", viewModel));
        }
예제 #2
0
        public ActionResult CreateAudiencePreference(AudienceViewModel viewModel)
        {
            // todo
            AudienceViewModel viewModelStored = GetViewModelFromSession();

            // update
            viewModelStored.audience.HowManyAdvertisers = viewModel.audience.HowManyAdvertisers;
            viewModelStored.audience.Visibility         = viewModel.audience.Visibility;
            viewModelStored.preferencesStringify        = viewModel.preferencesStringify;

            // add preferences
            manager.AddPreferences(viewModelStored, viewModelStored.audience.Id);

            // set stage
            viewModelStored.stage = "images";

            HoldViewModel(viewModelStored);
            return(View("CreateAudience", viewModelStored));
        }
예제 #3
0
        public ActionResult EditAudience(string audienceId)
        {
            AudienceViewModel viewModel = new AudienceViewModel();
            List <AudiencePreferenceDocument> audiencePreferences = new List <AudiencePreferenceDocument>();

            ViewBag.audiencePreferences = manager.GetPreferencesByAudienceId(audienceId);
            //manager.EnqueueAudienceChange(new AudienceChangeNotification {
            //    idAudience = audienceId,
            //    ChangeType = TypeAudienceChange.,

            //});
            var publisherProfileDocument = _publisherProfileManager.FindProfileDocByUserId(User.Identity.GetUserId());

            viewModel.audience            = manager.GetAudienceById(audienceId);
            viewModel.audience.WebSiteUrl = viewModel.audience.WebSiteUrl.Replace("https://", "").Replace("http://", "");
            string Id = User.Identity.GetUserId();

            ViewBag.ImageSrcPreview    = publisherProfileDocument.IconUrl;
            ViewBag.descriptionPreview = publisherProfileDocument.Description;
            return(View(viewModel));
        }
예제 #4
0
        public ActionResult CreateAudienceBasic(AudienceViewModel viewModel)
        {
            var publisherProfileDocument = _publisherProfileManager.FindProfileDocByUserId(User.Identity.GetUserId());

            if (manager.IsAudienceDuplicated(publisherProfileDocument.Id, viewModel.audience.WebSiteUrl))
            {
                viewModel.stage = "basic";
                ViewBag.error   = "SiteDuplicated";
                return(View("CreateAudience", viewModel));
            }

            string id = string.Empty;

            string userId    = User.Identity.GetUserId();
            var    publisher = manager.GetPublisherProfile(userId);

            viewModel.audience.PublisherId = publisher.Id;
            viewModel.audience.Description = Negocio.Utilerias.StringUtilities.RemoveNewLineInString(viewModel.audience.Description);
            GetAndSetIconUrl(viewModel);
            var protocol = viewModel.audience.UrlProtocol == "1" ? "https://" : "http://";

            viewModel.audience.WebSiteUrl = string.Format("{0}{1}", protocol, viewModel.audience.WebSiteUrl.Replace("www.", "").Replace("http://", "").Replace("https://", ""));
            id = manager.AddAudience(viewModel);


            // validation
            if (id != string.Empty)
            {
                viewModel.audience.Id = id;
                viewModel.stage       = "preferences";
            }
            else
            {
                viewModel.stage = "error";
            }

            HoldViewModel(viewModel);
            viewModel.audience.Visibility = true;
            return(View("CreateAudience", viewModel));
        }
예제 #5
0
        private void GetAndSetImageUrl(AudienceViewModel viewModel, List <Models.Core.FileUpload> images = null)
        {
            // create Id
            Guid profileId = Guid.NewGuid();

            // get images and urls
            if (images == null)
            {
                images = GetFilesFromCurrentRequest();
            }

            Dictionary <string, string> urls = GetUrls(images);

            // check if Img is uploaded
            string value = string.Empty;

            urls.TryGetValue("fileupImg", out value);

            if (value != string.Empty)
            {
                viewModel.audience.ImageUrl = value;
            }
        }
예제 #6
0
        public void AddPreferences(AudienceViewModel viewModel, string Id)
        {
            try
            {
                //todo
                collectionName = CosmosCollections.AudiencePreference.ToString();
                List <AudiencePreferenceDocument> preferences = GetPreferences(viewModel.preferencesStringify, Id);
                viewModel.preferences = preferences;
                foreach (var preference in preferences)
                {
                    context.AddDocument <AudiencePreferenceDocument>(databaseName, collectionName, preference);
                }

                // updte audience
                collectionName = CosmosCollections.Audience.ToString();
                context.AddDocument <AudienceDocument>(databaseName, collectionName, viewModel.audience);
            }
            catch (Exception e)
            {
                var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }
        }
예제 #7
0
        private AudienceViewModel GetViewModelFromSession()
        {
            AudienceViewModel viewModel = (AudienceViewModel)Session[sessionKey];

            return(viewModel);
        }
예제 #8
0
        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 DownloadController(ITokenBuilder tokenBuilder, IAuthorizeService authorizeService, IOptionsMonitor <AudienceViewModel> audienceModel)
 {
     _tokenBuilder     = tokenBuilder;
     _authorizeService = authorizeService;
     _audienceModel    = audienceModel.CurrentValue;
 }
예제 #10
0
 public Task <string> UpdateAudience(AudienceViewModel audienceDtls)
 {
     throw new NotImplementedException();
 }