public XDMessagingClient()
        {
            var container = SimpleIocContainerBootstrapper.GetInstance();

            Listeners    = new Listeners(this, container);
            Broadcasters = new Broadcasters(this, container);
        }
Esempio n. 2
0
        public async Task <NotificationResultDto> Handle(CreateBroadcastersCommand command, CancellationToken cancellationToken)
        {
            try
            {
                if (!command.Valid())
                {
                    return(_handlerResponse.Response(command.IsValid, command.Notifications));
                }

                var broadcasterEntities = await _broadcastersRepository.GetByNameAsync(command.BrodcastersName);

                var broadcaster = new Broadcasters(command.BrodcastersName);

                if (broadcasterEntities != null)
                {
                    broadcaster.NameUnavailable();
                }

                if (broadcaster.IsValid)
                {
                    await _broadcastersRepository.InsertAsync(broadcaster);
                }

                AddNotifications(broadcaster);
            }
            catch (Exception ex)
            {
                AddNotification("500", ex.Message);
            }

            return(_handlerResponse.Response(IsValid, Notifications));
        }
Esempio n. 3
0
        public async Task <IActionResult> Get([FromRoute] int twitchId, [FromQuery] string username = "")
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Broadcasters broadcaster = new Broadcasters();

            if (!string.IsNullOrEmpty(username))
            {
                broadcaster = await _context.Broadcasters.SingleOrDefaultAsync(m => m.Username == username && m.TwitchId == twitchId);
            }
            else
            {
                broadcaster = await _context.Broadcasters.SingleOrDefaultAsync(m => m.TwitchId == twitchId);
            }

            if (broadcaster == null)
            {
                return(NotFound());
            }

            return(Ok(broadcaster));
        }
Esempio n. 4
0
        public async Task UpdateBroadcaster(string twitchBotApiLink)
        {
            Broadcasters updatedBroadcaster = new Broadcasters
            {
                Username = Username,
                TwitchId = int.Parse(TwitchId)
            };

            await ApiBotRequest.PutExecuteTaskAsync(twitchBotApiLink + $"broadcasters/update/{TwitchId}", updatedBroadcaster);
        }
Esempio n. 5
0
        public async Task AddBroadcaster(string twitchBotApiLink)
        {
            Broadcasters freshBroadcaster = new Broadcasters
            {
                Username = Username,
                TwitchId = int.Parse(TwitchId)
            };

            await ApiBotRequest.PostExecuteTaskAsync(twitchBotApiLink + $"broadcasters/create", freshBroadcaster);
        }
Esempio n. 6
0
        public async Task <IActionResult> Create([FromBody] Broadcasters broadcaster)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Broadcasters.Add(broadcaster);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("Get", new { twitchId = broadcaster.TwitchId }, broadcaster));
        }
Esempio n. 7
0
        public async Task <NotificationResultDto> Handle(UpdateBroadcastersCommand command, CancellationToken cancellationToken)
        {
            try
            {
                if (!command.Valid())
                {
                    return(_handlerResponse.Response(command.IsValid, command.Notifications));
                }


                var broadcasterEntities = await _broadcastersRepository.GetByIdAsync(command.Id);

                if (broadcasterEntities != null)
                {
                    var broadcaster = await _broadcastersRepository.GetByNameAsync(command.BrodcastersName);

                    if (broadcaster != null)
                    {
                        broadcasterEntities.NameUnavailable();
                    }

                    if (broadcasterEntities.IsValid)
                    {
                        broadcasterEntities.Update(command.BrodcastersName);

                        if (broadcasterEntities.IsValid)
                        {
                            await _broadcastersRepository.UpdateAsync(broadcasterEntities);
                        }
                    }

                    AddNotifications(broadcasterEntities);
                }
                else
                {
                    var broadcasters = new Broadcasters();
                    broadcasters.NotBrodcastersForUpdate();
                    AddNotifications(broadcasters);
                }
            }
            catch (Exception ex)
            {
                AddNotification("500", ex.Message);
            }

            return(_handlerResponse.Response(IsValid, Notifications));
        }
        public async Task <NotificationResultDto> DeleteAsync(string id)
        {
            var broadcasters = await _broadcastersRepository.GetByIdAsync(id);

            if (broadcasters != null)
            {
                await _broadcastersRepository.DeleteAsync(broadcasters);

                return(new NotificationResultDto(true, null));
            }
            else
            {
                var brodcastersNotification = new Broadcasters();

                brodcastersNotification.BrodcastersUnavailable();
                return(new NotificationResultDto(false, brodcastersNotification.Notifications));
            }
        }
Esempio n. 9
0
        public async Task FindBroadcaster(string twitchId, string twitchBotApiLink, string username = "")
        {
            Broadcasters broadcaster = null;

            if (!string.IsNullOrEmpty(username))
            {
                broadcaster = await ApiBotRequest.GetExecuteTaskAsync <Broadcasters>(twitchBotApiLink + $"broadcasters/get/{twitchId}?username={username}");
            }
            else
            {
                broadcaster = await ApiBotRequest.GetExecuteTaskAsync <Broadcasters>(twitchBotApiLink + $"broadcasters/get/{twitchId}");
            }

            if (broadcaster != null)
            {
                Username   = broadcaster.Username;
                TwitchId   = twitchId;
                DatabaseId = broadcaster.Id;
            }
        }
