示例#1
0
        private async Task CarregaEnquetesPublicas()
        {
            try
            {
                Application.Current.Properties["Pagina"] = 1;

                mainLayout.Children.RemoveAt(0);
                mainLayout.Children[0].IsVisible = false;

				
                var ldg = Acr.UserDialogs.UserDialogs.Instance.Loading(AppResources.MsgLoading);
                ldg.Show();
				
                model.Enquetes = await model.GetEnquetesPublicas();
                this.BindingContext = model.Enquetes;
				
                var enquetesLayout = new StackLayout
                {
                    VerticalOptions = LayoutOptions.FillAndExpand,
                    HeightRequest = Acr.DeviceInfo.DeviceInfo.Hardware.ScreenHeight * 3,
                    Orientation = StackOrientation.Vertical,
                    Padding = new Thickness(5, 3, 5, 0)
                };
				
                var cat = string.Empty;
                var enquetesAgrupadas = from e in this.model.Enquetes.Where(c => c.Status == EnumStatusEnquete.Ativa ||
                                                            c.Status == EnumStatusEnquete.Publicada).Distinct()
                                                    group e by e.Categoria.Nome into g
                                                    select new
					{
						CategoriaId = g.Key,
						Enquetes = g.ToList()
					};
				
                List<int> enquetesNatela = new List<int>();

                foreach (var enquete in enquetesAgrupadas.Distinct())
                {
                    foreach (var item in enquete.Enquetes.Distinct())
                    {
                        if (String.IsNullOrEmpty(cat) || cat != item.Categoria.Nome)
                        {
                            cat = item.Categoria.Nome;
                            var lblCategoriaNome = new Label
                            {
                                Text = item.Categoria.Nome,
                                BackgroundColor = Color.FromHex("#DDDDDD"),
                                YAlign = TextAlignment.Start,
                                HorizontalOptions = LayoutOptions.FillAndExpand,
                                FontSize = 14
                            };
                            enquetesLayout.Children.Add(lblCategoriaNome);
                        }
				
                        if ((item.Tipo == EnumTipoEnquete.Publica || item.Tipo == EnumTipoEnquete.Quiz
                            && !enquetesNatela.Contains(item.Id)))
                        {
                            var frame = new EnquetePublicaView(item);
                            enquetesLayout.Children.Add(frame);
                            enquetesNatela.Add(item.Id);
                        }
                        else if (item.Tipo == EnumTipoEnquete.Mensagem && !enquetesNatela.Contains(item.Id))
                        {
                            var frame = new EnqueteMensagemView(item);
                            enquetesLayout.Children.Add(frame);	
                            enquetesNatela.Add(item.Id);
                        }
                    }
                }
				
                var scrollEnquetes = new ScrollView { Content = enquetesLayout, Orientation = ScrollOrientation.Vertical };
				
                mainLayout.Children.Insert(0, scrollEnquetes);
				
                foreach (var child in mainLayout.Children)
                {
                    child.IsVisible = true;
                }
				
                ldg.Hide();
            }
            catch (Exception ex)
            {
                Insights.Report(ex);
                throw ex;
            }
        }
