Exemplo n.º 1
0
        public async Task <BroadcasterConfigContainer> GetBroadcasterConfigAsync(decimal channelId, string broadcaster)
        {
            var match = await BroadcasterConfigs.SingleOrDefaultAsync(s => s.ChannelId == channelId && s.Broadcaster == broadcaster);

            if (match != null)
            {
                return(new BroadcasterConfigContainer(match));
            }
            return(new BroadcasterConfigContainer {
                ChannelId = channelId, Broadcaster = broadcaster
            });
        }
Exemplo n.º 2
0
        public async Task <ChannelConfigContainer> SetBroadcasterConfigAsync(decimal channelId, string displayName, BroadcasterConfigContainer container)
        {
            var match = await BroadcasterConfigs.SingleOrDefaultAsync(s => s.ChannelId == channelId && s.Broadcaster == displayName);

            BroadcasterConfig broadcasterConfig;

            if (match != null) //mutate it
            {
                broadcasterConfig                     = match;
                broadcasterConfig.Broadcaster         = displayName;
                broadcasterConfig.NumberOfClipsPerDay = container.NumberOfClipsPerDay;
                broadcasterConfig.MinViews            = container.MinViews;
            }
            else
            {
                broadcasterConfig = new BroadcasterConfig
                {
                    ChannelId           = container.ChannelId,
                    Broadcaster         = displayName,
                    NumberOfClipsPerDay = container.NumberOfClipsPerDay,
                    MinViews            = container.MinViews
                };
                ChannelConfig channelConfig;
                var           parent = await ChannelConfigs.SingleOrDefaultAsync(s => s.ChannelId == channelId);

                if (parent != null)
                {
                    channelConfig = parent;
                    channelConfig.BroadcasterConfigs.Add(broadcasterConfig);
                }
                else
                {
                    channelConfig = new ChannelConfig {
                        ChannelId = channelId, BroadcasterConfigs = new List <BroadcasterConfig> {
                            broadcasterConfig
                        }
                    };
                    ChannelConfigs.Add(channelConfig);
                }
            }
            await SaveChangesAsync();

            return(new ChannelConfigContainer(broadcasterConfig.ChannelConfig));
        }