コード例 #1
0
        public async Task <IActionResult> SetProfile([Bind("UserId,ProfilePicture,GivenName,FamilyName,CompanyName,SelectedTags")] AdvertiserProfileViewModel advertiserProfileViewModel)
        {
            if (ModelState.IsValid)
            {
                User    user = _context.Users.Where(u => u.UserId == advertiserProfileViewModel.UserId).FirstOrDefault();
                var     profilePictureUri = new ProfilePictureController().Upload(advertiserProfileViewModel.ProfilePicture, DateTime.Now.ToFileTime() + "-" + advertiserProfileViewModel.GivenName + "-" + advertiserProfileViewModel.FamilyName + "-ProfilePicture");
                Profile userProfile       = new AdvertiserProfile
                {
                    User           = user,
                    GivenName      = advertiserProfileViewModel.GivenName,
                    FamilyName     = advertiserProfileViewModel.FamilyName,
                    CompanyName    = advertiserProfileViewModel.CompanyName,
                    ProfilePicture = profilePictureUri.Result
                };
                _context.Add(userProfile);
                await _context.SaveChangesAsync();

                var selectedTags   = _context.Tags.Where(t => advertiserProfileViewModel.SelectedTags.Contains(t.TagId.ToString())).ToList();
                var advertiserTags = selectedTags.Select(st => new AdvertiserProfileTag {
                    AdvertiserProfile = userProfile as AdvertiserProfile, Tag = st
                }).ToList();
                _context.AddRange(advertiserTags.ToArray());
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(advertiserProfileViewModel));
        }
コード例 #2
0
        public bool AddProfile(AdvertiserProfileViewModel viewModel)
        {
            bool result = false;

            try
            {
                // add advertiser profile document
                collectionName = CosmosCollections.AdvertiserProfile.ToString();
                context.AddDocument <AdvertiserProfileDocument>(databaseName, collectionName, viewModel.profile);

                // add preference advertiser profile documents
                collectionName = CosmosCollections.AdvertiserProfilePreference.ToString();
                foreach (var preference in viewModel.preferences)
                {
                    context.AddDocument <AdvertiserPreferenceDocument>(databaseName, collectionName, preference);
                }

                // set result to true
                result = true;
            }
            catch (Exception e)
            {
                var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }
            return(result);
        }
コード例 #3
0
        public JsonResult EditProfile(AdvertiserProfileViewModel model)
        {
            try {
                string userId = User.Identity.GetUserId();
                SetProfile(model);
                manager.Update(model.profile, model.preferences);

                return(Json(new { success = true, message = "Profile updated sucessfull" }));
            }
            catch (Exception ex) {
                return(Json(new { error = "Error updating profile" }));
            }
        }
コード例 #4
0
        public ActionResult CreateProfile(AdvertiserProfileViewModel viewModel)
        {
            bool result = false;

            SetProfile(viewModel);
            result = manager.AddProfile(viewModel);

            if (result)
            {
                return(result ? Json(new { success = true, message = "Profile create sucessfull" }) : Json(new { error = "Error creating profile" }));
            }

            return(View(viewModel));
        }
コード例 #5
0
        // GET: Advertiser Profile
        public new ActionResult Profile()
        {
            string userId = User.Identity.GetUserId();
            AdvertiserProfileViewModel          profile     = manager.FindProfileByUserId(userId);
            List <AdvertiserPreferenceDocument> preferences = manager.FindPreferencesByProfileId(profile.profile.Id);

            ViewBag.Preferences = preferences;
            ApplicationUser appUser = _cosmosIdentityManager.FindUserByUserId(userId);

            ViewBag.Name  = appUser.Name;
            ViewBag.Email = appUser.Email;

            return(View(profile));
        }
コード例 #6
0
 // Get AdvertiserDashboard/SetProfile
 public IActionResult SetProfile()
 {
     if (HasSession())
     {
         AdvertiserProfileViewModel advertiserProfileViewModel = new AdvertiserProfileViewModel();
         advertiserProfileViewModel.Tags = _context.Tags
                                           .Select(t => new SelectListItem {
             Text = t.TypeName, Value = t.TagId.ToString()
         })
                                           .ToList();
         advertiserProfileViewModel.UserId = SessionExtensions.GetInt32(HttpContext.Session, "UserId").Value;
         return(View(advertiserProfileViewModel));
     }
     else
     {
         return(GetLoginRedirect());
     }
 }
コード例 #7
0
        private void SetProfile(AdvertiserProfileViewModel viewModel)
        {
            var advertiser = manager.FindProfileByUserId(User.Identity.GetUserId());
            // create Id
            Guid profileId;

            if (advertiser == null)
            {
                profileId = Guid.NewGuid();
            }
            else
            {
                profileId = Guid.Parse(advertiser.profile.Id);
                viewModel.profile.RegisterDate = advertiser.profile.RegisterDate;
            }


            // get images and urls
            List <Models.Core.FileUpload> images = GetFiles();
            Dictionary <string, string>   urls   = GetUrls(images);

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

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

            if (!string.IsNullOrEmpty(value))
            {
                viewModel.profile.PhotoUrl = value;
            }
            else
            {
                if (advertiser != null)
                {
                    viewModel.profile.PhotoUrl = advertiser.profile.PhotoUrl;
                }
                else
                {
                    viewModel.profile.PhotoUrl = string.Empty;
                }
            }

            // check if icon is uploaded
            value = string.Empty;
            urls.TryGetValue("fileupIcon", out value);
            if (!string.IsNullOrEmpty(value))
            {
                viewModel.profile.IconUrl = value;
            }
            else
            {
                if (advertiser != null)
                {
                    viewModel.profile.IconUrl = advertiser.profile.IconUrl;
                }
                else
                {
                    viewModel.profile.IconUrl = string.Empty;
                }
            }

            // add preferences
            viewModel.preferences             = manager.GetPreferences(viewModel.preferencesStringify, profileId.ToString());
            viewModel.profile.AdvertiserNeeds = Negocio.Utilerias.StringUtilities.RemoveNewLineInString(viewModel.profile.AdvertiserNeeds);
            // update Id
            viewModel.profile.Id     = profileId.ToString();
            viewModel.profile.UserId = User.Identity.GetUserId();
        }
コード例 #8
0
        public ActionResult CreateProfile()
        {
            AdvertiserProfileViewModel vm = new AdvertiserProfileViewModel();

            return(View(vm));
        }