| | 1 | | namespace Domain.Core.ValueObject; |
| | 2 | | public record TipoCategoria |
| | 3 | | { |
| 3 | 4 | | public static implicit operator CategoriaType(TipoCategoria tc) => (CategoriaType)tc.Id; |
| 737 | 5 | | public static implicit operator TipoCategoria(int tipoCategoria) => new TipoCategoria((int)tipoCategoria); |
| 0 | 6 | | public static bool operator ==(TipoCategoria tipoCategoria, CategoriaType tipoCategoriaType) => tipoCategoria?.Id == |
| 4 | 7 | | public static bool operator !=(TipoCategoria tipoCategoria, CategoriaType tipoCategoriaType) => !(tipoCategoria?.Id |
| | 8 | |
|
| | 9 | | public enum CategoriaType |
| | 10 | | { |
| | 11 | | Invalid = 0, |
| | 12 | | Despesa = 1, |
| | 13 | | Receita = 2 |
| | 14 | | } |
| 2187 | 15 | | public int Id { get; set; } |
| 2447 | 16 | | public string Name { get; set; } = string.Empty; |
| | 17 | |
|
| 66 | 18 | | public TipoCategoria() { } |
| | 19 | |
|
| 739 | 20 | | public TipoCategoria(int id) |
| 739 | 21 | | { |
| 739 | 22 | | Id = id; |
| 739 | 23 | | Name = GetTipoCategoriaName((int)id); |
| 739 | 24 | | } |
| | 25 | |
|
| 473 | 26 | | public TipoCategoria(CategoriaType tipoCategoria) |
| 473 | 27 | | { |
| 473 | 28 | | Id = (int)tipoCategoria; |
| 473 | 29 | | Name = GetTipoCategoriaName((int)tipoCategoria); |
| 473 | 30 | | } |
| | 31 | |
|
| | 32 | | private static string GetTipoCategoriaName(int tipoCategoria) |
| 1212 | 33 | | { |
| 1212 | 34 | | if ((int)CategoriaType.Despesa == tipoCategoria) |
| 601 | 35 | | return "Despesa"; |
| 611 | 36 | | else if ((int)CategoriaType.Receita == tipoCategoria) |
| 611 | 37 | | return "Receita"; |
| 0 | 38 | | else if ((int)CategoriaType.Invalid == tipoCategoria) |
| 0 | 39 | | return "Invalid"; |
| | 40 | |
|
| | 41 | |
|
| 0 | 42 | | throw new ArgumentException("Tipo de Categoria inexistente!"); |
| 1212 | 43 | | } |
| | 44 | | } |
| | 45 | |
|