Ejemplo n.º 1
0
        public EditGateUser(GerenciarPortoesViewModel viewModel, GateDevices gateKey)
        {
            _viewModel = viewModel;
            Grid grid = new Grid();
            this.gateKey = gateKey;
            string name = gateKey.SKeyName;
            if (name.Length <= 4)
                name = gateKey.SkeyBleId;

            Title = "Editar " + name;

            removerUserGate.AnimateWithAction();
            removerUserGate.Clicked += removerUserGate_Clicked;


            grid.Children.AddVertical(listProfileDisponiveis);
            grid.Children.Add(removerUserGate);

            listProfileDisponiveis.ItemTapped += listProfileDisponiveis_ItemTapped;

            var absoluteLayout = new AbsoluteLayout();
            var background = new Image
            {
                Style = Styles.BackgroundImage
            };

            absoluteLayout.Children.Add(background, new Rectangle(0, 0, 1, 1), AbsoluteLayoutFlags.All);
            absoluteLayout.Children.Add(grid, new Rectangle(0, 0, 1, 1), AbsoluteLayoutFlags.All);

            Content = absoluteLayout;
        }
Ejemplo n.º 2
0
		public MyGateConfigView (GerenciarPortoesViewModel viewModel)
		{
			BindingContext = viewModel;
			gerenciarPortoes = viewModel;
			//Title = viewModel.SelectedGate.Name;

			Children.Add (new Detalhes (viewModel) { Title = "Detalhes", Icon = Images.TabbedDetails });
			Children.Add (new gateDevices (viewModel) { Title = "Usuarios", Icon = Images.ProfileWB });
			Children.Add (new SpecifcHoliday (viewModel) { Title = "Feriados", Icon = Images.TabbedHoliday });
		}
Ejemplo n.º 3
0
			public Detalhes (GerenciarPortoesViewModel gerenciarPortoes)
			{
				//NavigationPage.SetHasNavigationBar(this, false);
				BindingContext = gerenciarPortoes;
				this.gerenciarPortoes = gerenciarPortoes;
				Title = gerenciarPortoes.SelectedGate.Name;

				entryName.SetBinding (Entry.TextProperty, "SelectedGate.Name", BindingMode.TwoWay);
				entryDetail.SetBinding (Entry.TextProperty, "SelectedGate.Description", BindingMode.TwoWay);
				labelGateBleId.SetBinding (Label.TextProperty, "SelectedGate.BleId", BindingMode.TwoWay);

				if (gerenciarPortoes.SelectedGate.IsOwned)
					labelDetail.IsVisible = false;         //TODO a intencao seria apenas tornar nao editavel!!!!!

				ToolbarItems.Add (toolbarSettings);
				toolbarSettings.SetBinding (MenuItem.CommandProperty, "GateOptionsCommand");

				entryName.TextChanged += entryName_TextChanged;
				entryDetail.TextChanged += entryDetail_TextChanged;
				StackLayout stack = new StackLayout {
					HorizontalOptions = LayoutOptions.CenterAndExpand,
					VerticalOptions = LayoutOptions.CenterAndExpand,
					Padding = new Thickness (0, 0, 0, 0),
					Spacing = 5,
					Children = {
						buttonActiveGate,
						labelName,
						entryName,

						new StackLayout {
							Padding = new Thickness (0, 5, 0, 0),
							Spacing = 5,
							Children = {
								labelDetail,
								entryDetail,
							}
						},

						labelGateBleId,
					}
				};

				var absoluteLayout = new AbsoluteLayout ();
				var background = new Image {
					Style = Styles.BackgroundImage
				};

				var scroll = new ScrollView {
					Content = stack
				};

				absoluteLayout.Children.Add (background, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All);
				absoluteLayout.Children.Add (scroll, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All);


				Content = absoluteLayout;

				buttonActiveGate.Clicked += ButtonActiveGate_Clicked;

			}
