Example #1
0
        public ActionResult JoinGuild(JoinGuildVM model)
        {
            if (ModelState.IsValid)
            {
                var result = _authUserCharacterGuildApplicationRepository.Create(
                    new AuthUserCharacterGuildApplication()
                {
                    GuildId             = model.GuildId,
                    Message             = model.Message,
                    AuthUserCharacterId = model.AuthUserCharacterId
                });

                if (result.Success)
                {
                    return(RedirectToAction("Index"));
                }

                ModelState.AddModelError("", result.Message);
            }

            model.Guilds = _guildRepository.GetGuilds(model.ShardId, true);
            return(View(model));
        }
Example #2
0
        public ActionResult JoinGuild(int?id, int?sid)
        {
            string email = User.Identity.GetUserId();

            #region Logout and redirect if the logged in user is invalid
            if (_authRepository.GetUserAccount(email) == null)
            {
                HttpContext.GetOwinContext().Authentication.SignOut();
                return(RedirectToAction("Index", "Home"));
            }
            #endregion

            // Check if either ID are null
            if (id == null || sid == null)
            {
                return(RedirectToAction("Index"));
            }

            // Check if the shard ID is valid
            if (_shardRepository.Get((int)sid) == null)
            {
                return(RedirectToAction("Index"));
            }

            // Check if the logged in user can join a guild as this character (do they own it?)
            if (!_authUserCharRepository.CanJoinAGuild(email, (int)id))
            {
                return(RedirectToAction("Index"));
            }

            var model = new JoinGuildVM((int)id, (int)sid)
            {
                Guilds = _guildRepository.GetGuilds((int)sid, true)
            };

            return(View(model));
        }