HamBook – Blame information for rev 15

Subversion Repositories:
Rev:
Rev Author Line No. Line
3 office 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6  
7 namespace HamBook.Radios.Generic
8 {
9 public class ClarifierDirection
10 {
11 public ShiftDirection Direction { get; private set; }
12  
13 public ClarifierDirection(char symbol)
14 {
15 Direction = Parse(symbol);
16 }
17  
15 office 18 public ClarifierDirection(string symbol)
19 {
20 Direction = Parse(symbol);
21 }
22  
3 office 23 private static ShiftDirection Parse(char symbol)
24 {
25 switch (symbol)
26 {
27 case '+':
28 return ShiftDirection.PLUS_SHIFT;
29 case '-':
30 return ShiftDirection.MINUS_SHIFT;
31 default:
32 throw new ArgumentException();
33 }
34 }
35  
15 office 36 private static ShiftDirection Parse(string symbol)
37 {
38 switch (symbol)
39 {
40 case "+":
41 return ShiftDirection.PLUS_SHIFT;
42 case "-":
43 return ShiftDirection.MINUS_SHIFT;
44 default:
45 throw new ArgumentException();
46 }
47 }
48  
3 office 49 private char ToChar()
50 {
51 switch (Direction)
52 {
53 case ShiftDirection.PLUS_SHIFT:
54 return '+';
55 case ShiftDirection.MINUS_SHIFT:
56 return '-';
57 default:
58 throw new ArgumentException();
59 }
60 }
61  
62 public static implicit operator ClarifierDirection(char symbol)
63 {
64 return new ClarifierDirection(symbol);
65 }
66  
67 public static implicit operator char(ClarifierDirection clarifierDirection)
68 {
69 return clarifierDirection.ToChar();
70 }
15 office 71  
72 public static implicit operator ClarifierDirection(string symbol)
73 {
74 return new ClarifierDirection(symbol);
75 }
76  
77 public static implicit operator string(ClarifierDirection clarifierDirection)
78 {
79 switch (clarifierDirection.Direction)
80 {
81 case ShiftDirection.PLUS_SHIFT:
82 return "+";
83 case ShiftDirection.MINUS_SHIFT:
84 return "-";
85 default:
86 throw new ArgumentException();
87 }
88 }
3 office 89 }
90 }