Exemplo n.º 1
0
        private async void ExecuteCreateGroupCommand()
        {
            //checking for connectivity
            var network = Connectivity.NetworkAccess;

            if (network != NetworkAccess.Internet)
            {
                await MaterialDialog.Instance.SnackbarAsync(message : "Error: No internet access", actionButtonText : "OK", msDuration : 3000, configuration : App.snackBarConfiguration);

                return;
            }

            //checking for null
            if (string.IsNullOrEmpty(GroupName) || string.IsNullOrEmpty(Description))
            {
                await MaterialDialog.Instance.SnackbarAsync(message : "Error: Fill the required fields", actionButtonText : "OK", msDuration : 3000, configuration : App.snackBarConfiguration);

                return;
            }

            IsBusy = true;

            if (a == "1")
            {
                groupPic = await remoteService.UploadFile(mediaFile.GetStream(), Path.GetFileName(mediaFile.Path));
            }
            else
            {
                groupPic = "https://firebasestorage.googleapis.com/v0/b/naijaconnect-3b414.appspot.com/o/Naija%20Connect%20Images%2Fgroup_chat_picture.png?alt=media&token=547a5d56-3c2c-4811-849c-14a7f55132ed";
            }

            var group = new Group()
            {
                Name        = GroupName.Trim(),
                Description = Description.Trim(),
                Avatar      = groupPic
            };

            var createGroup = await remoteService.CreateGroup(group);

            if (!string.IsNullOrEmpty(createGroup))
            {
                var final = new Group()
                {
                    Name        = GroupName.Trim(),
                    Description = Description.Trim(),
                    Avatar      = groupPic,
                    Id          = createGroup
                };


                var create = await remoteService.UpdateGroup(final);

                IsBusy = false;
                if (create)
                {
                    var parameters = new NavigationParameters();
                    parameters.Add("groupName", final.Name);
                    parameters.Add("groupId", final.Id);
                    parameters.Add("groupAvatar", final.Avatar);
                    await NavigationService.NavigateAsync("GroupChatPage", parameters);
                }
                else
                {
                    await MaterialDialog.Instance.SnackbarAsync(message : "Error occured", actionButtonText : "OK", msDuration : 3000, configuration : App.snackBarConfiguration);

                    return;
                }
            }
            else
            {
                IsBusy = false;
                await MaterialDialog.Instance.SnackbarAsync(message : "Error occured", actionButtonText : "OK", msDuration : 3000, configuration : App.snackBarConfiguration);

                return;
            }
        }