Skip to content

Instantly share code, notes, and snippets.

View waldyrfelix's full-sized avatar

Waldyr Felix waldyrfelix

View GitHub Profile
@waldyrfelix
waldyrfelix / gist:1024270
Created June 14, 2011 03:44 — forked from juanplopes/gist:1024221
BatchAggregate
public static IEnumerable<IList<T>> BatchAggregate<T>(this IEnumerable<T> source, int batchSize)
{
var enumerator = source.GetEnumerator();
for (int page = 0; enumerator.MoveNext(); page = page + batchSize)
{
var list = source
.Skip(page)
.Take(batchSize)
.ToList();
@waldyrfelix
waldyrfelix / MatriculaViewModel.cs
Created June 20, 2011 17:39
Exemplo de ViewModel para ASP.NET MVC
public class MatriculaViewModel
{
public SelectList Turmas { get; set; }
public int? TurmaSelecionada { get; set; }
public DateTime DataDaMatricula { get; set; }
[Required]
public string NomeDoAluno { get; set; }
@waldyrfelix
waldyrfelix / LoginViewModel.cs
Created June 22, 2011 15:21
Exemplo de Required aplicado
using System.ComponentModel.DataAnnotations;
namespace AppWeb.ViewModels
{
public class LoginViewModel
{
[Required(ErrorMessage = "Login é um campo obrigatório")]
public string Login { get; set; }
[Required(ErrorMessage = "Senha é um campo obrigatório")]
@waldyrfelix
waldyrfelix / LoginViewModel.cs
Created June 22, 2011 15:33
Exemplo de StringLength e RegularExpression aplicado
using System.ComponentModel.DataAnnotations;
namespace AppWeb.ViewModels
{
public class LoginViewModel
{
[Required(ErrorMessage = "Login é um campo obrigatório")]
[StringLength(30, ErrorMessage="O login deve ter no máximo 30 caracteres")]
public string Login { get; set; }
@waldyrfelix
waldyrfelix / LoginViewModel.cs
Created June 22, 2011 15:47
Exemplo de CustomValidation aplicado
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace AppWeb.ViewModels
{
public class LoginViewModel
{
[Required(ErrorMessage = "Login é um campo obrigatório")]
@waldyrfelix
waldyrfelix / ComparaPropriedadesAttribute.cs
Created June 22, 2011 16:15
Exemplo de DataAnnotation próprio
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace AppWeb.Attribute
{
[AttributeUsage(AttributeTargets.Class)]
public class ComparaPropriedadesAttribute : ValidationAttribute
{
public string PrimeiroCampo { get; private set; }
@waldyrfelix
waldyrfelix / CadastroDeLoginViewModel.cs
Created June 22, 2011 16:19
Exemplo de uso do ComparaPropriedades
[ComparaPropriedades("Senha", "ConfirmacaoDaSenha", ErrorMessage="A confirmação da senha não bate com a senha original")]
public class CadastroDeLoginViewModel
{
public string Login { get; set; }
public string Senha { get; set; }
public string ConfirmacaoDaSenha { get; set; }
}
@waldyrfelix
waldyrfelix / AgendamentoDePagamentoViewModel.cs
Created July 6, 2011 01:34
Exemplo de ViewModel com SelectList
public class AgendamentoDePagamentoViewModel
{
public AgendamentoDePagamentoViewModel() {} // construtor vazio necessario para para o modelbinder
public AgendamentoDePagamentoViewModel(IEnumerable<Conta> contas)
{
Contas = MontarSelectListDeContas(contas);
}
public SelectList Contas { get; set; }
@waldyrfelix
waldyrfelix / PagamentoController.cs
Created July 6, 2011 01:39
Exemplo de Action passando ViewModel para a View.
public ActionResult AgendarPagamento()
{
var contas = recuperarContasAPagar();
var viewModel = new AgendamentoDePagamentoViewModel(contas);
return View(viewModel);
}
@waldyrfelix
waldyrfelix / PagamentoController.cs
Created July 6, 2011 01:46
Exemplo de Action recebendo um ViewModel
[HttpPost]
public ActionResult AgendarPagamento(AgendamentoDePagamentoViewModel viewModel)
{
if (!ModelState.IsValid)
{
var contas = recuperarContasAPagar();
viewModel.MontarSelectListDeContas(contas);
return View(viewModel);
}