private async void CreateeventButton_Clicked(object sender, EventArgs e)
        {
            DatabaseFunctions dbf = new DatabaseFunctions();

            indicator.IsRunning = true;

            whoattended = new Whoattended();

            string fnev = "";

            try { fnev = DependencyService.Get <ISaveAndLoad>().LoadText("login.txt"); }catch (Exception) { }

            whoattended.profile = fnev;

            events.when    = date.ToString("yyyy.MM.dd") + " " + hour;
            events.eventId = events.when + "_" + whoattended.profile + "_" + events.eventName;

            whoattended.eventId = events.eventId;

            if (!CrossConnectivity.Current.IsConnected)
            {
                indicator.IsRunning = false;
                await DisplayAlert("Warning", "Please, check your internet settings!", "OK");
            }
            else if (events.where == null || hour == null || events.department == null || events.eventName == null ||
                     events.university == null)
            {
                indicator.IsRunning = false;
                await DisplayAlert("Warning", "You have to fill in all of the fields!", "OK");
            }
            else
            {
                var successStoreEvent = await dbf.putEvent(events);

                var successStoreWhoattended = await dbf.putWhoattended(whoattended);

                if (successStoreEvent == "successfull" && successStoreWhoattended)
                {
                    await DisplayAlert("Successful", "You have created the group!", "OK");

                    indicator.IsRunning = false;
                }
                else if (successStoreEvent == "dateproblem")
                {
                    indicator.IsRunning = false;
                    await DisplayAlert("Warning", "You have to change the date!", "OK");
                }
                else
                {
                    indicator.IsRunning = false;
                    await DisplayAlert("Warning", "Something went wrong, please check back later!", "OK");
                }
            }
        }
        public async Task <bool> deleteWhoattended(Whoattended whoattend)
        {
            try
            {
                await MobileService.GetTable <Whoattended>().DeleteAsync(whoattend);

                return(true);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                return(false);
            }
        }
