Exemple #1
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StreamerInfo streamerUser = streamerinfomanager.Find(x => x.Owner.id == id.Value);

            return(View(streamerUser));
        }
        public StreamerInfo GetStreamerInfo(string broadcasterId)
        {
            var streamer = gameData.GetUserByTwitchId(broadcasterId);
            var result   = new StreamerInfo();

            if (streamer != null)
            {
                result.StreamerUserId   = broadcasterId;
                result.StreamerUserName = streamer.UserName;

                var gameSession = gameData.GetOwnedSessionByUserId(streamer.UserId);
                result.IsRavenfallRunning = gameSession != null;
                result.StreamerSessionId  = gameSession?.Id;


                if (gameSession != null)
                {
                    result.Started = gameSession.Started;

                    var state = gameData.GetSessionState(gameSession.Id);
                    if (state != null)
                    {
                        result.ClientVersion = state.ClientVersion;
                    }

                    var charactersInSession = gameData.GetSessionCharacters(gameSession);
                    if (charactersInSession != null)
                    {
                        var session = this.HttpContext.GetSessionId();
                        if (sessionInfoProvider.TryGet(session, out var sessionInfo))
                        {
                            var u = gameData.GetUser(sessionInfo.AccountId);
                            if (u != null)
                            {
                                var c = charactersInSession.FirstOrDefault(x => x.UserId == u.Id);
                                if (c != null)
                                {
                                    result.JoinedCharacterId = c.Id;
                                }
                            }
                        }
                        result.PlayerCount = charactersInSession.Count;
                    }
                }
            }

            return(result);
        }
Exemple #3
0
        public async Task GetStreamerInfo(string accountID = null)
        {
            this.EnsureIsAuthenticated();

            var url = "/apps/100/StreamerInfo?source=" + Uri.EscapeDataString(this.key) +
                      (accountID == null ? string.Empty : "&accountid=" + Uri.EscapeDataString(accountID));
            var text = await this.http.GetStringAsync(url);

            var xml = XDocument.Parse(text);

            if (xml.Root.Element("result").Value == "OK")
            {
                using (var reader = xml.Root.Element("streamer-info").CreateReader())
                {
                    this.streamerInfo = (StreamerInfo) new XmlSerializer(typeof(StreamerInfo)).Deserialize(reader);
                }
            }
        }
Exemple #4
0
        public ActionResult Edit(StreamerInfo streamerUser)
        {
            ModelState.Remove("CreatedOn");
            ModelState.Remove("ModifyDate");
            ModelState.Remove("Owner.ModifiedUser");
            ModelState.Remove("Owner.Username");
            ModelState.Remove("Owner.Email");
            ModelState.Remove("Owner.Password");

            streamerUser.Owner = kodlatvusermanager.Find(x => x.id == CurrentSession.User.id);

            if (streamerUser.Owner == null)
            {
                BusinessLayerResult <Channel> layerResult = new BusinessLayerResult <Channel>();
                layerResult.AddError(ErrorMessageCode.PaymentNotFound, "Kullanıcı adı Bulunamadı.");
                ErrorViewModel errorNotifyObj = new ErrorViewModel()
                {
                    Items          = layerResult.Errors,
                    Title          = "Kullanıcı Bulunamadı.",
                    RedirectingUrl = "/Channel/UserChannel/" + streamerUser.Owner.id
                };

                return(View("Error", errorNotifyObj));
            }
            else
            {
                streamerUser.Owner.ModifiedUser = CurrentSession.User.Username;
                if (ModelState.IsValid)
                {
                    StreamerInfo streamer = streamerinfomanager.Find(x => x.Owner.id == CurrentSession.User.id);
                    streamer.Experince = streamerUser.Experince;
                    streamer.Hobby     = streamerUser.Hobby;
                    streamer.Usingos   = streamerUser.Usingos;
                    streamer.Interest  = streamerUser.Interest;
                    streamer.Name      = streamer.Name;
                    streamer.Surname   = streamer.Surname;

                    streamerinfomanager.Uptade(streamer);
                    return(Redirect("/Userchannel/" + CurrentSession.User.id));
                }
                return(View(streamerUser));
            }
        }
Exemple #5
0
        public void EndSession(DataModels.GameSession session)
        {
            var characters = gameData.GetSessionCharacters(session);
            var owner      = gameData.GetUser(session.UserId);

            var data = new StreamerInfo();

            data.StreamerUserId     = owner.UserId;
            data.StreamerUserName   = owner.UserName;
            data.IsRavenfallRunning = false;
            data.StreamerSessionId  = null;
            data.Started            = null;

            var state = gameData.GetSessionState(session.Id);

            if (state != null)
            {
                data.ClientVersion = state.ClientVersion;
            }

            if (extWsConnectionProvider.TryGetAllByStreamer(session.UserId, out var allConnections))
            {
                foreach (var connection in allConnections)
                {
                    connection.SendAsync(data);
                }
            }

            foreach (var character in characters)
            {
                character.UserIdLock = null;
            }

            session.Status  = (int)SessionStatus.Inactive;
            session.Stopped = DateTime.UtcNow;

            gameData.ClearAllCharacterSessionStates(session.UserId);
            //gameData.ClearCharacterSessionStates(session.Id);

#if DEBUG
            logger.LogDebug(owner.UserName + " game session ended. " + characters.Count + " characters cleared.");
#endif
        }
Exemple #6
0
        public IrcBot(StreamerInfo streamer)
        {
            _streamer = streamer;
            var credentials = new ConnectionCredentials("he305bot", _token);

            _client = new TwitchClient(protocol: ClientProtocol.TCP);
            _client.Initialize(credentials, streamer.Name);

            _client.OnLog              += Client_OnLog;
            _client.OnJoinedChannel    += Client_OnJoinedChannel;
            _client.OnMessageReceived  += Client_OnMessageReceived;
            _client.OnWhisperReceived  += Client_OnWhisperReceived;
            _client.OnNewSubscriber    += Client_OnNewSubscriber;
            _client.OnConnected        += Client_OnConnected;
            _client.OnDisconnected     += Client_OnDisconnected;
            _client.OnError            += Client_OnError;
            _client.OnConnectionError  += Client_OnConnectionError;
            _client.OnMessageThrottled += Client_OnMessageThrottled;
            _emotes = new List <string>();
        }
Exemple #7
0
        public ActionResult Create(StreamerInfo streameruser)
        {
            ModelState.Remove("CreatedOn");
            ModelState.Remove("ModifyDate");
            ModelState.Remove("Owner.ModifiedUser");
            ModelState.Remove("Owner.Username");
            ModelState.Remove("Owner.Email");
            ModelState.Remove("Owner.Password");

            if (ModelState.IsValid)
            {
                StreamerInfo streamer = streameruser;
                streamer.Owner = CurrentSession.User;
                streamerinfomanager.Insert(streamer);
                streamerinfomanager.Save();
                return(Redirect("/Userchannel/" + CurrentSession.User.id));
            }

            return(View(streameruser));
        }