public async Task <NotificationResultDto> Handle(CreateAudienceCommand command, CancellationToken cancellationToken)
        {
            try
            {
                if (!command.Valid())
                {
                    return(_handlerResponse.Response(command.IsValid, command.Notifications));
                }

                var audienteEntites = await _audienceRepository.GetAudienceByBroadcasterAndDateTimeAsync(command.AudienceBroadcaster, command.AudienceDateTime);

                var audience = new Audience(command.AudienceBroadcaster, command.AudienceDateTime, command.AudiencePoints);

                if (audienteEntites != null)
                {
                    audience.AudienceRegister();
                }

                if (audience.IsValid)
                {
                    await _audienceRepository.InsertAsync(audience);
                }

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

            return(_handlerResponse.Response(IsValid, Notifications));
        }
예제 #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));
        }
예제 #3
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> Handle(UpdateAudienceCommand command, CancellationToken cancellationToken)
        {
            try
            {
                if (!command.Valid())
                {
                    return(_handlerResponse.Response(command.IsValid, command.Notifications));
                }

                var audienceEntites = await _audienceRepository.GetByIdAsync(command.Id);

                if (audienceEntites != null)
                {
                    var audience = await _audienceRepository.GetAudienceByBroadcasterAndDateTimeAsync(command.AudienceBroadcaster, command.AudienceDateTime);

                    if (audience != null)
                    {
                        audienceEntites.AudienceRegister();
                    }

                    if (audienceEntites.IsValid)
                    {
                        audienceEntites.Update(command.AudienceBroadcaster, command.AudiencePoints, command.AudienceDateTime);

                        if (audienceEntites.IsValid)
                        {
                            await _audienceRepository.UpdateAsync(audienceEntites);
                        }
                    }

                    AddNotifications(audienceEntites);
                }
                else
                {
                    var audience = new Audience();
                    audience.NotAudienceForUpdate();
                    AddNotifications(audience);
                }
            }
            catch (Exception ex)
            {
                AddNotification("500", ex.Message);
            }

            return(_handlerResponse.Response(IsValid, Notifications));
        }