Beispiel #3
0
        private async void setEventJson(string userId)
        {
            if (!CrossConnectivity.Current.IsConnected)
            {
                await DisplayAlert("Warning", "Please, check your internet settings!", "OK");
            }
            else
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await DisplayAlert("Info", "Please wait while loading!", "OK");
                });
                DatabaseFunctions dbf = new DatabaseFunctions();

                eventsJson = await dbf.getEvents();

                listofevents = eventsJson;

                whoattendedJson = await dbf.getWhoattended();

                whoevents = whoattendedJson;

                if (listEvents(listofevents, whoevents).Count == 0)
                {
                    checkLabel = new Label()
                    {
                        Text      = "Youd didn't attend to any groups.",
                        FontSize  = 15,
                        TextColor = Color.White
                    };
                }
                else
                {
                    checkLabel = new Label()
                    {
                        Text      = "",
                        FontSize  = 15,
                        TextColor = Color.White
                    };
                }

                var personDataTemplate = new DataTemplate(() =>
                {
                    var grid      = new Grid();
                    var nameLabel = new Label {
                        TextColor = Color.White, FontAttributes = FontAttributes.Bold
                    };
                    var whereLabel = new Label()
                    {
                        TextColor = Color.White,
                    };
                    var whenLabel = new Label {
                        TextColor = Color.White, HorizontalTextAlignment = TextAlignment.Start
                    };
                    var uniLabel = new Label()
                    {
                        TextColor = Color.White, HorizontalTextAlignment = TextAlignment.Start
                    };
                    var depLabel = new Label {
                        TextColor = Color.White, HorizontalTextAlignment = TextAlignment.Start
                    };

                    nameLabel.SetBinding(Label.TextProperty, "eventName");
                    whereLabel.SetBinding(Label.TextProperty, "where");
                    whenLabel.SetBinding(Label.TextProperty, "when");
                    uniLabel.SetBinding(Label.TextProperty, "university");
                    depLabel.SetBinding(Label.TextProperty, "department");

                    grid.Children.Add(nameLabel, 0, 0);
                    grid.Children.Add(whereLabel, 1, 0);
                    grid.Children.Add(whenLabel, 2, 0);
                    grid.Children.Add(uniLabel, 0, 1);
                    grid.Children.Add(depLabel, 1, 1);

                    viewCell = new ViewCell
                    {
                        View = grid,
                    };

                    var spectateAction = new MenuItem {
                        Text = "Members", IsDestructive = false
                    };
                    spectateAction.SetBinding(MenuItem.CommandParameterProperty, new Binding("."));
                    spectateAction.Clicked += async(sender, e) =>
                    {
                        var mi = ((MenuItem)sender);
                        Events bindingEvent = (Events)mi.BindingContext;
                        await Navigation.PushAsync(new JoinedMembersPage(bindingEvent.eventId, whoevents));
                    };

                    var deleteAction = new MenuItem {
                        Text = "Delete", IsDestructive = true
                    };
                    deleteAction.SetBinding(MenuItem.CommandParameterProperty, new Binding("."));
                    deleteAction.Clicked += async(sender, e) =>
                    {
                        var mi = ((MenuItem)sender);
                        Events bindingEvent = (Events)mi.BindingContext;
                        Whoattended deleted = new Whoattended();
                        deleted.eventId     = bindingEvent.eventId;
                        deleted.profile     = user;

                        whoattendedJson = await dbf.getWhoattended();

                        foreach (var item in whoattendedJson)
                        {
                            if (item.eventId == bindingEvent.eventId && item.profile == user)
                            {
                                deleted.id = item.id;
                                break;
                            }
                        }

                        var check = await dbf.deleteWhoattended(deleted);
                        if (check)
                        {
                            await DisplayAlert("Successful", "You have unsubscribe from the event!", "OK");
                        }
                        else
                        {
                            await DisplayAlert("Warning", "Something went wrong, please check back later!", "OK");
                        }
                        whoattendedJson = await dbf.getWhoattended();
                        ObservableCollection <Whoattended> whoevents2 = whoattendedJson;
                        lw.ItemsSource = listEvents(listofevents, whoevents2);
                    };

                    viewCell.ContextActions.Add(deleteAction);
                    viewCell.ContextActions.Add(spectateAction);

                    return(viewCell);
                });

                lw = new ListView()
                {
                    IsPullToRefreshEnabled = true,
                    ItemsSource            = listEvents(listofevents, whoevents),
                    ItemTemplate           = personDataTemplate,
                    BackgroundColor        = Color.Transparent
                };

                Content = new ScrollView
                {
                    Content = new StackLayout()
                    {
                        Children = { checkLabel, lw }
                    }
                };

                lw.Refreshing += Lw_Refreshing;
            }
        }
