예제 #1
0
        /// <summary>
        /// Elimina l'ordine dell'utente alla data corrente.
        /// </summary>
        /// <param name="id">ID Utente</param>
        public async Task <bool> DeleteAsync(int id)
        {
            Ordinazioni ordine = _context.Set <Ordinazioni>().SingleOrDefault(o => o.IdOrdinazione == id);

            _context.Set <Ordinazioni>().Remove(ordine);
            return(await _context.SaveChangesAsync() > 0);
        }
예제 #2
0
        /// <summary>
        /// Inserisco nuovo ordine.
        /// Se presente, cancello il precedente.
        /// </summary>
        public async Task <OrderDTO> InsertAsync(OrderDTO o)
        {
            if (o == null)
            {
                throw new ArgumentNullException("E' necessario specificare un ordine da inserire", nameof(o));
            }

            if (string.IsNullOrEmpty(o.Piatto))
            {
                throw new ArgumentException("Il piatto selezionato non può essere null o stringa vuota");
            }

            Ordinazioni row = await _context.Set <Ordinazioni>().SingleOrDefaultAsync(a => a.Data == o.Data.Date &&
                                                                                      a.Utente == o.UtenteName);

            if (row != null)
            {
                row.OraOrdinazione = o.Data.TimeOfDay;
                row.Piatto         = o.Piatto;
                row.Shottini       = o.Shottini;
                row.TipoPiatto     = o.TipoPiattoID;
                row.Zeppelin       = o.ZeppelinID;
                row.Gruppo         = o.Gruppo;
            }
            else
            {
                row = new Ordinazioni
                {
                    Data           = DateTime.Today,
                    OraOrdinazione = DateTime.Now.TimeOfDay,
                    Piatto         = o.Piatto,
                    Shottini       = o.Shottini,
                    TipoPiatto     = o.TipoPiattoID,
                    Utente         = o.UtenteName,
                    Zeppelin       = o.ZeppelinID,
                    Gruppo         = o.Gruppo
                };

                _context.Set <Ordinazioni>().Add(row);
            }

            await _context.SaveChangesAsync();

            // TODO: SignalR
            //Events.OnOrderPlaced(new Events.OrderEventArgs(o, os));

            o.IdOrdinazione = row.IdOrdinazione;

            return(o);
        }