private async void Save_Clicked(object sender, EventArgs e)
        {
            EventoInserisciActivityIndicator.IsVisible = true;

            EventoClient eventoClient = new EventoClient(await ApiHelper.GetApiClient());

            if (img == null)
            {
                EventoCategoria cat = (EventoCategoria)pkCategoria.SelectedItem;
                img = cat.Immagine;
            }
            //Costruisco l'evento
            EventoDtoInput evento = new EventoDtoInput()
            {
                Titolo            = entTitolo.Text,
                Descrizione       = edDescrizione.Text,
                IdCategoriaEvento = ((EventoCategoria)pkCategoria.SelectedItem).Id.Value,
                DataEvento        = dpDataEvento.Date,
                ImmagineEvento    = img
            };

            //Inserisco l'evento
            EventoDtoOutput eventoInserito = await eventoClient.InserisciEventoAsync(evento);

            MessagingCenter.Send(this, "RefreshListaEventiPersonaliInsert", "OK");
            EventoInserisciActivityIndicator.IsVisible = false;

            //Torno alla pagina di lista
            await Navigation.PopAsync();

            //Redirect alla modifica dell'evento appena inserito, in questo modo l'utente può aggiungere regali
            //await Navigation.PushAsync(new EventoModifica(new EventoDetailViewModel(eventoInserito)));
        }
Exemple #2
0
        async void ToolbarItem_Clicked(System.Object sender, System.EventArgs e)
        {
            EventoModificaActivityIndicator.IsVisible = true;

            EventoDtoInput eventoDtoInput = new EventoDtoInput()
            {
                Cancellato        = viewModel.Item.Cancellato,
                DataEvento        = viewModel.Item.DataEvento,
                Descrizione       = viewModel.Item.Descrizione,
                IdCategoriaEvento = viewModel.Item.IdCategoriaEvento,
                ImmagineEvento    = viewModel.Item.ImmagineEvento,
                Titolo            = viewModel.Item.Titolo
            };

            Guid id = new Guid(viewModel.Item.Id);

            //Faccio update dell'evento
            var eventoInserito = await eventoClient.UpdateEventoAsync(new Guid(viewModel.Item.Id), eventoDtoInput);

            MessagingCenter.Send(this, "RefreshListaEventiPersonaliModifica", "OK");

            EventoModificaActivityIndicator.IsVisible = false;
            await DisplayAlert(null,
                               Helpers.TranslateExtension.ResMgr.Value.GetString("EventoModifica.SalvataggioOk", CurrentCulture.Ci),
                               Helpers.TranslateExtension.ResMgr.Value.GetString("EventoModifica.Ok", CurrentCulture.Ci));
        }
Exemple #3
0
        public async Task <IHttpActionResult> InserisciEvento(EventoDtoInput Evento)
        {
            //Controllo se il modello è valido
            if (Evento == null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //Creo l'immagine
            ImmagineEvento immagineEvento = new ImmagineEvento()
            {
                Id       = new Guid(),
                Immagine = Evento.ImmagineEvento
            };

            //Salvo l'immagine sul DB
            dbDataContext.ImmagineEvento.Add(immagineEvento);

            //Creo l'Evento
            Evento evento = new Evento()
            {
                Id                = new Guid(),
                Titolo            = Evento.Titolo,
                Descrizione       = Evento.Descrizione,
                IdUtenteCreazione = new Guid(User.Identity.GetUserId()),
                DataCreazione     = DateTime.Now,
                DataModifica      = DateTime.Now,
                DataEvento        = Evento.DataEvento,
                Cancellato        = false,
                IdImmagineEvento  = immagineEvento.Id,
                IdCategoriaEvento = Evento.IdCategoriaEvento
            };

            //Salvo l'evento sul DB
            dbDataContext.Evento.Add(evento);

            try
            {
                await dbDataContext.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (EventoExists(evento.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(Ok(EventoMapper.EventoToEventoDto(evento)));
            //In questo modo mi da un 201 da FE, e si blocca l'esecuizione: come si può risolvere?
            //CreatedAtRoute("EventoCreate", new { id = evento.Id }, evento);
        }
Exemple #4
0
        public async Task <IHttpActionResult> UpdateEvento([FromUri] Guid IdEvento, [FromBody] EventoDtoInput Evento)
        {
            //Controllo che i parametri siano valorizzati
            if (Evento == null || !ModelState.IsValid || (IdEvento == null || IdEvento == Guid.Empty))
            {
                return(BadRequest(ModelState));
            }

            //Cerco l'evento
            Evento evento = await dbDataContext.Evento.Include(x => x.ImmagineEvento).Where(x => x.Id == IdEvento).FirstAsync();

            if (evento == null)
            {
                return(NotFound());
            }

            //Modifico l'evento
            evento.Titolo       = Evento.Titolo;
            evento.Descrizione  = Evento.Descrizione;
            evento.DataModifica = DateTime.Now;
            evento.DataEvento   = Evento.DataEvento;
            evento.Cancellato   = Evento.Cancellato;
            //L'immagine esiste sempre
            evento.ImmagineEvento.Immagine = Evento.ImmagineEvento;

            try
            {
                //Salvo le modifiche sul DB.
                await dbDataContext.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EventoExists(evento.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            //return StatusCode(HttpStatusCode.NoContent);
            return(Ok(EventoMapper.EventoToEventoDto(evento)));
            //CreatedAtRoute("UpdateEvento", new { id = evento.Id }, evento);
        }
        async void TapGestureRecognizer_Tapped(System.Object sender, System.EventArgs e)
        {
            if (!(String.IsNullOrEmpty(entTitolo.Text)) && !(String.IsNullOrEmpty(edDescrizione.Text)) &&
                !(String.IsNullOrEmpty(entCategoria.Text)) && !(String.IsNullOrEmpty(entDataEvento.Text)))
            {
                EventoInserisciActivityIndicator.IsVisible = true;

                EventoClient eventoClient = new EventoClient(await ApiHelper.GetApiClient());

                if (img == null)
                {
                    EventoCategoria cat = (EventoCategoria)pkCategoria.SelectedItem;
                    img = cat.Immagine;
                }
                //Costruisco l'evento
                EventoDtoInput evento = new EventoDtoInput()
                {
                    Titolo            = entTitolo.Text,
                    Descrizione       = edDescrizione.Text,
                    IdCategoriaEvento = ((EventoCategoria)pkCategoria.SelectedItem).Id.Value,
                    DataEvento        = dpDataEvento.Date,
                    ImmagineEvento    = img
                };

                //Inserisco l'evento
                EventoDtoOutput eventoInserito = await eventoClient.InserisciEventoAsync(evento);

                MessagingCenter.Send(this, "RefreshListaEventiPersonaliInsert", "OK");
                EventoInserisciActivityIndicator.IsVisible = false;

                await DisplayAlert("Nuovo evento inserito", "Inserimento avvenuto con successo", "Ok");

                //Torno alla pagina di lista
                await Navigation.PopAsync();
            }
            else
            {
                await DisplayAlert("Campi obbligatori", "Devi valorizzare tutti i campi prima di inserire un nuovo evento", "Ok");
            }
        }