示例#1
0
        // GET: Profile
        public ActionResult Index()
        {
            var id = Convert.ToInt32(Session["UserId"]);

            Id = id;

            if (id > 0)
            {
                var user = new User {
                    ContactNumber = string.Empty, Email = "", Name = "", Surname = ""
                };
                var choices       = Enum.GetValues(typeof(Choice)).Cast <Choice>();
                var loveLanguages = Enum.GetValues(typeof(LoveLanguage)).Cast <LoveLanguage>();
                var horoscopes    = Enum.GetValues(typeof(Horoscope)).Cast <Horoscope>();

                var horoscopeList = horoscopes.Select(
                    item => new SelectListItem
                {
                    Selected = false,
                    Text     = item.GetEnumDescription(),
                    Value    = ((int)item).ToString()
                }).ToList();

                var loveLanguageList = loveLanguages.Select(
                    item => new SelectListItem
                {
                    Selected = false,
                    Text     = item.GetEnumDescription(),
                    Value    = ((int)item).ToString()
                }).ToList();

                var choiceItems = choices.Select(
                    item => new SelectListItem
                {
                    Selected = false,
                    Text     = item.GetEnumDescription(),
                    Value    = ((int)item).ToString()
                }).ToList();

                var model = new UserProfileModel
                {
                    LoveLanguageList  = loveLanguageList,
                    ChoiceItemList    = choiceItems,
                    HoroscopeItemList = horoscopeList
                };

                var currentUser = _userRepository.GetUserById(id);
                user.Id            = currentUser.Id;
                user.Name          = currentUser.Name;
                user.Surname       = currentUser.Surname;
                user.ContactNumber = currentUser.ContactNumber;
                user.Email         = currentUser.Email;
                var quiz        = _personalQuizRepository.GetQuizByUserId(currentUser.Id);
                var userProfile = _profileRepository.GetProfileByUserId(currentUser.Id);

                model.Horoscope = userProfile != null ? userProfile.Horoscope : string.Empty;
                model.Gender    = userProfile?.Gender;

                if (userProfile != null)
                {
                    model.SelectedDropdownValueForLove = GetSelectedValueForLove(userProfile.LoveLanguage);
                    model.GetFullName(currentUser);
                    Session["FullName"] = model.FullName;
                }

                if (quiz != null)
                {
                    model.Quiz = new PersonalQuizModel(quiz);
                    model.SelectedDropdownValue = GetSelectedValue(quiz.ChoiceBetweenMoneyLoveHappiness);
                }

                model.SetUser(currentUser);

                return(View(model));
            }

            return(RedirectToAction("Index", "Home"));
        }