MCPcopy Create free account
hub / github.com/apache/thrift / calculate

Method calculate

tutorial/netstd/Server/Program.cs:399–453  ·  view source on GitHub ↗
(int logid, Work? w, CancellationToken cancellationToken)

Source from the content-addressed store, hash-verified

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 {

Callers 3

NodeClient.jsFile · 0.45

Calls 2

IsEnabledMethod · 0.80
ToStringMethod · 0.80

Tested by

no test coverage detected