(int logid, Work? w, CancellationToken cancellationToken)
| 397 | } |
| 398 | |
| 399 | public async Task<int> calculate(int logid, Work? w, CancellationToken cancellationToken) |
| 400 | { |
| 401 | if (Logger.IsEnabled(LogLevel.Information)) |
| 402 | Logger.LogInformation("Calculate({logid}, [{w.Op},{w.Num1},{w.Num2}])", logid, w?.Op, w?.Num1, w?.Num2); |
| 403 | |
| 404 | int val; |
| 405 | switch (w?.Op) |
| 406 | { |
| 407 | case Operation.ADD: |
| 408 | val = w.Num1 + w.Num2; |
| 409 | break; |
| 410 | |
| 411 | case Operation.SUBTRACT: |
| 412 | val = w.Num1 - w.Num2; |
| 413 | break; |
| 414 | |
| 415 | case Operation.MULTIPLY: |
| 416 | val = w.Num1 * w.Num2; |
| 417 | break; |
| 418 | |
| 419 | case Operation.DIVIDE: |
| 420 | if (w.Num2 == 0) |
| 421 | { |
| 422 | var io = new InvalidOperation |
| 423 | { |
| 424 | WhatOp = (int) w.Op, |
| 425 | Why = "Cannot divide by 0" |
| 426 | }; |
| 427 | |
| 428 | throw io; |
| 429 | } |
| 430 | val = w.Num1 / w.Num2; |
| 431 | break; |
| 432 | |
| 433 | default: |
| 434 | { |
| 435 | var io = new InvalidOperation |
| 436 | { |
| 437 | WhatOp = ((int?)w?.Op) ?? -1, |
| 438 | Why = "Unknown operation" |
| 439 | }; |
| 440 | |
| 441 | throw io; |
| 442 | } |
| 443 | } |
| 444 | |
| 445 | var entry = new SharedStruct |
| 446 | { |
| 447 | Key = logid, |
| 448 | Value = val.ToString() |
| 449 | }; |
| 450 | |
| 451 | _log[logid] = entry; |
| 452 | return val; |
| 453 | } |
| 454 | |
| 455 | public async Task zip(CancellationToken cancellationToken) |
| 456 | { |
no test coverage detected