Пример #1
0
        public static async Task <UserProfiloViewModel> ExecuteLoadCommandAsync(Guid Id)
        {
            //if (IsLoading)
            //    return;

            //IsLoading = true;

            UserProfiloViewModel userProfiloViewModel = new UserProfiloViewModel();

            userProfiloViewModel.UserId = Id;

            //Info = userInfo;
            //Nome = userInfo.Nome;

            try
            {
                AmiciClient amiciClient = new AmiciClient(await Api.ApiHelper.GetApiClient());

                userProfiloViewModel.Info = await amiciClient.GetUserInfoByIdUsersAsync(Id);

                userProfiloViewModel.Nome = userProfiloViewModel.Info.Nome;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }

            //await ExecuteLoadItemsCommand();

            //IsLoading = false;

            return(userProfiloViewModel);
        }
        //se amiciAccettati == true -> restituisce gli utenti che sono MIEI AMICI (accettato = true)
        //se amiciAccettati == false -> restituisce gli utenti che HANNO CHIESTO di essere miei amici (amicizie di cui il current è destinario, con accettato = false)
        async Task ExecuteLoadItemsCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            if (IsLoading)
            {
                return;
            }

            IsLoading = true;

            try
            {
                Items.Clear();

                AmiciClient amiciClient = new AmiciClient(await ApiHelper.GetApiClient());

                ICollection <UserInfoDto> listaUsers;

                if (SoloAccettati)
                {
                    listaUsers = await amiciClient.GetAmiciOfCurrentUserAsync();
                }
                else
                {
                    listaUsers = await amiciClient.GetRichiesteAmiciziaOfCurrentUserAsync();
                }

                foreach (var user in listaUsers)
                {
                    //if (user.PhotoUrl != null)
                    //{
                    //    using (var webClient = new WebClient())
                    //    {
                    //        byte[] imageBytes = webClient.DownloadData(user.PhotoUrl);
                    //        user.FotoProfilo = imageBytes;
                    //    }
                    //}
                    Items.Add(user);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy    = false;
                IsLoading = false;
            }
        }
        //restituisce gli utenti che hanno corrispondenza con il filtro (nome cognome contiene il filtro)
        async Task ExecuteLoadItemsCommandFiltered(string Filter)
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            if (IsLoading)
            {
                return;
            }

            IsLoading = true;

            try
            {
                Items.Clear();

                AmiciClient amiciClient = new AmiciClient(await ApiHelper.GetApiClient());

                ICollection <UserInfoDto> listaUsers;

                if (Filter != null && Filter.Length != 0)
                {
                    listaUsers = await amiciClient.GetRicercaUtentiAsync(Filter);

                    foreach (var user in listaUsers)
                    {
                        if (user.PhotoUrl != null)
                        {
                            using (var webClient = new WebClient())
                            {
                                byte[] imageBytes = webClient.DownloadData(user.PhotoUrl);
                                user.FotoProfilo = imageBytes;
                            }
                        }
                        Items.Add(user);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy    = false;
                IsLoading = false;
            }
        }
Пример #4
0
        protected async override void OnAppearing()
        {
            base.OnAppearing();

            MessagingCenter.Subscribe <EventoModifica, string>(this, "RefreshListaEventiPersonaliModifica", async(sender, arg) =>
            {
                if (!string.IsNullOrEmpty(arg))
                {
                    viewModel.Items = new ObservableCollection <EventoDtoOutput>();
                }
            });

            MessagingCenter.Subscribe <EventoInserisci, string>(this, "RefreshListaEventiPersonaliInsert", async(sender, arg) =>
            {
                if (!string.IsNullOrEmpty(arg))
                {
                    viewModel.Items = new ObservableCollection <EventoDtoOutput>();
                }
            });

            MessagingCenter.Subscribe <EventoModifica, string>(this, "RefreshListaEventiPersonaliElimina", async(sender, arg) =>
            {
                if (!string.IsNullOrEmpty(arg))
                {
                    viewModel.Items = new ObservableCollection <EventoDtoOutput>();
                }
            });


            //ricarico quando devo recepire le modifiche
            if (viewModel.Items == null || viewModel.Items.Count == 0)
            {
                viewModel.LoadItemsCommand.Execute(null);
            }

            if (amiciPreviewList == null || !amiciPreviewList.Any())
            {
                AmiciClient amiciClient           = new AmiciClient(await ApiHelper.GetApiClient());
                ICollection <UserInfoDto> collect = await amiciClient.GetAmiciCurrentUserPreviewAsync();

                amiciPreviewList = collect.ToList();
                AmiciPreviewListView.ItemsSource = amiciPreviewList;
            }


            await SetUserInfo();
        }
Пример #5
0
        private async void btnSendRequest_Clicked(object sender, EventArgs e)
        {
            AmiciClient amiciClient = new AmiciClient(await Api.ApiHelper.GetApiClient());

            try
            {
                await amiciClient.InserisciAmiciziaAsync(viewModel.Info.IdAspNetUser.ToString());

                btnSendRequest.IsVisible = false;
                btnRequestSent.IsVisible = true;
            }
            catch
            {
                await DisplayAlert(null,
                                   Helpers.TranslateExtension.ResMgr.Value.GetString("AmiciProfilo.ErrorSendRequest", CurrentCulture.Ci),
                                   Helpers.TranslateExtension.ResMgr.Value.GetString("AmiciProfilo.Ok", CurrentCulture.Ci));
            }
        }
Пример #6
0
        public static async Task <UserInfoDto> GetUserInfo()
        {
            UserInfoDto userInfo = null;

            if (Preferences.Get(UserInfoKey, null) != null)
            {
                userInfo = JsonConvert.DeserializeObject <UserInfoDto>(Preferences.Get(UserInfoKey, null));
            }

            if (userInfo == null)
            {
                AmiciClient amiciClient = new AmiciClient(await ApiHelper.GetApiClient());
                userInfo = await amiciClient.GetCurrentUserInfoAsync();

                Preferences.Set(UserInfoKey, JsonConvert.SerializeObject(userInfo));
            }

            return(userInfo);
        }
Пример #7
0
        private async void btnDeleteContact_Clicked(object sender, EventArgs e)
        {
            AmiciClient amiciClient = new AmiciClient(await Api.ApiHelper.GetApiClient());

            try
            {
                await amiciClient.AmiciziaDeleteOrDenyAsync(viewModel.Info.IdAspNetUser);

                btnConfirmDenyContact.IsVisible = true;
                btnConfirmDenyContact.IsVisible = false;
                btnSendRequest.IsVisible        = true;
                viewModel.LoadItemsCommand.Execute(null);
            }
            catch
            {
                await DisplayAlert(null,
                                   Helpers.TranslateExtension.ResMgr.Value.GetString("AmiciProfilo.ErrorGeneric", CurrentCulture.Ci),
                                   Helpers.TranslateExtension.ResMgr.Value.GetString("AmiciProfilo.Ok", CurrentCulture.Ci));
            }
        }
Пример #8
0
        async void ToolbarItem_Clicked(System.Object sender, System.EventArgs e)
        {
            string action = await DisplayActionSheet("Che cosa vuoi fare?", "Annulla", null, "Rimuovi amico");

            if (action == "Rimuovi amico")
            {
                bool answer = await DisplayAlert("Attenzione",
                                                 //Helpers.TranslateExtension.ResMgr.Value.GetString("EventoModifica.ConfirmDelete", CurrentCulture.Ci),
                                                 //Helpers.TranslateExtension.ResMgr.Value.GetString("EventoModifica.Yes", CurrentCulture.Ci),
                                                 //Helpers.TranslateExtension.ResMgr.Value.GetString("EventoModifica.No", CurrentCulture.Ci));
                                                 "Vuoi procedre con l'eliminazione?",
                                                 "Sì",
                                                 "No");

                if (answer)
                {
                    AmiciClient amiciClient = new AmiciClient(await Api.ApiHelper.GetApiClient());

                    try
                    {
                        await amiciClient.AmiciziaDeleteOrDenyAsync(viewModel.Info.IdAspNetUser);

                        btnConfirmDenyContact.IsVisible = false;
                        btnConfirmDenyContact.IsVisible = false;
                        btnSendRequest.IsVisible        = true;
                        viewModel.LoadItemsCommand.Execute(null);
                    }
                    catch
                    {
                        await DisplayAlert(null,
                                           Helpers.TranslateExtension.ResMgr.Value.GetString("AmiciProfilo.ErrorGeneric", CurrentCulture.Ci),
                                           Helpers.TranslateExtension.ResMgr.Value.GetString("AmiciProfilo.Ok", CurrentCulture.Ci));
                    }
                }
            }
        }