Skip to content

Instantly share code, notes, and snippets.

@wescleymatos
Created March 2, 2016 20:15
Show Gist options
  • Save wescleymatos/6696f3d9da3f4dba160d to your computer and use it in GitHub Desktop.
Save wescleymatos/6696f3d9da3f4dba160d to your computer and use it in GitHub Desktop.
using Saegrn.Resource.Resources;
using Saegrn.Resource.Validation;
using System;
namespace Saegrn.Domain.Entities
{
public class Evento
{
#region Properties
public Guid Id { get; private set; }
public string Nome { get; private set; }
public int CargaHoraria { get; private set; }
public string Conteudo { get; private set; }
public string Objetivo { get; private set; }
public string PublicoAlvo { get; private set; }
public string Resumo { get; private set; }
public string Formacao { get; private set; }
public string Requisito { get; private set; }
public TipoEvento TipoEvento { get; private set; }
#endregion
#region Ctor
protected Evento() { }
public Evento(string nome, int cargaHoraria, string conteudo, string objetivo, string publicoAlvo, string resumo, string formacao, string requisito, TipoEvento tipoEvento)
{
this.Id = Guid.NewGuid();
this.Nome = nome;
this.CargaHoraria = cargaHoraria;
this.Conteudo = conteudo;
this.Objetivo = objetivo;
this.PublicoAlvo = publicoAlvo;
this.Resumo = resumo;
this.Formacao = formacao;
this.Requisito = requisito;
this.TipoEvento = tipoEvento;
}
#endregion
#region Methods
public void Validar()
{
AssertionConcern.AssertArgumentLength(this.Nome, 2, 255, Errors.InvalidUserName);
AssertionConcern.AssertArgumentRange(this.CargaHoraria, 1, 10000, Errors.InvalidWorkload);
AssertionConcern.AssertArgumentLength(this.Conteudo, 5, 500, Errors.InvalidContent);
AssertionConcern.AssertArgumentLength(this.Objetivo, 5, 500, Errors.InvalidObjective);
AssertionConcern.AssertArgumentLength(this.PublicoAlvo, 5, 500, Errors.InvalidPublicTarget);
AssertionConcern.AssertArgumentLength(this.Resumo, 2, 255, Errors.InvalidResume);
AssertionConcern.AssertArgumentNotNull(this.TipoEvento, Errors.InvalidKindEvent);
AssertionConcern.AssertArgumentNotEmpty(this.Formacao, Errors.InvalidFormation);
AssertionConcern.AssertArgumentNotEmpty(this.Requisito, Errors.InvalidRequisite);
}
public void SetNome(string nome)
{
AssertionConcern.AssertArgumentNotEmpty(nome, Errors.InvalidUserName);
AssertionConcern.AssertArgumentLength(nome, 5, 255, Errors.InvalidUserName);
this.Nome = nome;
}
public void SetCargaHoraria(int cargaHoraria)
{
AssertionConcern.AssertArgumentRange(this.CargaHoraria, 1, 10000, Errors.InvalidWorkload);
this.CargaHoraria = cargaHoraria;
}
public void SetConteudo(string conteudo)
{
AssertionConcern.AssertArgumentLength(this.Conteudo, 5, 500, Errors.InvalidContent);
this.Conteudo = conteudo;
}
public void SetObjetivo(string objetivo)
{
AssertionConcern.AssertArgumentLength(this.Objetivo, 5, 500, Errors.InvalidObjective);
this.Objetivo = objetivo;
}
public void SetPublicoAlvo(string publicoAlvo)
{
AssertionConcern.AssertArgumentLength(this.Objetivo, 5, 500, Errors.InvalidPublicTarget);
this.PublicoAlvo = publicoAlvo;
}
public void SetResumo(string resumo)
{
AssertionConcern.AssertArgumentLength(this.Resumo, 2, 255, Errors.InvalidResume);
this.Resumo = resumo;
}
public void SetTipoEvento(TipoEvento tipoEvento)
{
AssertionConcern.AssertArgumentNotNull(this.TipoEvento, Errors.InvalidKindEvent);
this.TipoEvento = tipoEvento;
}
public void SetFormacao(string formacao)
{
AssertionConcern.AssertArgumentNotEmpty(this.Formacao, Errors.InvalidFormation);
this.Formacao = formacao;
}
public void SetRequisito(string requisito)
{
AssertionConcern.AssertArgumentNotEmpty(this.Requisito, Errors.InvalidRequisite);
this.Requisito = requisito;
}
#endregion
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment