public void UpdateSupportTypeFor(PackageStatistic stat, SupportType supportType)
        {
            const string sql = "UPDATE dbo.[PackageStatistics] SET LatestSupportType = @LatestSupportType WHERE Name = @Name";

            using (var con = new SqlConnection(_connectionString))
            {
                con.Open();
                using (var cmd = new SqlCommand(sql, con))
                {
                    cmd.Parameters.AddWithValue("Name", stat.Name);
                    cmd.Parameters.AddWithValue("LatestSupportType", supportType.ToString());
                    cmd.ExecuteNonQuery();
                }
            }
        }
Пример #2
0
        private static string SupportTypeToLabel(SupportType supportType)
        {
            switch (supportType)
            {
            case SupportType.NotFound:
            case SupportType.Supported:
            case SupportType.PreRelease:
            case SupportType.Error:
            case SupportType.NoDotNetLibraries:
            case SupportType.InvestigationTarget:
                return(supportType.ToString());

            case SupportType.Unsupported:
            case SupportType.KnownReplacementAvailable:
                return("Unsupported");

            default:
                throw new ArgumentOutOfRangeException(nameof(supportType), supportType, null);
            }
        }
Пример #3
0
        public async Task CreateRequest(SocketGuild guild, SocketGuildUser user, string authorName, string title, string text, SupportType supportType, int atLeastAdminLevel, bool fromDiscord)
        {
            GuildEntity guildEntity = _databaseHandler.Get <GuildEntity>(guild.Id);

            if (guildEntity is null)
            {
                return;
            }

            var categoryId = guildEntity.SupportRequestCategoryId;

            if (categoryId == 0)
            {
                return;
            }
            var supportRequestCategory = guild.GetCategoryChannel(categoryId);

            if (supportRequestCategory is null)
            {
                return;
            }

            var embed = EmbedHelper.GetSupportRequestEmbed(user, title, text, supportType);

            var textChannel = await ChannelHelper.CreateSupportChannel(guild, supportType.ToString() + "_discord", categoryId, fromDiscord);

            await textChannel.AddPermissionOverwriteAsync(user, new OverwritePermissions(
                                                              viewChannel : PermValue.Allow,
                                                              sendMessages : PermValue.Allow,
                                                              readMessageHistory : PermValue.Allow,
                                                              connect : PermValue.Allow,
                                                              speak : PermValue.Allow
                                                              ));

            if (atLeastAdminLevel > 1 && guildEntity.SupporterRoleId != 0)
            {
                await textChannel.DenyAccess(guild, guildEntity.SupporterRoleId);
            }
            if (atLeastAdminLevel > 2 && guildEntity.AdministratorRoleId != 0)
            {
                await textChannel.DenyAccess(guild, guildEntity.AdministratorRoleId);
            }

            var message = await textChannel.SendMessageAsync(user.Mention, embed : embed.Build());

            await message.PinAsync();

            await user.SendMessageAsync($"Your support request has been sent, a channel has been created:{Environment.NewLine}{message.GetJumpUrl()}");

            if (fromDiscord)
            {
                var reply = await _tdsClient.SupportRequest.Create(user.Id, title, text, supportType, atLeastAdminLevel);

                if (int.TryParse(reply, out int requestId))
                {
                    await textChannel.ModifyAsync(c => c.Name = supportType.ToString() + "_" + requestId);

                    await user.SendMessageAsync($"The support request was successfully added to TDS-V.");
                }
                else
                {
                    await user.SendMessageAsync($"The support request could not be added to TDS-V." +
                                                $"{Environment.NewLine}You either don't have an account yet or have not set your Discord-ID in your settings (correctly)." +
                                                $"{Environment.NewLine}If you've set the wrong id: You need to set your ID to '{user.Id}'");
                }
            }
        }