public HttpResponseMessage GetMensalidade(HttpRequestMessage request, string tipo)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                var usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));
                var membro = _membroRep.All.FirstOrDefault(x => x.PessoaId == usuario.PessoaId);
                var mensalidades = _mensalidadeRep.All.Where(x => x.MembroId == membro.Id);
                var listaMensalidades = new List <MensalidadeViewModel>();

                switch (tipo)
                {
                case "pendente":
                    mensalidades = mensalidades.Where(x => (x.Status == StatusMensalidade.Gerado || x.Status == StatusMensalidade.AguardandoPagamento) && x.Ativo);

                    break;

                case "historico":
                    mensalidades = mensalidades.Where(x => x.Status != StatusMensalidade.Gerado &&
                                                      x.Status != StatusMensalidade.AguardandoPagamento);
                    break;

                default:
                    break;
                }

                mensalidades.ToList().ForEach(x =>
                {
                    var mensal = new MensalidadeViewModel();

                    mensal.Id = x.Id;
                    mensal.Descricao = x.Descricao;

                    mensal.DtVencimento = tipo.Equals("pendente") ? x.DtVencimento :
                                          x.DtRecebimento != null ?
                                          x.DtRecebimento.Value.AddMonths(x.PlanoMensalidade.QtdMeses) :
                                          x.DtVencimento.AddMonths(x.PlanoMensalidade.QtdMeses);

                    mensal.Status = x.Status;
                    mensal.TipoPlano = x.PlanoMensalidade.Descricao;
                    mensal.TipoPagamentoId = (int)x.Detalhes.FirstOrDefault().Tipo;
                    mensal.Tipo = x.Detalhes.FirstOrDefault().Tipo == TipoMovimentacao.Credito ? "Crédito" :
                                  x.Detalhes.FirstOrDefault().Tipo == TipoMovimentacao.Debito ? "Débito" : "Boleto";
                    mensal.Total = x.Detalhes.Sum(s => s.Valor);
                    mensal.UrlBoleto = x.UrlPdf;
                    mensal.Ativo = x.Ativo;

                    listaMensalidades.Add(mensal);
                });

                response = request.CreateResponse(HttpStatusCode.OK, listaMensalidades);

                return response;
            }));
        }
 protected override void OnAppearing()
 {
     base.OnAppearing();
     if (!dadosCarregados)
     {
         viewModel           = new MensalidadeViewModel(App.ParticipanteId.GetValueOrDefault());
         this.BindingContext = viewModel;
         dadosCarregados     = true;
     }
 }