public ActionResult Gallery(string id)
        {
            try
            {
                LoginHelper.CheckAccess(Session);
            }
            catch (Exception)
            {
                return(RedirectToAction("Login", "Login"));
            }

            var userProfile = new UserProfileHandler().GetByUsername(id);

            if (!userProfile.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = userProfile.ErrorMessage.Replace(' ', '-') }));
            }

            var list = new FileHandler().GetGalleryForUserProfile(userProfile.Entity.UserProfileId);

            if (!list.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = list.ErrorMessage.Replace(' ', '-') }));
            }

            ViewBag.username = id;
            return(View("Gallery", list.Entity));
        }
        public ActionResult LoginUser(LoginModel loginModel)
        {
            LoginHelper loginHelper = new LoginHelper();
            var         response    = loginHelper.CheckLogin(loginModel);

            if (!response.CompletedRequest)
            {
                if (!string.IsNullOrEmpty(loginHelper.InvalidLoginMessage))
                {
                    //wrong inputs
                    ViewBag.LoginMessage = loginHelper.InvalidLoginMessage;
                    return(View("Login"));
                }
                else
                {
                    //other errors
                    return(RedirectToAction("Index", "Error", new { errorMessage = response.ErrorMessage.Replace(' ', '-') }));
                }
            }

            //get user profile to store in session
            var responseProfile = new UserProfileHandler().GetByUserId(response.Entity.UserId);

            if (!responseProfile.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = responseProfile.ErrorMessage.Replace(' ', '-') }));
            }

            Session.Add("userToken", loginModel.UserName);
            Session.Add("userId", response.Entity.UserId);
            Session.Add("userProfileId", responseProfile.Entity.UserProfileId);

            return(RedirectToAction("Index", "Home"));
        }
