public void ValidaExistencia(Mesa itemGravar)
 {
     if (itemGravar == null)
     {
         serviceResult = new ServiceResult();
         serviceResult.Success = false;
         serviceResult.Messages.Add(new ServiceResultMessage() { Message = MensagemBusiness.RetornaMensagens("Mesa_NaoEncontrada") });
     }
 }
 public void SalvaMesa(Mesa itemGravar)
 {
     LimpaValidacao();
     ValidateService(itemGravar);
     ValidaRegrasSalvar(itemGravar);
     if (IsValid())
     {
         using (MesaData data = new MesaData())
         {
             data.SalvaMesa(itemGravar);
             serviceResult = new ServiceResult();
             serviceResult.Success = true;
             serviceResult.Messages.Add(new ServiceResultMessage() { Message = MensagemBusiness.RetornaMensagens("Mesa_SalvaMesaOK") });
         }
     }
 }
Esempio n. 3
0
        public void SalvaMesa(Mesa itemGravar)
        {
            Mesa itemBase = Context.Mesas.Include("Pedidos").Include("Pedidos.PedidoPratos").Where(f => f.Id == itemGravar.Id).FirstOrDefault();
            if (itemBase == null)
            {
                itemBase = Context.Mesas.Create();
                Context.Entry<Mesa>(itemBase).State = System.Data.Entity.EntityState.Added;
            }
            AtualizaPropriedades<Mesa>(itemBase, itemGravar);

            foreach (Pedido itemPedido in new List<Pedido>(itemBase.Pedidos))
            {
                if (!itemGravar.Pedidos.Where(f => f.Id == itemPedido.Id).Any())
                {
                    foreach (PedidoPrato itemPedidoPrato in new List<PedidoPrato>(itemPedido.PedidoPratos))
                    {
                        Context.Entry<PedidoPrato>(itemPedidoPrato).State = System.Data.Entity.EntityState.Deleted;
                    }
                    Context.Entry<Pedido>(itemPedido).State = System.Data.Entity.EntityState.Deleted;
                }
            }

            foreach (Pedido itemPedido in new List<Pedido>(itemGravar.Pedidos))
            {
                Pedido itemBasePedido = !itemPedido.Id.HasValue ? null : itemBase.Pedidos.Where(f => f.Id == itemPedido.Id).FirstOrDefault();
                if (itemBasePedido == null)
                {
                    itemBasePedido = Context.Pedidos.Create();
                    itemBase.Pedidos.Add(itemBasePedido);
                }
                AtualizaPropriedades<Pedido>(itemBasePedido, itemPedido);

                foreach (PedidoPrato itemPedidoPrato in new List<PedidoPrato>(itemPedido.PedidoPratos))
                {
                    PedidoPrato itemBasePedidoPrato = !itemPedidoPrato.Id.HasValue ? null : itemBase.Pedidos.Select(f => f.PedidoPratos.Where(g => g.Id == itemPedidoPrato.Id).FirstOrDefault()).FirstOrDefault();
                    if (itemBasePedidoPrato == null)
                    {
                        itemBasePedidoPrato = Context.PedidoPratos.Create();
                        itemBase.Pedidos.FirstOrDefault().PedidoPratos.Add(itemBasePedidoPrato);
                    }
                    AtualizaPropriedades<PedidoPrato>(itemBasePedidoPrato, itemPedidoPrato);
                }
            }
            Context.SaveChanges();
            itemGravar.Id = itemBase.Id;
        }
        /// <summary>
        /// Retorna a mesa com id solicidado
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Mesa Get(int id)
        {
            Mesa ResultadoBusca = new Mesa();
            try
            {
                //API
                ResultadoBusca = biz.RetornaMesa_Id(id);

                if (!biz.IsValid())
                    throw new InvalidDataException();
            }
            catch (InvalidDataException)
            {
                GeraErro(HttpStatusCode.InternalServerError, biz.serviceResult);
            }
            catch (Exception ex)
            {
                GeraErro(HttpStatusCode.BadRequest, ex);
            }

            return ResultadoBusca;
        }
 public void ValidaRegrasSalvar(Mesa itemGravar)
 {
     if (itemGravar.Situacao == (int)enumSituacaoMesa.Fechada)
         itemGravar.Pedidos.FirstOrDefault().ValorTotal = itemGravar.Pedidos.FirstOrDefault().PedidoPratos.Where(a => a.Situacao != (int)enumSituacaoPedidoPrato.Cancelado).Sum(a => a.Prato.Preco);
 }