Ejemplo n.º 4
0
			public SpecifcHoliday (GerenciarPortoesViewModel viewModel)
			{
				BindingContext = viewModel;
				gerenciarPortoes = viewModel;
				this.SetBinding (TitleProperty, "SelectedGate.Name");
				listViewGateHoliday.ItemTemplate = new DataTemplate (typeof(TwoColumnsGridCell));
				listViewGateHoliday.ItemTapped += listViewGateHoliday_ItemTapped;

				FloatButton.AnimateWithAction ();
				FloatButton.Command = new Command (ToolbarAction);

				//ToolbarItems.Add(new ToolbarItem
				//{
				//    Icon = Images.Add1,
				//    Order = ToolbarItemOrder.Primary,
				//    Command = new Command(ToolbarAction)
				//});

				iconStack = new StackLayout {
					VerticalOptions = LayoutOptions.CenterAndExpand,
					HorizontalOptions = LayoutOptions.CenterAndExpand,
					Children = { iconMsg, message }
				};

				stack = new StackLayout {
					Padding = new Thickness (0, 20, 0, 0),
					Spacing = 10,
					Orientation = StackOrientation.Vertical,
					BackgroundColor = Color.FromHex ("#ECEFF1"),
					Children = {
						iconStack, listViewGateHoliday
					}
				};


				var absoluteLayout = new AbsoluteLayout {
					VerticalOptions = LayoutOptions.FillAndExpand,
				};
				var background = new Image { /*Source = Images.Background,*/ Aspect = Aspect.Fill };

				//absoluteLayout.Children.Add (background, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All);
				AbsoluteLayout.SetLayoutFlags (background, AbsoluteLayoutFlags.All);
				AbsoluteLayout.SetLayoutBounds (background, new Rectangle (0, 0, 1, 1));

				//absoluteLayout.Children.Add (stack, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All);
				AbsoluteLayout.SetLayoutFlags (stack, AbsoluteLayoutFlags.All);
				AbsoluteLayout.SetLayoutBounds (stack, new Rectangle (0, 0, 1, 1));

				AbsoluteLayout.SetLayoutFlags (FloatButton, AbsoluteLayoutFlags.PositionProportional);
				AbsoluteLayout.SetLayoutBounds (FloatButton, new Rectangle (0.99f, 0.98f, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));

				absoluteLayout.Children.Add (background);
				absoluteLayout.Children.Add (stack);
				absoluteLayout.Children.Add (FloatButton);

				Content = absoluteLayout;
			}
