/// <summary>
        /// Обновить модель
        /// </summary>
        /// <param name="vm">Юзер модель</param>
        /// <returns>true, если обновилось</returns>
        public async Task <bool> UpdateUser(IndexProfileViewModel vm)
        {
            var user = await _contextUsers.Users.FirstOrDefaultAsync(i => i.Email == vm.email);


            if (user == null)
            {
                return(false);
            }


            user.Name      = vm.Name;
            user.Family    = vm.Family;
            user.dateBirth = new DateTime(vm.YearBirth, vm.MonthBirth, vm.DayBirth);
            _contextUsers.SaveChanges();

            // Смена пароля пользователем, если он ввел поля
            if (!string.IsNullOrEmpty(vm.NewPassword) && !string.IsNullOrEmpty(vm.OldPassword))
            {
                User Identity = await _userManager.FindByEmailAsync(vm.email);

                if (Identity != null)
                {
                    IdentityResult result = await _userManager.ChangePasswordAsync(Identity, vm.OldPassword, vm.NewPassword);

                    if (!result.Succeeded)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
        public PartialViewResult _DashBoard()
        {
            ApplicationUser currentUser = System.Web.HttpContext.Current.GetOwinContext().
                                          GetUserManager <ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());
            IndexProfileViewModel viewModel = new IndexProfileViewModel
                                                  (currentUser.FirstName, currentUser.LastName, currentUser.Photo, currentUser.UserRole, currentUser.PhotoType);

            return(PartialView("~/Views/Shared/_DashBoard.cshtml", viewModel));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> AboutProfile(string name)
        {
            var user = await profileService.GetUser(name);

            IndexProfileViewModel vm = new IndexProfileViewModel()
            {
                email = name,
                user  = user
            };

            return(PartialView("ProfileData", vm));
        }
Ejemplo n.º 4
0
        // TODO DISPLAY RANDOM 6 MODELS OR TOP MODELS
        public async Task <IActionResult> Index()
        {
            var viewModel = new IndexProfileViewModel
            {
                ModelProfile =
                    await this.modelService.TakeSixModels <ModelProfileView>(),
                BlogViewModels = await this.blogService.TakeThreeBlogs <BlogViewModel>(),
                Count          = await this.modelService.GetModelCount(),
            };

            return(this.View(viewModel));
        }
Ejemplo n.º 5
0
        public static ApplicationUser AsApplicationUser(this IndexProfileViewModel viewModel)
        {
            var user = (viewModel as ProfileWithPostsViewModel).AsApplicationUser();

            user.UserName = viewModel.Username;
            user.Email    = viewModel.Email;

            //viewModel.FavoritePosts;
            //viewModel.Subscriptions;
            //Should be parsed in controller
            return(user);
        }
Ejemplo n.º 6
0
        public async Task <IViewComponentResult> InvokeAsync(string userName)
        {
            var user = await profileService.GetUser(userName);

            IndexProfileViewModel vm = new IndexProfileViewModel()
            {
                email = userName,
                user  = user
            };

            return(View("ProfileData", vm));
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> Model(int page = 1, int perPage = ProfilesPerPage)
        {
            var pagesCount = await this.modelService.GetPagesCount(perPage);

            var viewModel = new IndexProfileViewModel
            {
                ModelProfile =
                    await this.modelService.TakeAllModels <ModelProfileView>(page, perPage),
                CurrentPage = page,
                PagesCount  = pagesCount,
            };

            return(this.View(viewModel));
        }
Ejemplo n.º 8
0
        public static IndexProfileViewModel AsIndexProfileViewModel(this ApplicationUser user)
        {
            var viewModel = new IndexProfileViewModel
            {
                Id        = user.Id,
                Extension = user.Extension,
                FullName  = user.FullName,
                Email     = user.Email
            };

            //viewModel.FavoritePosts;
            //viewModel.Subscriptions;
            //Should be parsed in controller
            return(viewModel);
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> SaveProfile(IndexProfileViewModel vm)
        {
            if (ModelState.IsValid)
            {
                if (vm.email == User.Identity.Name)
                {
                    var updated = await profileService.UpdateUser(vm);

                    if (updated == true)
                    {
                        return(Redirect($"{vm.email}"));
                    }
                }
            }

            return(View());
        }
Ejemplo n.º 10
0
        public async Task <ActionResult> Index()
        {
            string userId = User.Identity.GetUserId();

            var resultWithDataProfile = await UserService.GetProfileByUserIdAsync(userId);

            var resultWithDataUser = await UserService.GetByUserIdAsync(userId);

            var resultWithDataEmail = await UserService.GetEmailByUserIdAsync(userId);

            var resultWithDataSubscribersCount   = _subscriptionService.GetSubscribersCountByUserId(userId);
            var resultWithDataSubscribtionsCount = _subscriptionService.GetSubscriptionsCountByUserId(userId);

            if (!resultWithDataProfile.Success)
            {
                // TODO
            }

            var profile = resultWithDataProfile.ResultData;
            var user    = resultWithDataUser.ResultData;

            var model = new IndexProfileViewModel
            {
                Id                 = profile.Id,
                Name               = profile.Name,
                Surname            = profile.Surname,
                DateOfBirth        = profile.DateOfBirth?.ToString("d MMMM, yyyy"),
                CreatedAt          = profile.CreatedAt.ToString("d MMMM, yyyy HH:mm"),
                UpdatedAt          = profile.UpdatedAt.ToString("d MMMM, yyyy HH:mm"),
                AvatarImagePath    = GetAvatarImagePath(userId),
                UserName           = User.Identity.Name,
                Email              = resultWithDataEmail.ResultData,
                DictionariesCount  = user.Dictionaries.Count,
                SubscribersCount   = resultWithDataSubscribersCount.ResultData,
                SubscriptionsCount = resultWithDataSubscribtionsCount.ResultData,
            };

            return(View(model));
        }