コード例 #1
0
ファイル: ProfileService.cs プロジェクト: AzizFacilex/Rasky
        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());
        }
コード例 #2
0
        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));
        }