summaryrefslogtreecommitdiff
path: root/Codemerx/Gestor.Model/Model.Domain.Seguros/Produto.cs
blob: 85f07c52e0ec99d166d35ceb5d0eb2a77fb164c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
using Gestor.Model.Attributes;
using Gestor.Model.Domain.Generic;
using Gestor.Model.Helper;
using Gestor.Model.Resources;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Threading;

namespace Gestor.Model.Domain.Seguros
{
	public class Produto : DomainBase, IDomain, INotifyPropertyChanged
	{
		private bool _selecionado;

		private string _nome;

		[Log(true)]
		public bool Ativo
		{
			get;
			set;
		}

		[Description("PRODUTO")]
		[Log(true)]
		[Name(true)]
		public string Nome
		{
			get
			{
				string str = this._nome;
				if (str != null)
				{
					return str.ToUpper();
				}
				return null;
			}
			set
			{
				this._nome = value;
			}
		}

		public bool Selecionado
		{
			get
			{
				return this._selecionado;
			}
			set
			{
				if (value == this._selecionado)
				{
					return;
				}
				this._selecionado = value;
				this.OnPropertyChanged("Selecionado");
			}
		}

		[JsonIgnore]
		public Func<List<KeyValuePair<string, string>>> ValidationEvent
		{
			get
			{
				Produto produto = this;
				return new Func<List<KeyValuePair<string, string>>>(produto.Validate);
			}
		}

		public Produto()
		{
		}

		public List<TupleList> Log()
		{
			return new List<TupleList>()
			{
				new TupleList()
				{
					Tuples = new ObservableCollection<Tuple<string, string, string>>()
					{
						new Tuple<string, string, string>("NOME", (string.IsNullOrWhiteSpace(this.Nome) ? "" : this.Nome), ""),
						new Tuple<string, string, string>("ATIVO", (this.Ativo ? "SIM" : "NÃO"), "")
					}
				}
			};
		}

		protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
		{
			PropertyChangedEventHandler propertyChangedEventHandler = this.PropertyChanged;
			if (propertyChangedEventHandler == null)
			{
				return;
			}
			propertyChangedEventHandler(this, new PropertyChangedEventArgs(propertyName));
		}

		public List<KeyValuePair<string, string>> Validate()
		{
			List<KeyValuePair<string, string>> keyValuePairs = ValidationHelper.AddValue();
			if (string.IsNullOrWhiteSpace(this.Nome))
			{
				keyValuePairs.AddValue<string, string>("Nome", Messages.Obrigatorio, true);
			}
			else if (this.Nome.Length > 60)
			{
				keyValuePairs.AddValue<string, string>("Nome", string.Format(Messages.MaiorQueLimite, 60), true);
			}
			return keyValuePairs;
		}

		public event PropertyChangedEventHandler PropertyChanged;
	}
}