automatic9045 / automatic9045/TRS.MS-12

一括一件管理のオンライン化

Open
#16 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C#
Stars
28
Forks
0
PR merge metrics
No merged PRs in 30d

Description

本家では、一件操作をはじめとした各種状態の管理は全てマルスシステム本体で行っているが、現状MS-12では一括一件まわりの管理をローカルで処理しており、実際の仕様と異なる。
一方、アプリケーションの実行にオンライン環境を必須とすることはユーザーにとっての負荷となりかねず、また実装方法によってはオリジナルのチケットプラグインの開発にも制約が発生する恐れがある。

## 現時点での方針
「一括開始」「一括発券」要求に関しては本家の実装に準じたオンラインで管理するものに差し替えるが、現行のローカルで管理する「一括発券」チケットプラグインについても、「一括発券(ローカル)」(仮称)に改称し、コードを修正した上で同梱を続ける。

## 新しい一括一件について
現状の処理の流れは

1. `Sender.Send`メソッドの戻り値に`IssueReservableSendResult`をとる。
`IssueReservableSendResult`のインスタンス生成時に券面画像を生成する`Func`を設定している。
2. 一括発券時に`IssueReservableSendResult.CreateTickets`メソッドで券面画像を生成する。

このように一括一件の処理を完全にMS-12に依存する実装となっているが、これを以下のように変更する。

1. (ローカルで券面を生成する場合)`Sender.Send`メソッド内で生成した券面画像と共に、予約した旨をメインサーバーへ送信する。
(サーバーで券面を生成する場合)サーバーサイドの`Sender.Send`メソッドから呼び出される処理で生成した券面画像と共に、予約した旨をメインサーバーへ送信する。
2. 一括発券時はメインサーバーへ一括発券要求を送信し、券面画像を取得する。
- 割引印章などはここで付与することで、発信時点で券面を決定することが出来る。

**券面画像をMS-12上で生成する仕様は継続する方針に転換。処理フローはもう一度練り直す。**

また、「一括発券(ローカル)」についてもサーバーをエミュレートするインスタンスと交信する構成に変更する。

### 既知の問題点
予約発信時に券面画像をメインサーバーへ送信しているか確認することが困難。

## その他
`Reservable`プロパティなど、旧・一括一件機能に依存するコードが残っている(特に`IssueReservableSendResult`まわりなど)。該当するコードは修正する。

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing Sender.Send, IssueReservableSendResult, CreateTickets, and remaining Reservable references, then inspect the local bulk-ticket plugin and its server-emulation communication. Review existing tests or runnable workflows for bulk start and bulk issuance. Done means online management follows the intended main-server behavior, the local plugin remains available under its new role, and obsolete dependencies are addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.