示例#2
0
 private async Task CarregaEnquetesInteresse()
 {
     try
     {
         Application.Current.Properties["Pagina"] = 2;
         
         mainLayout.Children.RemoveAt(0);
         mainLayout.Children[0].IsVisible = false;
         
         
         var ldg = Acr.UserDialogs.UserDialogs.Instance.Loading(AppResources.MsgLoading);
         ldg.Show();
         
         model.Enquetes = await model.GetEnquetesDeSeuInteresse();
         this.BindingContext = model.Enquetes.Where(x => (x.AtivaNoFront && (x.Status == EnumStatusEnquete.Ativa ||
             x.Status == EnumStatusEnquete.Publicada)));
         
         var enquetesLayout = new StackLayout
         {   
             VerticalOptions = LayoutOptions.FillAndExpand,
             HeightRequest = Acr.DeviceInfo.DeviceInfo.Hardware.ScreenHeight * 3,
             Orientation = StackOrientation.Vertical,
             Padding = new Thickness(5, 3, 5, 0)
         };
         
         #region -- Inserção dos Banners --
         var banners = model.Banners;
         if (banners != null && banners.Any())
         {
             if (Device.OS == TargetPlatform.Android)
             {
                 stackBanner = new StackLayout
                 { 
                     Children = { new EnqueteInteresseView(model.Banners[0]) },
                     Padding = new Thickness(0, 0, 0, 10)
                 };
             }
             else
             {
                 stackBanner = new StackLayout
                 { 
                     Children = { new EnqueteInteresseView(model.Banners[0]) },
                     Padding = new Thickness(0, 0, 10, 0),
                     //VerticalOptions = LayoutOptions.Center,
                     //HorizontalOptions = LayoutOptions.Center,
                 };
             }
         
             var oldIndex = 1;
         
             if (banners != null && banners.Any())
                 enquetesLayout.Children.Add(stackBanner);
         
             if (banners.Count > 1)
             {
                 Device.StartTimer(TimeSpan.FromSeconds(4), () =>
                     {
                         if (oldIndex < banners.Count)
                         {
                             if (model.Banners.Skip(oldIndex).Take(1).Any())
                             {
                                 var obj = new EnqueteInteresseView(model.Banners.Skip(oldIndex).Take(1).First());
         
                                 if (Device.OS == TargetPlatform.iOS)
                                     stackBanner.Children[0] = obj;
                                 else
                                 {
                                     stackBanner.Children.Clear();
                                     stackBanner.Children.Add(obj);
                                 }
         
                                 oldIndex++;
         
                                 if (oldIndex >= banners.Count)
                                     oldIndex = 0;
                             }
                         }
         
                         return true;
                     });
             }
         }
         #endregion -- Inserção dos banners ---
         
         var cat = string.Empty;
         
         foreach (var enquete in this.model.Enquetes.Where(x => (x.AtivaNoFront && (x.Status == EnumStatusEnquete.Ativa ||
             x.Status == EnumStatusEnquete.Publicada))).Distinct())
         {
             if (enquete.Categoria == null
                 && enquete.CategoriaId <= 0
                 && enquete.Tipo != EnumTipoEnquete.Mensagem
                 && enquete.propria)
                 enquete.Categoria = new Categoria{ Nome = "Suas Enquetes" };
             else if (enquete.Categoria == null
                      && enquete.CategoriaId <= 0
                      && enquete.Tipo != EnumTipoEnquete.Mensagem
                      && !enquete.propria)
                 enquete.Categoria = new Categoria{ Nome = "Dos seus Amigos" };
         }
         
         var enquetesAgrupadas = from e in this.model.Enquetes.Where(x => (x.AtivaNoFront && (x.Status == EnumStatusEnquete.Ativa ||
                                                     x.Status == EnumStatusEnquete.Publicada))).Distinct()
                                             group e by e.Categoria.Nome into g
                                             select new
         {
         CategoriaId = g.Key,
         Enquetes = g.ToList()
         };
         
         List<int> enquetesNaTela = new List<int>();
         
         foreach (var enquete in enquetesAgrupadas.Distinct())
         {
             foreach (var item in enquete.Enquetes.Distinct())
             {
                 if (String.IsNullOrEmpty(cat) || cat != item.Categoria.Nome)
                 {
                     cat = item.Categoria.Nome;
                     var lblCategoriaNome = new Label
                     {
                         Text = item.Categoria.Nome,
                         BackgroundColor = Color.FromHex("#DDDDDD"),
                         AnchorY = 10,
                         HorizontalOptions = LayoutOptions.FillAndExpand,
                         FontSize = 14,
                         FontAttributes = FontAttributes.Bold
                     };
                     enquetesLayout.Children.Add(lblCategoriaNome);
                 }
         
                 if (item.Tipo == EnumTipoEnquete.Interesse && !enquetesNaTela.Contains(item.Id))
                 {
                     var frame = new EnquetePublicaView(item);
                     enquetesLayout.Children.Add(frame);
                     enquetesNaTela.Add(item.Id);
                 }
                 else if (item.Tipo == EnumTipoEnquete.Mensagem && !enquetesNaTela.Contains(item.Id))
                 {
                     var frame = new EnqueteMensagemView(item);
                     enquetesLayout.Children.Add(frame); 
                     enquetesNaTela.Add(item.Id);
                 }
             }
         }
         
         /*foreach (var enquete in this.model.Enquetes)
         {
         if (enquete.Tipo == EnumTipoEnquete.Interesse)
         {
         var frame = new EnquetePublicaView(enquete);
         enquetesLayout.Children.Add(frame);
         }
         else if (enquete.Tipo == EnumTipoEnquete.Mensagem)
         {
         var frame = new EnqueteMensagemView(enquete);
         enquetesLayout.Children.Add(frame); 
         }
         }*/
         
         var scrollEnquetes = new ScrollView { Content = enquetesLayout, Orientation = ScrollOrientation.Vertical };
         
         mainLayout.Children.Insert(0, scrollEnquetes);
         
         foreach (var child in mainLayout.Children)
         {
             child.IsVisible = true;
         }
         
         ldg.Hide();
     }
     catch (Exception ex)
     {
         Insights.Report(ex);
     }
 }
