protected async Task GerarParcela(int idAfiliado, int qtdeParcelas, decimal valorParcela, int diaVencimento, bool emLote) { var vencimentoInicial = new DateTime(DateTime.Now.Year, DateTime.Now.Month + 1, diaVencimento); //gera um lote de mensalidade para todos afiliados if (emLote) { var estaMensalidade = ServiceMensalidade.GetNew(); var lista = ServiceAfiliado.GetAll().Result; afiliadoList.Clear(); afiliadoList.AddRange(lista); mensalidadeList.Clear(); //cria as parcelas foreach (var afiliado in afiliadoList) { for (int i = 0; i < qtdeParcelas; i++) { mensalidadeList.Add(new Mensalidade { IdFiliado = afiliado.Id, DataVencimento = vencimentoInicial, ValorMensalidade = valorParcela, NomeAfiliado = afiliado.Nome }); vencimentoInicial = NextMonth(vencimentoInicial); afiliado.Mensalidades.Add(mensalidadeList[i]); } await ServiceAfiliado.Update(afiliado); } foreach (var item in mensalidadeList) { await ServiceMensalidade.Add(item); } } else { var esteAfiliado = ServiceAfiliado.GetById(idAfiliado).Result; for (int i = 0; i < qtdeParcelas; i++) { estaMensalidade = new Mensalidade { IdFiliado = idAfiliado, DataVencimento = vencimentoInicial, ValorMensalidade = valorParcela, NomeAfiliado = esteAfiliado.Nome }; esteAfiliado.Mensalidades.Add(estaMensalidade); await ServiceMensalidade.Add(estaMensalidade); vencimentoInicial = NextMonth(vencimentoInicial); } await ServiceAfiliado.Update(esteAfiliado); } }
private async Task AddOrUpdateAfiliado(Mensalidade item) { if (!isEditing) { await ServiceMensalidade.Add(item); } else { item.DataAlteracao = DateTime.Now; await ServiceMensalidade.Update(item); } }