Esempio n. 10
0
        public async Task <IActionResult> Update([FromRoute] int twitchId, [FromBody] Broadcasters broadcaster)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (twitchId != broadcaster.TwitchId)
            {
                return(BadRequest());
            }

            Broadcasters updatedbroadcaster = await _context.Broadcasters.FirstOrDefaultAsync(m => m.TwitchId == twitchId);

            if (updatedbroadcaster == null)
            {
                return(NotFound());
            }

            updatedbroadcaster.Username = broadcaster.Username;
            _context.Broadcasters.Update(updatedbroadcaster);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BroadcasterExists(twitchId))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 11
0
 IQueueBroadcaster Broadcaster <M>()
     where M : new()
 => Broadcasters.GetOrAdd(
     QueueConnector.Define <M>(C.Host),
     connector => QueueBroadcaster.Define <M>(C, connector));
Esempio n. 12
0
 IQueueBroadcaster Broadcaster(Type MessageType)
 => Broadcasters.GetOrAdd(
     QueueConnector.Define(C.Host, MessageType),
     connector => QueueBroadcaster.Define(C, MessageType, connector));
 public static IXDBroadcaster GetWindowsMessagingBroadcaster(this Broadcasters client)
 {
     return(client.GetBroadcasterForMode(XDTransportMode.HighPerformanceUI));
 }
 public static IXDBroadcaster GetIoStreamBroadcaster(this Broadcasters client)
 {
     return(client.Container.Resolve <XDIOStreamBroadcaster>());
 }
Esempio n. 15
0
 public static IXDBroadcaster GetAmazonBroadcaster(this Broadcasters client)
 {
     return(client.Container.Resolve <XDAmazonBroadcaster>());
 }
 // ReSharper disable once InconsistentNaming
 public static IXDBroadcaster GetIOStreamBroadcaster(this Broadcasters client)
 {
     return(client.GetBroadcasterForMode(XDTransportMode.Compatibility));
 }
Esempio n. 17
0
 public static IXDBroadcaster GetMulticastBroadcaster(this Broadcasters client,
                                                      params IXDBroadcaster[] broadcasters)
 {
     return(new MulticastBroadcaster(broadcasters));
 }
Esempio n. 18
0
        public async Task LogError(Exception ex, string className, string methodName, bool hasToExit, string botCmd = "N/A", string userMsg = "N/A")
        {
            Console.WriteLine("Error: " + ex.Message);

            try
            {
                /* If username not available, grab default user to show local error after db connection */
                if (_broadcasterId == 0)
                {
                    Broadcasters broadcaster = await ApiBotRequest.GetExecuteTaskAsync <Broadcasters>(_botConfig.TwitchBotApiLink + $"broadcasters/get/-1");

                    _broadcasterId = broadcaster.Id;
                }

                /* Get line number from error message */
                int          lineNumber = 0;
                const string lineSearch = ":line ";
                int          index      = ex.StackTrace.LastIndexOf(lineSearch);

                if (index != -1)
                {
                    string lineNumberText = ex.StackTrace.Substring(index + lineSearch.Length);
                    if (!int.TryParse(lineNumberText, out lineNumber))
                    {
                        lineNumber = -1; // couldn't parse line number
                    }
                }

                ErrorLog error = new ErrorLog
                {
                    ErrorTime   = DateTime.UtcNow,
                    ErrorLine   = lineNumber,
                    ErrorClass  = className,
                    ErrorMethod = methodName,
                    ErrorMsg    = ex.Message,
                    Broadcaster = _broadcasterId,
                    Command     = botCmd,
                    UserMsg     = userMsg
                };

                await ApiBotRequest.PostExecuteTaskAsync(_botConfig.TwitchBotApiLink + $"errorlogs/create", error);

                string publicErrMsg = "I ran into an unexpected internal error! "
                                      + "@" + _botConfig.Broadcaster + " please look into the error log when you have time";

                if (hasToExit)
                {
                    publicErrMsg += " I am leaving as well. Have a great time with this stream everyone KonCha";
                }

                if (_irc != null)
                {
                    _irc.SendPublicChatMessage(publicErrMsg);
                }

                if (hasToExit)
                {
                    Console.WriteLine();
                    Console.WriteLine("Shutting down now...");
                    Thread.Sleep(3000);
                    Environment.Exit(1);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine();
                Console.WriteLine("Logging error found: " + e.Message);
                Console.WriteLine("Please inform author of this error!");
                Thread.Sleep(5000);
            }
        }
Esempio n. 19
0
 public static IXDBroadcaster GetMulticastBroadcaster(this Broadcasters client,
                                                      IEnumerable <IXDBroadcaster> broadcasters)
 {
     return(new MulticastBroadcaster(broadcasters));
 }
 public static IXDBroadcaster GetAmazonBroadcaster(this Broadcasters client)
 {
     return(client.GetBroadcasterForMode(XDTransportMode.RemoteNetwork));
 }
Esempio n. 21
0
 public static IXDBroadcaster GetWindowsMessagingBroadcaster(this Broadcasters client)
 {
     return(client.Container.Resolve <XDWinMsgBroadcaster>());
 }
 public XDMessagingClient()
 {
     Listeners    = new Listeners(this, Serializer);
     Broadcasters = new Broadcasters(this, Serializer);
 }