示例#3
0
        protected async override void OnAppearing()
        {
            try
            {
                if (this.OnApperaringLoaded == true)
                    return;
				
                base.OnAppearing();
                this.OnApperaringLoaded = true;
				
                if (!Application.Current.Properties.ContainsKey("Pagina"))
                    Application.Current.Properties["Pagina"] = 1;
				
                model = App.Container.Resolve<EnqueteViewModel>();
                model.ConfigurarNavegacao(this.Navigation);
				
                if (this.enquetesFiltradas != null && this.enquetesFiltradas.Any())
                {
                    if (this.enquetesFiltradas.Any(c => c.Titulo == "Nenhum"))
                    {
                        model.Enquetes = null;
                    }
                    else
                        model.Enquetes = new System.Collections.ObjectModel.ObservableCollection<Enquete>(this.enquetesFiltradas);
                }
                else
                    model.Enquetes = await model.GetEnquetesPublicas();
				
                this.BindingContext = model.Enquetes;
                var enquetesLayout = new StackLayout();

                if (this.model.Enquetes == null)
                {
                    enquetesLayout = new StackLayout
                    {
                        VerticalOptions = LayoutOptions.FillAndExpand,
                        HeightRequest = Acr.DeviceInfo.DeviceInfo.Hardware.ScreenHeight * 3,
                        Orientation = StackOrientation.Vertical,
                        Padding = new Thickness(5, 50, 5, 0),
                        Children = { new Label{ Text = "Nenhum resultado encontrado !", FontSize = 28, FontAttributes = FontAttributes.Bold, YAlign = TextAlignment.Center } }
                    };
                }
                else
                {
                    enquetesLayout = new StackLayout
                    {
                        VerticalOptions = LayoutOptions.FillAndExpand,
                        HeightRequest = Acr.DeviceInfo.DeviceInfo.Hardware.ScreenHeight * 3,
                        Orientation = StackOrientation.Vertical,
                        Padding = new Thickness(5, 3, 5, 0)
                    };
				
                    var cat = string.Empty;
                    var enquetesAgrupadas = from e in this.model.Enquetes.Distinct()
                                                           group e by e.Categoria.Nome into g
                                                           select new
					{
						CategoriaId = g.Key,
						Enquetes = g.ToList()
					};

                    List<int> enquetesNatela = new List<int>();
				
                    foreach (var enquete in enquetesAgrupadas.Distinct())
                    {
                        foreach (var item in enquete.Enquetes.Distinct())
                        {
                            if (String.IsNullOrEmpty(cat) || cat != item.Categoria.Nome)
                            {
                                cat = item.Categoria.Nome;
                                var lblCategoriaNome = new Label
                                {
                                    Text = item.Categoria.Nome,
                                    BackgroundColor = Color.FromHex("#DDDDDD"),
                                    YAlign = TextAlignment.Start,
                                    HorizontalOptions = LayoutOptions.FillAndExpand,
                                    FontSize = 14
                                };
                                enquetesLayout.Children.Add(lblCategoriaNome);
                            }
				
                            if (item.Tipo == EnumTipoEnquete.Publica && !enquetesNatela.Contains(item.Id))
                            {
                                var frame = new EnquetePublicaView(item);
                                enquetesLayout.Children.Add(frame);
                                enquetesNatela.Add(item.Id);
                            }
                            else if (item.Tipo == EnumTipoEnquete.Mensagem && !enquetesNatela.Contains(item.Id))
                            {
                                var frame = new EnqueteMensagemView(item);
                                enquetesLayout.Children.Add(frame);
                                enquetesNatela.Add(item.Id);
                            }
                        }
                    }
                }
                var scrollEnquetes = new ScrollView { Content = enquetesLayout, Orientation = ScrollOrientation.Vertical };
                				
                var tabbedMenu = new TabbedMenuView(this.Navigation);
                mainLayout.Children.Add(scrollEnquetes);
                mainLayout.Children.Add(tabbedMenu);

                if (tipo == 1)
                    await CarregaEnquetesPublicas();

                if (tipo == 2)
                    await CarregaEnquetesInteresse();
	
            }
            catch (Exception ex)
            {
                Insights.Report(ex);
                throw ex;
            }
        }