private bool CanVote(Iniciativa iniciativa) { if (iniciativa.isOpen() && !iniciativa.UserHasVoted(SesionActiva.ObtenerInstancia().Usuario.ID)) { return(true); } else { return(false); } }
private void DetailsMode() { tbOpcionMasVotada.Text = ""; btnVotar.Content = "Votar"; bool canVote = true; spFormulario.MaxHeight = 0; spDetails.MaxHeight = double.PositiveInfinity; spDetailAsistire.MaxHeight = 0; spDetailDoDont.MaxHeight = 0; spDetailRegla.MaxHeight = 0; spDetailVotacionMultiple.MaxHeight = 0; spDetailOpciones.MaxHeight = 0; lvDetailOpciones.SelectionMode = ListViewSelectionMode.Single; lvComentarios.SelectionMode = ListViewSelectionMode.None; if (Selected != null) { switch (_selected.GetType().Name) { case "Asistire": opciones = CreateListViewOpciones(((Asistire)_selected).Opciones); lvDetailOpciones.ItemsSource = opciones; canVote = CanVote(_selected); btnVotar.IsEnabled = canVote; if (!canVote) { ShowVotedOption(); } tbFechaEvento.Text = ((Asistire)_selected).FechaEvento.ToString(); tbFechaLimiteConfirmacion.Text = ((Asistire)_selected).FechaLimiteConfirmacion.ToString(); tbLugar.Text = ((Asistire)_selected).Lugar; spDetailAsistire.MaxHeight = double.PositiveInfinity; spDetailOpciones.MaxHeight = double.PositiveInfinity; spDetailDoDont.MaxHeight = 0; spDetailRegla.MaxHeight = 0; spDetailVotacionMultiple.MaxHeight = 0; break; case "DoDont": opciones = CreateListViewOpciones(((DoDont)_selected).Opciones); lvDetailOpciones.ItemsSource = opciones; rbDo.IsChecked = ((DoDont)_selected).Tipo == "Do" ? true : false; rbDont.IsChecked = ((DoDont)_selected).Tipo == "Don't" ? true : false; canVote = CanVote(_selected); btnVotar.IsEnabled = canVote; if (!canVote) { ShowVotedOption(); } spDetailDoDont.MaxHeight = double.PositiveInfinity; spDetailOpciones.MaxHeight = double.PositiveInfinity; spDetailAsistire.MaxHeight = 0; spDetailRegla.MaxHeight = 0; spDetailVotacionMultiple.MaxHeight = 0; break; case "FAQ": //marcar comentario correcto spDetailAsistire.MaxHeight = 0; spDetailDoDont.MaxHeight = 0; spDetailRegla.MaxHeight = 0; spDetailVotacionMultiple.MaxHeight = 0; canVote = _selected.isOpen() && _selected.Owner.ID == SesionActiva.ObtenerInstancia().Usuario.ID&& ((FAQ)_selected).RespuestaCorrecta.ID == 0; btnVotar.IsEnabled = canVote; lvComentarios.SelectionMode = ListViewSelectionMode.Single; if (!canVote) { ShowVotedComment(); } btnVotar.Content = "Seleccionar respuesta correcta"; break; case "PropuestaGenerica": spDetailAsistire.MaxHeight = 0; spDetailDoDont.MaxHeight = 0; spDetailRegla.MaxHeight = 0; spDetailVotacionMultiple.MaxHeight = 0; canVote = false; btnVotar.IsEnabled = canVote; break; case "Regla": opciones = CreateListViewOpciones(((Regla)_selected).Opciones); lvDetailOpciones.ItemsSource = opciones; slDetailRelevancia.Value = ((Regla)_selected).Relevancia; canVote = CanVote(_selected); btnVotar.IsEnabled = canVote; if (!canVote) { ShowVotedOption(); } spDetailAsistire.MaxHeight = 0; spDetailDoDont.MaxHeight = 0; spDetailOpciones.MaxHeight = double.PositiveInfinity; spDetailRegla.MaxHeight = double.PositiveInfinity; spDetailVotacionMultiple.MaxHeight = 0; break; case "Votacion": opciones = CreateListViewOpciones(((Votacion)_selected).Opciones); lvDetailOpciones.ItemsSource = opciones; canVote = CanVote(_selected); btnVotar.IsEnabled = canVote; if (!canVote) { ShowVotedOption(); } spDetailAsistire.MaxHeight = 0; spDetailDoDont.MaxHeight = 0; spDetailRegla.MaxHeight = 0; spDetailVotacionMultiple.MaxHeight = 0; spDetailOpciones.MaxHeight = double.PositiveInfinity; break; case "VotacionMultiple": opciones = CreateListViewOpciones(((VotacionMultiple)_selected).Opciones); lvDetailOpciones.ItemsSource = opciones; tbDetailMaxOpcionesSeleccionables.Text = ((VotacionMultiple)_selected).MaxOpcionesSeleccionables.ToString(); canVote = CanVote(_selected); btnVotar.IsEnabled = canVote; lvDetailOpciones.SelectionMode = ListViewSelectionMode.Multiple; if (!canVote) { foreach (var item in lvDetailOpciones.Items) { if (((OpcionListViewItem)item).Opcion.Votantes.FindIndex(x => x.ID == SesionActiva.ObtenerInstancia().Usuario.ID) != -1) { lvDetailOpciones.SelectedItems.Add(item); } } } if (!_selected.isOpen()) { int count = 0; foreach (OpcionListViewItem item in lvDetailOpciones.Items) { if (item.Opcion.Votantes.Count > count) { count = item.Opcion.Votantes.Count; tbOpcionMasVotada.Text = "Opción mas votada: " + item.Opcion.Descripcion; } } } spDetailAsistire.MaxHeight = 0; spDetailDoDont.MaxHeight = 0; spDetailRegla.MaxHeight = 0; spDetailVotacionMultiple.MaxHeight = double.PositiveInfinity; spDetailOpciones.MaxHeight = double.PositiveInfinity; break; default: break; } } }