Exemplo n.º 1
0
        public void Get_ManageGroups()
        {
            try
            {
                if (GroupsManage_Type == "Manage_UserGroups")
                {
                    ManageGroupsSection.Visibility     = ViewStates.Gone;
                    ManageGroupsRecylerView.Visibility = ViewStates.Gone;
                    Txt_Create.Visibility       = ViewStates.Gone;
                    Btn_SearchRandom.Visibility = ViewStates.Gone;
                }
                else if (GroupsManage_Type == "Manage_MyGroups")
                {
                    //Get Group From Database
                    var dbDatabase = new SqLiteDatabase();
                    var localList  = dbDatabase.GetAll_ManageGroups();
                    if (localList != null)
                    {
                        ManageGroupsAdapter.mUserGroupsList =
                            new ObservableCollection <Get_User_Data_Object.Joined_Groups>(localList);
                        ManageGroupsAdapter.BindEnd();
                    }

                    dbDatabase.Dispose();
                }


                Get_CommunitiesList_Group();
            }
            catch (Exception e)
            {
                Crashes.TrackError(e);
            }
        }
Exemplo n.º 2
0
        //Event Refresh Data Page
        private void SwipeRefreshLayoutOnRefresh(object sender, EventArgs e)
        {
            try
            {
                ManageGroupsAdapter.Clear();
                GroupsAdapter.Clear();

                Get_CommunitiesList_Group();
            }
            catch (Exception exception)
            {
                Crashes.TrackError(exception);
            }
        }
Exemplo n.º 3
0
 //Event User Manage Groups => Using Get_User_Data_Object.Joined_Groups => Open Group_ProfileActivity
 private void UserManageGroupsAdapter_OnItemClick(object sender,
                                                  UserGroupsAdapterClickEventArgs adapterClickEvents)
 {
     try
     {
         var position = adapterClickEvents.Position;
         if (position >= 0)
         {
             var item = ManageGroupsAdapter.GetItem(position);
             if (item != null)
             {
                 var Int = new Intent(this, typeof(Group_Profile_Activity));
                 Int.PutExtra("UserGroups", JsonConvert.SerializeObject(item));
                 Int.PutExtra("GroupsType", "Joined_UserGroups");
                 StartActivity(Int);
             }
         }
     }
     catch (Exception e)
     {
         Crashes.TrackError(e);
     }
 }