Ejemplo n.º 5
0
			public gateDevices (GerenciarPortoesViewModel viewModel)
			{
				BindingContext = viewModel;
				gerenciarPortoes = viewModel;
				this.SetBinding (TitleProperty, "SelectedGate.Name");
				//Title = "Cadastro Usuarios de Portao";


				listGateDevices.ItemTemplate = new DataTemplate (typeof(GateDeviceCell));
				listGateDevices.SetBinding (ListView.ItemsSourceProperty, "gateUsers");


				listGateDevices.ItemTapped += listGateDevices_ItemTapped;

				ToolbarItems.Add (new ToolbarItem {
					Icon = Images.SafetyKeyIcon,
					Order = ToolbarItemOrder.Primary,
					Command = new Command (ScanAction)
				});


				ToolbarItems.Add (new ToolbarItem {
					Icon = Images.tabbedRemote,
					Order = ToolbarItemOrder.Primary,
					Command = new Command (async () => {
						await gerenciarPortoes.newCellPhoneUser ();
						OnAppearing ();
					})
				});

				iconStack = new StackLayout {
					VerticalOptions = LayoutOptions.CenterAndExpand,
					HorizontalOptions = LayoutOptions.CenterAndExpand,
					Children = { iconMsg, labelMsg }
				};

				stack = new StackLayout {
					Padding = new Thickness (0, 20, 0, 0),
					Spacing = 10,
					Orientation = StackOrientation.Vertical,
					BackgroundColor = Color.FromHex ("#ECEFF1"),
					Children = {
						iconStack, listGateDevices
					}
				};


				var absoluteLayout = new AbsoluteLayout {
					VerticalOptions = LayoutOptions.FillAndExpand,
				};
				var background = new Image { /*Source = Images.Background,*/ Aspect = Aspect.Fill };

				//absoluteLayout.Children.Add (background, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All);
				AbsoluteLayout.SetLayoutFlags (background, AbsoluteLayoutFlags.All);
				AbsoluteLayout.SetLayoutBounds (background, new Rectangle (0, 0, 1, 1));

				//absoluteLayout.Children.Add (stack, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All);
				AbsoluteLayout.SetLayoutFlags (stack, AbsoluteLayoutFlags.All);
				AbsoluteLayout.SetLayoutBounds (stack, new Rectangle (0, 0, 1, 1));

				absoluteLayout.Children.Add (background);
				absoluteLayout.Children.Add (stack);

				Content = absoluteLayout;
			}
		public GerenciarPortoesView (GerenciarPortoesViewModel viewModel)
		{

			gerenciarPortoes = viewModel;
			Title = "Portões";
			devices = new ObservableCollection<string> ();
			BindingContext = viewModel;

			listGates.SetBinding (ListView.SelectedItemProperty, "SelectedGate", BindingMode.TwoWay);
			listGates.ItemsSource = ((GerenciarPortoesViewModel)BindingContext).Gates;

			listGates.ItemTemplate = new DataTemplate (typeof(GatesCell));
			listGates.RowHeight = 60;

			stack = new StackLayout {
				Padding = new Thickness (0, 20, 0, 0),
				Spacing = 30,
				Orientation = StackOrientation.Vertical,
				VerticalOptions = LayoutOptions.FillAndExpand,
				HorizontalOptions = LayoutOptions.FillAndExpand,
				BackgroundColor = Color.FromHex ("#ECEFF1"),
				Children = {
					listGates
				}
			};

			iconStack = new StackLayout {
				VerticalOptions = LayoutOptions.FillAndExpand,
				HorizontalOptions = LayoutOptions.FillAndExpand,
				Children = { iconMsg, labelMsg }
			};

			absoluteLayout = new AbsoluteLayout {
				VerticalOptions = LayoutOptions.FillAndExpand,
			};

			AbsoluteLayout.SetLayoutFlags (stack, AbsoluteLayoutFlags.All);
			AbsoluteLayout.SetLayoutBounds (stack, new Rectangle (0, 0, 1, 1));

			AbsoluteLayout.SetLayoutFlags (iconStack, AbsoluteLayoutFlags.All);
			AbsoluteLayout.SetLayoutBounds (iconStack, new Rectangle (0, 0, 1, 1));

			Content = absoluteLayout;

			//garante syncronizar com server
			this.Disappearing += async (sender, args) => {

				//Sincroniza dados alterados como o server

				if (App.tableHorarios.pendingSync)
					await App.tableHorarios.SyncAsync ("Hr", App.tableHorarios.table.Where (reg => reg.UserId == Settings.user_Id));

				if (App.tablePerfis.pendingSync)
					await App.tablePerfis.SyncAsync ("Pe", App.tablePerfis.table.Where (reg => reg.UserId == Settings.user_Id));

				if (App.tableFeriados.pendingSync)
					await App.tableFeriados.SyncAsync ("Ho", App.tableFeriados.table.Where (reg => reg.UserId == Settings.user_Id));

				if (gerenciarPortoes.tableDevices.pendingSync && gerenciarPortoes.SelectedGate != null)
					await gerenciarPortoes.tableDevices.SyncAsync ("GD" + gerenciarPortoes.SelectedGate.Id,
						gerenciarPortoes.tableDevices.table.Where (gs => gs.GateLicId == gerenciarPortoes.SelectedGate.Id));

				((App)Application.Current).PreparaDll ();  //tem que renovar, nao dah para saber se  user remoto alterou seu sKey!!
			};

			listGates.ItemTapped += (sender, args) => {
				if (((Gates)((ListView)sender).SelectedItem).IsOwned == false) {
					viewModel.Title = ((Gates)((ListView)sender).SelectedItem).Name;
					viewModel.SelectedGate = ((Gates)((ListView)sender).SelectedItem);
					this.Navigation.PushAsync (new MyGateConfigView (viewModel));
				} else {
					DisplayAlert ("MySafety", "Você tem acesso a esse portão, mas nao pode gerenciar", "OK");
				}

			};
		}