public async Task <EventoUsuario> InsertEventoUsuarioAsync(EventoUsuario eventoUsuario) { InstaciaClient(); try { var ultimoRegistro = await _client.Child("EventoUsuario").OrderByKey().LimitToLast(1).OnceSingleAsync <Dictionary <object, EventoUsuario> >(); eventoUsuario.ID = ultimoRegistro != null?ultimoRegistro.Values.Last().ID + 1 : 0; if (eventoUsuario.ID != null) { await _client.Child("EventoUsuario").Child(eventoUsuario.ID.ToString()).PutAsync(eventoUsuario); } } catch (Firebase.Database.FirebaseException ex) { if (ex.ResponseData.StartsWith("[{") || ex.ResponseData.StartsWith("[null")) { var ultimoRegistro = await _client.Child("EventoUsuario").OrderByKey().LimitToLast(1).OnceSingleAsync <List <EventoUsuario> >(); eventoUsuario.ID = ultimoRegistro.Last().ID + 1; if (eventoUsuario.ID != null) { await _client.Child("EventoUsuario").Child(eventoUsuario.ID.ToString()).PutAsync(eventoUsuario); } } else { eventoUsuario.ID = 0; } } return(eventoUsuario); }
private void EnviaConvite_Clicked(object sender, EventArgs e) { // Converte o sender para Button var parametro = sender as Button; var conviteEnviar = new EventoUsuario { EventoID = EventoID, StatusConvite = StatusConviteEnum.Pendente, UsuarioMembroID = _usuarioLogado.ID.Value }; Task.Run(async() => { await _clientEventoUsuario.InsertEventoUsuarioAsync(conviteEnviar); }).Wait(); App.Current.MainPage.Navigation.PopModalAsync(); }
// Muda o status de um convite public async Task <bool> SetStatusConvite(EventoUsuario eventoUsuario) { bool response = true; // Abre a conexão com o banco InstaciaClient(); try { // Monta o objeto para mudança no banco await _client .Child("EventoUsuario") .Child(eventoUsuario.ID.ToString()) .PutAsync(eventoUsuario); } catch (Exception) { return(false); } return(response); }
public ResponseViewModel Create(CreateEventoViewModel model) { ResponseViewModel reponse = new ResponseViewModel(); try { model.FechaFinG = DateTime.Parse(model.FechaFin); model.FechaInicioG = DateTime.Parse(model.FechaInicio); Evento ev = new Evento { Nombre = model.Nombre, Descripcion = model.Descripcion, Imagen = model.ImagenMiniatura, FechaInicio = model.FechaInicioG, FechaFin = model.FechaFinG, Activo = "1", IdTipo = model.IdTipo, FechaRegistro = DateTime.Now }; _eventPlusContext.Evento.Add(ev); _eventPlusContext.SaveChanges(); EventoUsuario evUs = new EventoUsuario { IdEvento = ev.Id, IdLogin = model.IdLogin }; _eventPlusContext.EventoUsuario.Add(evUs); _eventPlusContext.SaveChanges(); if (model.Localizacion != null) { foreach (var lista in model.Localizacion) { Localizacion local = new Localizacion { IdEvento = ev.Id, Activo = "1", Comentario = lista.Comentario, Direccion = lista.Direccion, FechaRegistro = DateTime.Now, Latitud = lista.Latitud, Longitud = lista.Longitud }; _eventPlusContext.Localizacion.Add(local); _eventPlusContext.SaveChanges(); } } reponse.Type = "success"; reponse.Response = "El regitsro se creo exitosamente."; return(reponse); } catch (Exception ex) { reponse.Type = "error"; reponse.Response = "Error en el procedimiento. ---> " + ex.Message; return(reponse); } }
private void BtnSalvarEvento_Click(object sender, EventArgs e) { if (Singleton.alteracaoDeEvento == false) { //Checa as validacoes antes if (Singleton.ListaConvidado.Convidados.Count == 0) { MessageBox.Show("Preencha a lista de convidados"); } else if (DataFim.Value <= DateTime.Now) { MessageBox.Show("A data de saida tem q ser maior que a data de hoje"); } else if (DataComeco.Value <= DateTime.Now) { MessageBox.Show("A data de comeco tem q ser maior que a data de hoje"); } else if (DataComeco.Value >= DataFim.Value) { MessageBox.Show("A data estao com horarios incompativeis"); } else if (TxtEventoLocal.Text.Trim() == "") { MessageBox.Show("Preencha o local !"); } else if (TxtEventoNome.Text.Trim() == "") { MessageBox.Show("Preencha o nome do evento!"); } else if (TxtDescricao.Text.Trim() == "") { MessageBox.Show("Preencha a descricao"); } else { bool permiteSalvarNoBanco = true; //Faz uma validacao pra ver se vc ja tem um evento em tal horario //Se o horario de um evento ja marcado bater, vai retornar o item de uma lista List <Evento> comparacaoDeEventoPorHorario = _context.Eventos.ToList(); foreach (var item in comparacaoDeEventoPorHorario) { if (item.HorarioComeco > DataComeco.Value && item.HorarioComeco > DataFim.Value) { } else if (item.HorarioFim < DataComeco.Value && item.HorarioFim < DataFim.Value) { } else { MessageBox.Show("Em sua agenda de eventos, dentro do horario estipulado já existe um evento nesse horario"); permiteSalvarNoBanco = false; break; } } if (permiteSalvarNoBanco) { string tipoEvento; if (RBtnExclusivo.Checked) { tipoEvento = "Exclusivo"; } else { tipoEvento = "Compartilhado"; } var _evento = new Evento() { EventoId = 0, Descricao = TxtDescricao.Text, EventoTipo = tipoEvento, Local = TxtEventoLocal.Text.Trim(), Nome = TxtEventoNome.Text.Trim(), UsuarioId = Singleton.UsuarioLogado.UserId, HorarioComeco = DataComeco.Value, HorarioFim = DataFim.Value, }; try { _context.Update(_evento); _context.SaveChanges(); } catch (Exception ex) { Utilidades.MensagemErro(ex.Message); } List <Participante> participantes = new List <Participante>(); foreach (var participante in Singleton.ListaConvidado.Convidados) { participantes.Add(new Participante { ParticipanteId = 0, EventoId = _evento.EventoId, NomeParticipante = participante }); } try { _context.UpdateRange(participantes); _context.SaveChanges(); } catch (Exception ex) { Utilidades.MensagemErro(ex.Message); } //Implementar com mais de um usuario, com a lista de amizade EventoUsuario eventoUsuario = new EventoUsuario() { EventoId = _evento.EventoId, UsuarioId = Singleton.UsuarioLogado.UserId, }; var dialogResult = MessageBox.Show("Operacao realizada com sucesso!", "Deseja cadastrar mais um evento?", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { TxtDescricao.Text = ""; TxtEventoLocal.Text = ""; TxtEventoNome.Text = ""; Singleton.ListaConvidado.Convidados.Clear(); } else { this.Close(); } } } } else { //OPERACAO PARA ALTERAR } }