Exemplo n.º 4
0
        //Get List Group Using API
        public async void Get_CommunitiesList_Group_API()
        {
            try
            {
                if (!IMethods.CheckConnectivity())
                {
                    swipeRefreshLayout.Refreshing = false;
                    Toast.MakeText(this, GetString(Resource.String.Lbl_CheckYourInternetConnection), ToastLength.Short)
                    .Show();
                }
                else
                {
                    var(Api_status, Respond) = await Client.Global.Get_Community(new Settings(), UserID);

                    if (Api_status == 200)
                    {
                        if (Respond is Get_Community_Object result)
                        {
                            if (result.Groups.Count <= 0 && result.likedPages.Count <= 0 && result.Pages.Count <= 0)
                            {
                                swipeRefreshLayout.Refreshing = false;
                            }

                            var dbDatabase = new SqLiteDatabase();

                            //Add Data
                            //=======================================
                            if (GroupsManage_Type == "Manage_UserGroups")
                            {
                                GroupsAdapter.mGroupsList =
                                    new ObservableCollection <Get_Community_Object.Group>(result.Groups);
                                GroupsAdapter.BindEnd();
                            }
                            else if (GroupsManage_Type == "Manage_MyGroups")
                            {
                                // Groups
                                if (GroupsAdapter.mGroupsList.Count > 0)
                                {
                                    //Bring new groups
                                    var listNew = result.Groups.Where(c =>
                                                                      !GroupsAdapter.mGroupsList.Select(fc => fc.GroupId).Contains(c.GroupId))
                                                  .ToList();
                                    if (listNew.Count > 0)
                                    {
                                        var chkList = listNew.Where(a => a.UserId != UserDetails.User_id).ToList();
                                        if (chkList.Count > 0)
                                        {
                                            //Results differ
                                            Classes.AddRange(GroupsAdapter.mGroupsList, chkList);
                                            GroupsAdapter.BindEnd();

                                            //Insert Or Replace Just New Data To Database
                                            if (UserID == UserDetails.User_id)
                                            {
                                                dbDatabase.Insert_Or_Replace_GroupsTable(
                                                    new ObservableCollection <Get_Community_Object.Group>(chkList));
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    var chkList = result.Groups.Where(a => a.UserId != UserDetails.User_id).ToList();
                                    if (chkList.Count > 0)
                                    {
                                        GroupsAdapter.mGroupsList =
                                            new ObservableCollection <Get_Community_Object.Group>(chkList);
                                        GroupsAdapter.BindEnd();

                                        //Insert Or Replace Just New Data To Database
                                        if (UserID == UserDetails.User_id)
                                        {
                                            dbDatabase.Insert_Or_Replace_GroupsTable(
                                                new ObservableCollection <Get_Community_Object.Group>(chkList));
                                        }
                                    }
                                }

                                //====================================

                                //Manage
                                if (ManageGroupsAdapter.mUserGroupsList.Count > 0)
                                {
                                    var chkListManage = result.Groups.Where(a => a.UserId == UserDetails.User_id)
                                                        .ToList();
                                    if (chkListManage.Count > 0)
                                    {
                                        //Bring new groups
                                        var listNew = chkListManage.Where(c =>
                                                                          !ManageGroupsAdapter.mUserGroupsList.Select(fc => fc.group_id)
                                                                          .Contains(c.GroupId)).ToList();
                                        if (listNew.Count > 0)
                                        {
                                            var list = chkListManage.Select(group =>
                                                                            new Get_User_Data_Object.Joined_Groups
                                            {
                                                id           = group.Id,
                                                user_id      = group.UserId,
                                                group_name   = group.GroupName,
                                                group_title  = group.GroupTitle,
                                                avatar       = group.Avatar,
                                                cover        = group.Cover,
                                                about        = group.About,
                                                category     = group.Category,
                                                privacy      = group.Privacy,
                                                join_privacy = group.JoinPrivacy,
                                                active       = group.Active,
                                                registered   = group.Registered,
                                                group_id     = group.GroupId,
                                                url          = group.Url,
                                                name         = group.Name,
                                                category_id  = group.CategoryId,
                                                type         = group.Type,
                                                username     = group.Username
                                            }).ToList();

                                            //Results differ
                                            Classes.AddRange(ManageGroupsAdapter.mUserGroupsList, list);
                                            ManageGroupsAdapter.BindEnd();

                                            //Insert Or Replace Just New Data To Database
                                            if (UserID == UserDetails.User_id)
                                            {
                                                dbDatabase.InsertOrReplace_ManageGroupsTable(
                                                    new ObservableCollection <Get_User_Data_Object.Joined_Groups>(list));
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    var chkListManage = result.Groups.Where(a => a.UserId == UserDetails.User_id)
                                                        .ToList();
                                    if (chkListManage.Count > 0)
                                    {
                                        var list = chkListManage.Select(group => new Get_User_Data_Object.Joined_Groups
                                        {
                                            id           = group.Id,
                                            user_id      = group.UserId,
                                            group_name   = group.GroupName,
                                            group_title  = group.GroupTitle,
                                            avatar       = group.Avatar,
                                            cover        = group.Cover,
                                            about        = group.About,
                                            category     = group.Category,
                                            privacy      = group.Privacy,
                                            join_privacy = group.JoinPrivacy,
                                            active       = group.Active,
                                            registered   = group.Registered,
                                            group_id     = group.GroupId,
                                            url          = group.Url,
                                            name         = group.Name,
                                            category_id  = group.CategoryId,
                                            type         = group.Type,
                                            username     = group.Username
                                        }).ToList();

                                        ManageGroupsAdapter.mUserGroupsList =
                                            new ObservableCollection <Get_User_Data_Object.Joined_Groups>(list);
                                        ManageGroupsAdapter.BindEnd();

                                        //Insert Or Replace Just New Data To Database
                                        if (UserID == UserDetails.User_id)
                                        {
                                            dbDatabase.InsertOrReplace_ManageGroupsTable(
                                                new ObservableCollection <Get_User_Data_Object.Joined_Groups>(list));
                                        }
                                    }
                                }

                                //====================================

                                // pages
                                if (result.Pages.Count > 0)
                                {
                                    var pagesList = new ObservableCollection <Get_Community_Object.Page>(result.Pages);

                                    //Update All Data To Database
                                    if (UserID == UserDetails.User_id)
                                    {
                                        dbDatabase.Insert_Or_Replace_PagesTable(pagesList);
                                    }
                                }

                                //====================================

                                // likedPages
                                if (result.likedPages.Count > 0)
                                {
                                    var likedPagesList =
                                        new ObservableCollection <Get_Community_Object.LikedPages>(result.likedPages);

                                    //Update All Data To Database
                                    if (UserID == UserDetails.User_id)
                                    {
                                        var list = likedPagesList.Select(page => new Get_Community_Object.Page
                                        {
                                            PageId          = page.PageId,
                                            UserId          = page.UserId,
                                            PageName        = page.PageName,
                                            PageTitle       = page.PageTitle,
                                            PageDescription = page.PageDescription,
                                            Avatar          = page.Avatar,
                                            Cover           = page.Cover,
                                            PageCategory    = page.PageCategory,
                                            Website         = page.Website,
                                            Facebook        = page.Facebook,
                                            Google          = page.Google,
                                            Vk                    = page.Vk,
                                            Twitter               = page.Twitter,
                                            Linkedin              = page.Linkedin,
                                            Company               = page.Company,
                                            Phone                 = page.Phone,
                                            Address               = page.Address,
                                            CallActionType        = page.CallActionType,
                                            CallActionTypeUrl     = page.CallActionTypeUrl,
                                            BackgroundImage       = page.BackgroundImage,
                                            BackgroundImageStatus = page.BackgroundImageStatus,
                                            Instgram              = page.Instgram,
                                            Youtube               = page.Youtube,
                                            Verified              = page.Verified,
                                            Registered            = page.Registered,
                                            Boosted               = page.Boosted,
                                            About                 = page.About,
                                            Id                    = page.Id,
                                            Type                  = page.Type,
                                            Url                   = page.Url,
                                            Name                  = page.Name,
                                            //Rating = page.Rating,
                                            Category    = page.Category,
                                            IsPageOnwer = page.IsPageOnwer,
                                            Username    = page.Username
                                        }).ToList();

                                        dbDatabase.Insert_Or_Replace_PagesTable(
                                            new ObservableCollection <Get_Community_Object.Page>(list));
                                    }
                                }
                            }

                            dbDatabase.Dispose();
                        }
                    }
                    else if (Api_status == 400)
                    {
                        if (Respond is Error_Object error)
                        {
                            var errorText = error._errors.Error_text;
                            //Toast.MakeText(this, errortext, ToastLength.Short).Show();

                            if (errorText.Contains("Invalid or expired access_token"))
                            {
                                API_Request.Logout(this);
                            }
                        }
                    }
                    else if (Api_status == 404)
                    {
                        var error = Respond.ToString();
                        //Toast.MakeText(this, error, ToastLength.Short).Show();
                    }
                }

                //Show Empty Page >>
                //===============================================================
                if (GroupsAdapter.mGroupsList.Count > 0)
                {
                    GroupsSection.Visibility     = ViewStates.Visible;
                    GroupsRecylerView.Visibility = ViewStates.Visible;
                }
                else
                {
                    GroupsSection.Visibility     = ViewStates.Gone;
                    GroupsRecylerView.Visibility = ViewStates.Gone;
                }

                //if Manage_MyGroups list count == 0 >> show empty page
                if (ManageGroupsAdapter.mUserGroupsList.Count > 0)
                {
                    Txt_Count_ManageGroups.Text = ManageGroupsAdapter.mUserGroupsList.Count.ToString();

                    ManageGroupsSection.Visibility     = ViewStates.Visible;
                    ManageGroupsRecylerView.Visibility = ViewStates.Visible;
                }
                else
                {
                    Txt_Count_ManageGroups.Text = "0";

                    ManageGroupsSection.Visibility     = ViewStates.Gone;
                    ManageGroupsRecylerView.Visibility = ViewStates.Gone;
                }

                if (GroupsAdapter.mGroupsList.Count == 0 && ManageGroupsAdapter.mUserGroupsList.Count == 0)
                {
                    Groups_Empty.Visibility = ViewStates.Visible;

                    ManageGroupsSection.Visibility     = ViewStates.Gone;
                    ManageGroupsRecylerView.Visibility = ViewStates.Gone;

                    GroupsSection.Visibility     = ViewStates.Gone;
                    GroupsRecylerView.Visibility = ViewStates.Gone;
                }
                else
                {
                    Groups_Empty.Visibility = ViewStates.Gone;
                }

                swipeRefreshLayout.Refreshing = false;
            }
            catch (Exception e)
            {
                Crashes.TrackError(e);
                Get_CommunitiesList_Group_API();
            }
        }