private async Task ChangePurpose(Message message)
        {
            var digitalOceanApi = _digitalOceanClientFactory.GetInstance(message.From.Id);
            var session         = _sessionRepo.Get(message.From.Id);
            var projectId       = session.Data.CastObject <string>();

            await digitalOceanApi.Projects.Patch(projectId, new PatchProject
            {
                Purpose = message.Text
            });

            _sessionRepo.Update(message.From.Id, session =>
            {
                session.State = SessionState.SelectedProject;
            });

            await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, "Done \U00002705", replyMarkup : Keyboards.GetSelectedProjectMenuKeyboard());
        }
        private async Task CreateProject(Message message)
        {
            var session = _sessionRepo.Get(message.From.Id);
            var project = session.Data.CastObject <Project>();

            project.Description = message.Text;
            var digitalOceanApi = _digitalOceanClientFactory.GetInstance(message.From.Id);

            await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, $"\U0001F4C0 Create project...");

            var response = await digitalOceanApi.Projects.Create(project);

            _sessionRepo.Update(message.From.Id, session =>
            {
                session.Data  = response.Id;
                session.State = SessionState.SelectedProject;
            });

            await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, "Done \U00002705", replyMarkup : Keyboards.GetSelectedProjectMenuKeyboard());
        }