public async Task <ApiResponse <Sabor> > BuscarPorId(Guid id) { try { var data = await _repository.BuscarPorId(id); return(new ApiResponse <Sabor>(Domain.TableStatic.StatusCodes.Status200OK, data)); } catch (Exception ex) { return(new ApiResponse <Sabor>(Domain.TableStatic.StatusCodes.Status500InternalServerError, ex.Message)); } }
public async Task <ApiResponse <PedidoProcesadoModel> > Adicionar(PedidoModel data) { try { var model = new Domain.Pedido { IdSabor = data.IdSabor, IdTamanho = data.IdTamanho, }; string NomesAdicionais = ""; if (data.Adicionais.Count > 0) { var adicionais = await _repositoryAdicional.GetItems(f => data.Adicionais.Contains(f.Id)); model.TempoTotal = adicionais.Sum(f => f.MinutosAdicionais); model.ValorTotal = adicionais.Sum(f => f.ValorAdicionais); NomesAdicionais = string.Join(',', adicionais.Select(f => f.Nome).ToArray()); } var sabor = await _repositorySabor.BuscarPorId(data.IdSabor); model.TempoTotal += sabor.MinutosAdicionais; var tamanho = await _repositoryTamanho.BuscarPorId(data.IdTamanho); model.TempoTotal += tamanho.MinutosAdicionais; model.ValorTotal += tamanho.Valor; foreach (var item in data.Adicionais) { var itemAdicional = new PedidoAdicional() { IdAdicional = item, Pedido = model }; _repository.Context.Entry <PedidoAdicional>(itemAdicional).State = Microsoft.EntityFrameworkCore.EntityState.Added; model.PedidoAdicionais.Add(itemAdicional); } await _repository.Adicionar(model); var pediProcessado = new PedidoProcesadoModel() { Sabor = model.Sabor.Nome, Tamanho = model.Tamanho.Nome, TempoTotal = model.TempoTotal, ValorTotal = model.ValorTotal, Personalizacoes = NomesAdicionais }; return(new ApiResponse <PedidoProcesadoModel>(Domain.TableStatic.StatusCodes.Status200OK, pediProcessado)); } catch (Exception ex) { return(new ApiResponse <PedidoProcesadoModel>(Domain.TableStatic.StatusCodes.Status500InternalServerError, ex.Message)); } }