示例#1
0
        private async Task <ImmagineRegalo> createOrUpdateImmagineRegalo(byte[] Immagine, string IdImmagineRegalo)
        {
            ImmagineRegalo immRegalo;

            if (IdImmagineRegalo != null)
            {
                immRegalo = await dbDataContext.ImmagineRegalo.FindAsync(new Guid(IdImmagineRegalo));

                dbDataContext.ImmagineRegalo.Attach(immRegalo);
                dbDataContext.Entry(immRegalo).State = EntityState.Modified;
            }
            else
            {
                immRegalo = new ImmagineRegalo();
                dbDataContext.ImmagineRegalo.Attach(immRegalo);
                dbDataContext.Entry(immRegalo).State = EntityState.Added;
            }
            immRegalo.Immagine = Immagine;
            return(immRegalo);
        }
示例#2
0
        public async Task <IHttpActionResult> UpdateRegalo([FromUri] Guid IdRegalo, [FromBody] RegaloDtoInput RegaloDto)
        {
            //Controllo che i parametri siano valorizzati
            if (RegaloDto == null || !ModelState.IsValid || (IdRegalo == null || IdRegalo == Guid.Empty))
            {
                return(BadRequest(ModelState));
            }

            //Cerco il regalo
            Regalo regalo = await dbDataContext.Regalo.Include(x => x.ImmagineRegalo).Where(x => x.Id == IdRegalo).FirstAsync();

            //Modifico il regalo

            regalo.Cancellato          = RegaloDto.Cancellato;
            regalo.Descrizione         = RegaloDto.Descrizione;
            regalo.ImportoCollezionato = RegaloDto.ImportoCollezionato;
            regalo.Prezzo = RegaloDto.Prezzo;
            regalo.Titolo = RegaloDto.Titolo;


            if (RegaloDto.ImmagineRegalo != null)
            {
                ImmagineRegalo immagineRegalo = new ImmagineRegalo()
                {
                    Id       = (regalo.IdImmagineRegalo.HasValue ? regalo.IdImmagineRegalo.Value : new Guid()),
                    Immagine = RegaloDto.ImmagineRegalo
                };

                regalo.ImmagineRegalo = immagineRegalo;
            }


            //regalo.ImmagineRegalo.Immagine = RegaloDto.ImmagineRegalo;
            //await createOrUpdateImmagineRegalo(RegaloDto.ImmagineRegalo, regalo.IdImmagineRegalo.ToString());

            //Regalo regalo = RegaloMapper.RegaloDtoToRegalo(dto);
            ////FIXME
            //regalo.ImmagineRegalo = null;
            //regalo.Evento = null;
            //if (!ModelState.IsValid)
            //{
            //    return BadRequest(ModelState);
            //}

            //if (regalo.Id != null)
            //{
            //    ImmagineRegalo immRegalo = await createOrUpdateImmagineRegalo(dto.ImmagineRegalo, dto.IdImmagineRegalo);
            //    regalo.ImmagineRegalo = immRegalo;
            //    dbDataContext.Regalo.Attach(regalo);
            //    dbDataContext.Entry(regalo).State = EntityState.Modified;
            //}

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

            return(Ok(RegaloMapper.RegaloToRegaloDto(regalo)));
        }