Пример #1
0
        public async Task UnTag(CloudTag param)
        {
            var validator = await new TagParamValidator().ValidateAsync(param);

            if (!validator.IsValid)
            {
                var validatorMessage = validator.Errors.Select(failure => failure.ErrorMessage).JoinStr("\n");
                await SendMessageTextAsync(validatorMessage);

                return;
            }

            await SendMessageTextAsync($"Sedang menghapus tag '{param.Tag}'..");

            var deleteTag = await _tagsService.DeleteTag(Chat.Id, param.Tag);

            if (deleteTag)
            {
                await EditMessageTextAsync($"Menghapus tag '{param.Tag}' berhasil. Gunakan /tags untuk menampilkan perubahan.");

                await _tagsService.UpdateCacheAsync(ChatId);
            }
            else
            {
                await EditMessageTextAsync($"Gagal menghapus tag '{param.Tag}', silakan di coba kembali nanti.");
            }
        }
Пример #2
0
    private async Task ProcessingTag(CloudTag tagData)
    {
        var content   = tagData.Content;
        var buttonStr = tagData.BtnData;
        var typeData  = tagData.TypeData;
        var idData    = tagData.FileId;

        var buttonMarkup = buttonStr.ToButtonMarkup();

        if (idData.IsNotNullOrEmpty())
        {
            await _telegramService.SendMediaAsync(
                fileId : idData,
                mediaType : typeData,
                caption : content,
                replyMarkup : buttonMarkup
                );
        }
        else
        {
            await _telegramService.SendTextMessageAsync(
                sendText : content,
                replyMarkup : buttonMarkup,
                disableWebPreview : true
                );
        }
    }
Пример #3
0
    public async Task <int> SaveTagAsync(CloudTag data)
    {
        var insert = await _queryService
                     .CreateMySqlFactory()
                     .FromTable(TableName)
                     .InsertAsync(data);

        Log.Information("SaveTag: {Insert}", insert);

        return(insert);
    }
Пример #4
0
        private async Task PrepareSend(CloudTag tag)
        {
            var tagContent = tag.Content;
            var tagSlug    = tag.Tag;

            var htmlString = new HtmlString()
                             .Text(tagContent);

            var messageId = RawUpdate.Message.MessageId;

            await SendMessageTextAsync(htmlString, replyToMessageId : messageId);
        }
Пример #5
0
        private async Task ProcessingSave(
            CloudTag param,
            bool reTag
            )
        {
            if (reTag)
            {
                await _tagsService.DeleteTag(Chat.Id, param.Tag);
            }

            var validator = await new TagParamValidator().ValidateAsync(param);

            if (!validator.IsValid)
            {
                var validatorMessage = validator.Errors.Select(failure => failure.ErrorMessage).JoinStr("\n");
                await SendMessageTextAsync(validatorMessage);

                return;
            }

            if (reTag)
            {
                await _tagsService.DeleteTag(Chat.Id, param.Tag);
            }

            if (await _tagsService.IsExist(Chat.Id, param.Tag))
            {
                await SendMessageTextAsync(
                    $"Sepertinya tag '{param.Tag}' sudah ada. " +
                    $"silakan gunakan nama lain nya atau gunakan /retag."
                    );

                return;
            }

            await SendMessageTextAsync($"Sedang menyimpan tag '{param.Tag}'..");

            var saveTag = await _tagsService.SaveTagAsync(param);

            if (saveTag == 1)
            {
                await EditMessageTextAsync($"Sedang memperbarui cache..");

                await _tagsService.UpdateCacheAsync(Chat.Id);

                await EditMessageTextAsync($"Tag berhasil disimpan, gunakan #{param.Tag} untuk mengambil kembali.");
            }
            else
            {
                await EditMessageTextAsync($"Tag '{param.Tag}' gagal disimpan");
            }
        }
    public void ValidateTest()
    {
        var tagData = new CloudTag
        {
            ChatId = 123,
            FromId = 123,
            Tag    = "tag"
        };

        var validationResult = tagData.Validate <TagParamValidator, CloudTag>();

        validationResult.Errors.Should().HaveCount(0);
        validationResult.IsValid.Should().BeTrue();
    }
Пример #7
0
 public async Task ReTag(CloudTag param)
 {
     await ProcessingSave(param, true);
 }
Пример #8
0
 public async Task Tag(CloudTag param)
 {
     await ProcessingSave(param, false);
 }