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))); }
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)); }
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); }
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"); } }