
説明/参照:
テストレット1
バックグラウンド:
あなたは、ウェブサイトがエンドユーザーがウェブページやトピックに関連したコメントを顧客のウェブサイトに投稿できるようにするコメントシステムを提供するSaaS(software-as-a-service)会社であるProseWare Inc.の開発者です。
ビジネス要件
節度:
コメントのモデレーションはソフトウェアの機能であり、通常はコメントの編集が必要です。
Azure Active Directory(Azure AD)のグループにアカウントを持つユーザーだけが適度な権限を持ちます。
外部ユーザーはモデレーターになることもできますが、明示的な招待によってのみ可能です。
モデレートアクションには、モデレーターの名前を含める必要があります。
コメントナビゲーション:
各コメントは、ランダムな文字列で構成される一意の文字列によって識別されます。
コメントの本文内で、他のコメントスレッドへの内部リンクは、リンク形式: "/ <親コメントID> / <子コメントID>"を使用して指定できます。
コメントはAzure Searchを使用して検索できます。検索では、次の操作を行う必要があります。
電子メールアドレスを検索するには、コメントの電子メールアドレスと一致する必要があります。

検索はクライアントの言語に対応している必要があります。

リンク形式を使用する他のコメントへの内部リンクを検索する必要があります。

コンテンツスクリーニング:
コンテンツ分析を使用して、不適切な言語、長さ、トピックについてコメントコンテンツが選別されます。
コンテンツはスクリーニングする必要がありますが、スクリーニングする前に表示することができます。
モバイルアプリ:
モデレーション機能には、ProsewareAppというUniversal Windows Platform(UWP)アプリケーションを使用してアクセスできます。このアプリには、変更されたコメントが変更されたときに仲裁人に通知する機能が含まれています。
輸出する:
顧客は、必要に応じて、顧客が提供するMicrosoft OneDriveフォルダにすべてのコメントをエクスポートすることができます。エクスポート機能は、Azure Logic Appとして実装されており、ローカルネットワークから顧客がトリガーできる必要があります。
インタラクションエージェント:
インタラクションエージェントは、コメントスレッドと対話するシステムの一部です。主な目的は、コメントの内容に基づいてコメントの本文を変更することです。たとえば、エージェントの1つがWikiAgentであり、Wikipediaの記事タイトルに完全に一致するコメント本文にテキストが表示されたときに、Wikipediaの記事にリンクを追加します。インタラクションエージェントは、サービスファブリックで実装されています。
相互作用エージェントは次の要件を満たしている必要があります。
各コメントを1回だけ正常に処理する

コメントの処理中に発生したエラーは再試行する必要があります

カスタムアプリケーションのインストールが可能なシステムで実行する必要があります

VNetまたはプライベートネットワークスペースで実行する必要があります

要求に基づいて拡大縮小できるシステムで実行する必要があります。

1人のユーザのインタラクションエージェントの使用が他のユーザのインタラクションエージェントの使用に影響を与えてはならない

技術的要件
認証:
ProseWare Inc.では、Azure ADとTwitterを使用したユーザー認証が可能です。
ストレージ:
アプリケーションはAzure上でWebアプリケーションとして実行されます。コメントはAzure DocumentDBデータベース "Proseware"に保存されます。
パフォーマンス:
製品には、個々のメソッドのパフォーマンスに関するサービスレベルアグリーメント(SLA)が含まれています。すべてのデータ検索方法は、100ms以内に99%の時間内に戻る必要があります。
API:
ProseWare Inc. APIは、Azure API Appを使用して公衆発信者に提供されます。 Azure ADとTwitterは認証プロバイダです。
アプリケーション構造
CommentController.cs:


cleaner.csx:

ICommentAgent.cs:

WikiAgent.cs:

Comment.cs:

DataStore.cs:

MainPage.xaml.cs:
