public async Task <PublicProfileViewModel> GetPublicProfile(string email) { var mappedUser = new PublicProfileViewModel(); var user = await this.repositories.Users.FindById(email); mappedUser = this.mapper.Map <AppUser, PublicProfileViewModel> (user, mappedUser); var userProfile = await this.repositories.Profiles.FindByCondition(x => x.UserId == user.Id).FirstOrDefaultAsync(); if (mappedUser != null && userProfile != null) { mappedUser = mapper.Map <UserProfile, PublicProfileViewModel> (userProfile, mappedUser); return(mappedUser); } return(new PublicProfileViewModel()); }
public ActionResult Index(int?id, string show = MyProfileShow.Profile) { PublicProfileViewModel model = new PublicProfileViewModel(); try { ViewBag.Title = "[[[My Profile]]]"; model.Show = show; if (id == null) { if (User.Identity.IsAuthenticated) { model.UserId = UserSession.UserId; model.CanUserEdit = true; model.IsLoggedUserProfile = true; ViewBag.MetaKeyWords = "Profile,Profil,My Profile," + CommonsConst.BaseMetaData.KeyWords; ViewBag.MetaDescription = "My " + CommonsConst.Const.WebsiteTitle + " Profile. " + CommonsConst.BaseMetaData.Description; ViewBag.MetaTitle = "My " + CommonsConst.Const.WebsiteTitle + " Profile"; } else { return(RedirectToAction("Login", "Account", new { returnUrl = Url.Action("Index", "Profile", new { show }) })); } } else //ie. url id has value { var user = _userService.GetUserById(id.Value); if (user != null) { model.UserId = id.Value; model.CanUserEdit = _userService.CanUserEditProfile(model.UserId, User.Identity.Name); ViewBag.MetaTitle = user.FirstName + " " + user.LastName + " Profile On " + CommonsConst.Const.WebsiteTitle; ViewBag.MetaImageSrc = String.IsNullOrWhiteSpace(user.PictureSrc) ? null : ConfigurationManager.AppSettings["Website"] + user.PictureSrc; ViewBag.MetaDescription = "Check out " + user.FirstName + " " + user.LastName + " profile on " + CommonsConst.Const.WebsiteTitle + ". " + CommonsConst.BaseMetaData.Description; if (user.PublicProfile) { ViewBag.MetaKeyWords = user.FirstName + "," + user.LastName + "," + user.FirstName + " " + user.LastName + "," + user.LastName + " " + user.FirstName + ",Profile,Profil,My Profile," + CommonsConst.BaseMetaData.KeyWords; } if (User.Identity.IsAuthenticated && user.Id == UserSession.UserId) { model.IsLoggedUserProfile = true; } } else { return(RedirectToAction("Index", "Home")); } } if (!model.CanUserEdit || model.Show == null) { model.Show = MyProfileShow.Profile; } } catch (Exception e) { Logger.GenerateError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "id = " + id); } return(View("~/Views/Profile/Profile.cshtml", model)); }