Пример #3
0
        public List <SuggestionModel> GetSuggestions(ICollection <int> ids)
        {
            var list = new List <SuggestionModel>();

            foreach (int id in ids)
            {
                var profile     = new UserProfileHandler().Get(id);
                var user        = new UserHandler().Get(profile.Entity.UserId);
                var gender      = new GenderHandler().Get(profile.Entity.GenderId);
                var status      = new MaritalStatusHandler().Get(profile.Entity.StatusId);
                var religion    = new ReligionHandler().Get(profile.Entity.ReligionId);
                var orientation = new OrientationHandler().Get(profile.Entity.OrientationId);

                if (!profile.CompletedRequest || !user.CompletedRequest || !gender.CompletedRequest || !status.CompletedRequest || !religion.CompletedRequest || !orientation.CompletedRequest)
                {
                    return(null);
                }

                var suggestionModel = new SuggestionModel
                {
                    UserName    = user.Entity.UserUsername,
                    Description = string.IsNullOrEmpty(profile.Entity.UserProfileDescription) ? "This user has not provided a description." : profile.Entity.UserProfileDescription,
                    FullName    = profile.Entity.UserProfileName + " " + profile.Entity.UserProfileSurname,
                    Age         = AgeCalculator.GetDifferenceInYears(profile.Entity.UserProfileBirthday, DateTime.Now).ToString(),
                    Gender      = gender.Entity.GenderName,
                    Orientation = orientation.Entity.OrientationName,
                    Religion    = religion.Entity.ReligionName,
                    Status      = status.Entity.StatusName
                };

                list.Add(suggestionModel);
            }
            return(list);
        }
        public ActionResult Index()
        {
            try
            {
                LoginHelper.CheckAccess(Session);
            }
            catch (Exception)
            {
                return(RedirectToAction("Login", "Login"));
            }

            var userProfileId   = (int)Session["userProfileId"];
            var suggestionsList = new UserProfileHandler().GetSuggestions(userProfileId);

            if (!suggestionsList.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = suggestionsList.ErrorMessage.Replace(' ', '-') }));
            }

            var models = new SuggestionsHelper().GetSuggestions(suggestionsList.Entity);

            if (models == null)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = ErrorConstants.NullEntityError.Replace(' ', '-') }));
            }

            return(View("Index", models));
        }
        public UserModel GetUserModel(UserModel userModel = null)
        {
            if (userModel == null)
            {
                userModel = new UserModel();
            }

            int id           = int.Parse(HttpContext.Current.Session["userId"].ToString());
            var responseUser = new UserHandler().Get(id);

            if (!responseUser.CompletedRequest)
            {
                InvalidInfoMessage = responseUser.ErrorMessage;
                return(null);
            }

            var user = responseUser.Entity;
            var responseUserProfile = new UserProfileHandler().GetByUserId(user.UserId);

            if (!responseUserProfile.CompletedRequest)
            {
                InvalidInfoMessage = responseUser.ErrorMessage;
                return(null);
            }

            var address = new AddressHandler().GetForUserProfile(responseUserProfile.Entity.UserProfileId);

            if (!address.CompletedRequest)
            {
                if (string.Equals(address.ErrorMessage, ErrorConstants.AddressNotFound))
                {
                    userModel.Address = null;
                }
                else
                {
                    InvalidInfoMessage = responseUser.ErrorMessage;
                    return(null);
                }
            }
            else
            {
                userModel.Address = address.Entity;
            }

            PopulateModel(userModel, user, responseUserProfile.Entity);

            return(userModel);
        }
        public ActionResult Match(string username, bool accepted)
        {
            try
            {
                LoginHelper.CheckAccess(Session);
            }
            catch (Exception)
            {
                return(RedirectToAction("Login", "Login"));
            }

            var userProfileHandler = new UserProfileHandler();

            var userProfileId = (int)Session["userProfileId"];
            var userProfile   = userProfileHandler.Get(userProfileId);

            if (!userProfile.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = userProfile.ErrorMessage.Replace(' ', '-') }));
            }

            var userProfileToMatch = userProfileHandler.GetByUsername(username);

            if (!userProfileToMatch.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = userProfileToMatch.ErrorMessage.Replace(' ', '-') }));
            }

            var match = new MatchEntity
            {
                MatchDate          = DateTime.Now,
                MatchUserProfileId = userProfileToMatch.Entity.UserProfileId,
                UserProfileId      = userProfile.Entity.UserProfileId,
                Accepted           = accepted
            };

            var matchResponse = new MatchHandler().Add(match);

            if (!matchResponse.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = matchResponse.ErrorMessage.Replace(' ', '-') }));
            }

            return(RedirectToAction("Index", "Home"));
        }
        public ActionResult ShowProfile(string id)
        {
            try
            {
                LoginHelper.CheckAccess(Session);
            }
            catch (Exception)
            {
                return(RedirectToAction("Login", "Login"));
            }

            var user = new UserHandler().GetByUsername(id);

            if (!user.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = user.ErrorMessage.Replace(' ', '-') }));
            }

            var userProfile = new UserProfileHandler().GetByUserId(user.Entity.UserId);

            if (!userProfile.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = userProfile.ErrorMessage.Replace(' ', '-') }));
            }

            var address = new AddressHandler().GetForUserProfile(userProfile.Entity.UserProfileId);

            if (!address.CompletedRequest)
            {
                if (!string.Equals(ErrorConstants.AddressNotFound, address.ErrorMessage))
                {
                    return(RedirectToAction("Index", "Error", new { errorMessage = address.ErrorMessage.Replace(' ', '-') }));
                }
            }

            var profileModel = new ProfileHelper().GetProfileModel(user.Entity, userProfile.Entity, address.Entity);

            if (profileModel == null)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = MessageConstants.ProfileError.Replace(' ', '-') }));
            }

            return(View("ShowProfile", profileModel));
        }