Beispiel #4
0
        private async void setEventJson(string userId)
        {
            DatabaseFunctions dbf = new DatabaseFunctions();

            eventsJson = await dbf.getEvents();

            listofevents = eventsJson;

            filterSearchBar = new SearchBar()
            {
                SearchCommand = new Command(() => { setTheListView(filterSearchBar.Text, eventsJson); })
            };
            if (eventsJson.Count == 0)
            {
                await DisplayAlert("Info", "There are not any group yet.", "OK");
            }
            var personDataTemplate = new DataTemplate(() =>
            {
                var grid      = new Grid();
                var nameLabel = new Label {
                    TextColor = Color.White, FontAttributes = FontAttributes.Bold
                };
                var whereLabel = new Label()
                {
                    TextColor = Color.White,
                };
                var whenLabel = new Label {
                    TextColor = Color.White, HorizontalTextAlignment = TextAlignment.Center
                };
                var uniLabel = new Label()
                {
                    TextColor = Color.White, HorizontalTextAlignment = TextAlignment.Start
                };
                var depLabel = new Label {
                    TextColor = Color.White, HorizontalTextAlignment = TextAlignment.Start
                };


                nameLabel.SetBinding(Label.TextProperty, "eventName");
                whereLabel.SetBinding(Label.TextProperty, "where");
                whenLabel.SetBinding(Label.TextProperty, "when");
                uniLabel.SetBinding(Label.TextProperty, "university");
                depLabel.SetBinding(Label.TextProperty, "department");

                grid.Children.Add(nameLabel, 0, 0);
                grid.Children.Add(whereLabel, 1, 0);
                grid.Children.Add(whenLabel, 2, 0);
                grid.Children.Add(uniLabel, 0, 1);
                grid.Children.Add(depLabel, 1, 1);

                viewCell = new ViewCell
                {
                    View = grid,
                };
                var joinAction = new MenuItem {
                    Text = "Join"
                };
                joinAction.SetBinding(MenuItem.CommandParameterProperty, new Binding("."));
                joinAction.Clicked += async(sender, e) =>
                {
                    var mi = ((MenuItem)sender);
                    Events bindingEvent  = (Events)mi.BindingContext;
                    Whoattended whoclass = new Whoattended();
                    whoclass.eventId     = bindingEvent.eventId;
                    whoclass.profile     = userId;

                    ObservableCollection <Whoattended> whoatt = await dbf.getWhoattended();

                    bool val = true;

                    foreach (var item in whoatt)
                    {
                        if (item.eventId == whoclass.eventId && item.profile == whoclass.profile)
                        {
                            val = false;
                            await DisplayAlert("Warning", "You have already attended to this event!", "OK");
                            break;
                        }
                    }
                    if (val == true)
                    {
                        var successStore = await dbf.putWhoattended(whoclass);

                        if (successStore)
                        {
                            await DisplayAlert("Successful", "You have joined to this event!", "OK");
                        }
                        else
                        {
                            await DisplayAlert("Warning", "Something went wrong, please check back later!", "OK");
                        }
                    }
                };

                var spectateAction = new MenuItem {
                    Text = "Members", IsDestructive = false
                };
                spectateAction.SetBinding(MenuItem.CommandParameterProperty, new Binding("."));
                spectateAction.Clicked += async(sender, e) =>
                {
                    var mi = ((MenuItem)sender);
                    Events bindingEvent = (Events)mi.BindingContext;
                    ObservableCollection <Whoattended> whoatt = await dbf.getWhoattended();

                    await Navigation.PushAsync(new JoinedMembersPage(bindingEvent.eventId, whoatt));
                };

                viewCell.ContextActions.Add(joinAction);
                viewCell.ContextActions.Add(spectateAction);

                return(viewCell);
            });

            if (!CrossConnectivity.Current.IsConnected)
            {
                await DisplayAlert("Warning", "Please, check your internet settings!", "OK");
            }

            lw = new ListView()
            {
                IsPullToRefreshEnabled = true,
                ItemsSource            = eventsJson,
                ItemTemplate           = personDataTemplate,
                BackgroundColor        = Color.Transparent
            };

            lw.Refreshing += Lw_Refreshing;

            if (Device.OS == TargetPlatform.Windows || Device.OS == TargetPlatform.WinPhone || Device.OS == TargetPlatform.Other)
            {
                Button refreshButton = new Button()
                {
                    HorizontalOptions = LayoutOptions.Center,
                    Text            = "Refresh",
                    BackgroundColor = Color.FromHex("#4E8DB9"),
                    TextColor       = Color.White
                };
                refreshButton.Clicked += RefreshButton_Clicked;

                Content = new ScrollView
                {
                    Content = new StackLayout()
                    {
                        Children = { filterSearchBar, refreshButton, lw }
                    }
                };
            }
            else
            {
                Content = new StackLayout()
                {
                    Children = { filterSearchBar, lw }
                };
            }
        }