FokusHuk / MakimaBot

1 stars 0 forks source link

Рефакторинг ChatMessagesHandler.cs #27

Closed FokusHuk closed 3 weeks ago

FokusHuk commented 2 months ago

Overview

Класс выглядит просто ужасно. Точнее его пару методов. Метод ProcessTrustedChatAsync содежит нормальную такую макаронину для обработки активности, рандомного ответа в чат. Сейчас туда еще добавится код. Нужно хотябы по функциям растащить это что-ли.

DoDs

FokusHuk commented 2 months ago
        /*

processors = {
    CommandProccessor,
    TrustedChatMessageProcessor,
    UnknownChatMessageProcessor
}

TrustedChatMessageProcessor: IProcessor
{
    List<IProcessor> processors
        DailyActivityHandler
        MonthlyActivityHandler
    ...
}

UnknownChatMessageProcessor : IProcessor

CommandProccessor : IProcessor

        */

        /*    
            CommandHandler
                .SetHandler(TrustedChatMessageHandler
                    .SetChildHandler(DailyActivityHandler)
                    .SetChildHandler(SomeActivityHandler
                        .SetHandler(AnotherHandler1)
                        .SetHandler(AnotherHandler2))
                    .SetChildHandler(MonthlyActivityHandler)
                 .SetHandler(UnknownChatMessageHandler)

        */

        //gptHandler.Execute(message);
        /*
            abstract class Handler
            {
                Handler Handler;
                List<Handler> ChildHandlers;

                SetHandler(Handler handler)
                {
                    Handler = Handler;
                    return Handler;
                }

                SetChildHandler(Handler childHandler)
                {
                    ChildHandler = succesor;
                    return Handler;
                }

                abstract Execute(message)
                {
                    if()
                    {
                        ...

                        ChildHandler.Execute(message);

                    } esle if(Handler != null)
                    {
                        Handler.Execute(message);
                    }

                }

            }

        */