Пример #8
0
        public bool AddUser(RegisterModel registerModel)
        {
            if (!CheckRegister(registerModel))
            {
                return(true);
            }

            var dataEntity = ToDataEntity(registerModel);

            if (dataEntity == null)
            {
                InvalidRegisterMessage = ErrorConstants.NullConvertedEntityError;
                return(false);
            }

            var userResponse = new UserHandler().Add(dataEntity);

            if (!userResponse.CompletedRequest)
            {
                InvalidRegisterMessage = userResponse.ErrorMessage;
                return(false);
            }

            var userProfile = ToDataEntity(registerModel, userResponse.Entity.UserId);

            if (userProfile == null)
            {
                InvalidRegisterMessage = ErrorConstants.NullConvertedEntityError;
                return(false);
            }

            var responseUserProfile = new UserProfileHandler().Add(userProfile);

            if (!responseUserProfile.CompletedRequest)
            {
                InvalidRegisterMessage = responseUserProfile.ErrorMessage;
                return(false);
            }

            return(true);
        }
        public ActionResult Unmatch(string username)
        {
            try
            {
                LoginHelper.CheckAccess(Session);
            }
            catch (Exception)
            {
                return(RedirectToAction("Login", "Login"));
            }

            var userProfileHandler = new UserProfileHandler();
            var userProfileId      = (int)Session["userProfileId"];
            var userId             = (int)Session["userId"];

            var userProfileToMatch = userProfileHandler.GetByUsername(username);

            if (!userProfileToMatch.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = userProfileToMatch.ErrorMessage.Replace(' ', '-') }));
            }

            var matchResponse = new MatchHandler().UnmatchForUsers(userProfileId, userProfileToMatch.Entity.UserProfileId);

            if (!matchResponse.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = matchResponse.ErrorMessage.Replace(' ', '-') }));
            }

            var messagesResponse = new MessageHandler().ArchiveAllForUsers(userId, userProfileToMatch.Entity.UserId);

            if (!messagesResponse.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = messagesResponse.ErrorMessage.Replace(' ', '-') }));
            }

            return(RedirectToAction("Index", "Home"));
        }
        public ActionResult Chat(string id)
        {
            try
            {
                LoginHelper.CheckAccess(Session);
            }
            catch (Exception)
            {
                return(RedirectToAction("Login", "Login"));
            }

            var matchHandler  = new MatchHandler();
            var userProfileId = (int)Session["userProfileId"];
            var userId        = (int)Session["userId"];

            var userProfileToMatch = new UserProfileHandler().GetByUsername(id);

            if (!userProfileToMatch.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = userProfileToMatch.ErrorMessage.Replace(' ', '-') }));
            }

            if (!matchHandler.Matched(userProfileId, userProfileToMatch.Entity.UserProfileId))
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = MessageConstants.ChatNotAvailable.Replace(' ', '-') }));
            }

            var response = new MessageHandler().UpdateMessageStatus(userId, userProfileToMatch.Entity.UserId);

            if (!response.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = response.ErrorMessage.Replace(' ', '-') }));
            }

            ViewBag.toUsername = id;
            return(View());
        }
Пример #11
0
 public MainWindowViewModel()
 {
     UserProfileHandler = new UserProfileHandler();
     UserAccountHandler = new UserAccountHandler();
     LoadedUserProfiles = new ObservableCollection <UserProfile>(UserProfileHandler.LoadAllUserProfiles());
 }
Пример #12
0
        public ActionResult UpdateUser(UserModel userModel)
        {
            try
            {
                LoginHelper.CheckAccess(Session);
            }
            catch (Exception)
            {
                return(RedirectToAction("Login", "Login"));
            }

            var userProfileId = (int)Session["userProfileId"];
            var userProfile   = new UserProfileHandler().Get(userProfileId);
            var userHelper    = new UserHelper();

            if (!userProfile.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = userProfile.ErrorMessage.Replace(' ', '-') }));
            }

            if (!userHelper.CheckUpdatedUser(userModel, userProfile.Entity))
            {
                ViewBag.UpdateUserMessage = userHelper.InvalidInfoMessage;
                var newUserModel = userHelper.GetUserModel(userModel);

                if (newUserModel == null)
                {
                    return(RedirectToAction("Index", "Error", new { errorMessage = userHelper.InvalidInfoMessage.Replace(' ', '-') }));
                }

                return(View("UserProfile", newUserModel));
            }

            var userId      = (int)Session["userId"];
            var userHandler = new UserHandler();
            var user        = userHandler.Get(userId);

            if (!user.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = user.ErrorMessage.Replace(' ', '-') }));
            }

            var userProfileHandler = new UserProfileHandler();

            //update user profile
            var userProfileDataEntity = userHelper.ToDataEntity(userModel, userProfile.Entity);

            userProfile = userProfileHandler.Update(userProfileDataEntity);

            if (!userProfile.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = userProfile.ErrorMessage.Replace(' ', '-') }));
            }

            //update user
            var userDataEntity = userHelper.ToDataEntity(userModel, user.Entity);

            user = userHandler.Update(userDataEntity);

            if (!user.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = user.ErrorMessage.Replace(' ', '-') }));
            }

            //in case username was changed
            Session["userToken"] = userModel.UserName;

            return(RedirectToAction("UserProfile", "Account"));
        }