public async Task <Response> Handle(CadastrarMesaRequest request, CancellationToken cancellationToken) { //Validar se o requeste veio preenchido if (request == null) { AddNotification("Resquest", "Preencha as informações da mesa"); return(new Response(this)); } var proprietario = _repositoryProprietario.ObterPorId(request.FkProprietario.Value); var empresa = _repositoryEmpresa.ObterPorId(Guid.Parse(proprietario.EmpresaUltimoAcesso)); var contains = empresa.Mesas.Where(x => x.Numero == request.Numero); if (contains == null) { AddNotification("Mesa", "A mesa já foi cadastrada"); return(new Response(this)); } Entities.Mesa mesa = new Entities.Mesa(request.Numero, empresa); if (IsInvalid()) { return(new Response(this)); } AddNotifications(mesa); mesa = _repositoryMesa.Adicionar(mesa); empresa.AdicionarMesa(mesa); _repositoryEmpresa.Editar(empresa); try { _unitOfWork.SaveChanges(); } catch (Exception ex) { this.AddNotification("Adicionar Empresa", "Erro ao persistir dados: " + ex.Message); } if (IsInvalid()) { return(new Response(this)); } var result = new { Id = mesa.Id, Nome = mesa.Numero, Empresa = mesa.Empresa.Fantasia }; var response = new Response(this, result); return(await Task.FromResult(response)); }
public async Task <Response> Handle(CadastrarItemRequest request, CancellationToken cancellationToken) { if (request == null) { AddNotification("Resquest", "Preencha as informações do Item"); return(new Response(this)); } var empresa = _repositoryEmpresa.ObterPorId(request.FkEmpresa.Value); string urlFoto = ""; if (empresa == null) { AddNotification("Empresa", "Empresa inválida"); return(new Response(this)); } //if (request.Foto != null) //{ // urlFoto = "Imagens/" + _imagem.UploadImage(request.Foto).Result; //} Entities.Item item = new Entities.Item(request.Nome, request.Descricao, request.Valor, urlFoto, request.Tipo, empresa); if (IsInvalid()) { return(new Response(this)); } AddNotifications(item); item = _repositoryItem.Adicionar(item); empresa.AdicionarItem(item); _repositoryEmpresa.Editar(empresa); try { _unitOfWork.SaveChanges(); } catch (Exception ex) { this.AddNotification("Adicionar Item", "Erro ao persistir dados: " + ex.Message); } var result = new { Nome = item.Nome, Descricao = item.Descricao, Valor = item.Valor, UrlFoto = item.Foto, Empresa = item.Empresa.Fantasia }; var response = new Response(this, result); return(await Task.FromResult(response)); }
public async Task <Response> Handle(AvaliarRestauranteRequest request, CancellationToken cancellationToken) { if (request == null) { AddNotification("Resquest", "Preencha as informações da avaliação"); return(new Response(this)); } var usuario = _repositoryUsuario.ObterPorId(request.FkUsuario.Value); var empresa = _repositoryEmpresa.ObterPorId(request.FkEmpresa.Value); Entities.Avaliacao avaliacao = new Entities.Avaliacao(request.Estrelas, request.Comentario, empresa, usuario); if (IsInvalid()) { return(new Response(this)); } avaliacao = _repositoryAvaliacao.Adicionar(avaliacao); empresa.AdicionarAvaliacao(avaliacao); _repositoryEmpresa.Editar(empresa); usuario.AdicionarAvaliacao(avaliacao); _repositoryUsuario.Editar(usuario); try { _unitOfWork.SaveChanges(); } catch (Exception ex) { this.AddNotification("Avaliar Empresa", "Erro ao persistir dados: " + ex.Message); } var result = new { Id = avaliacao.Id, Estrelas = avaliacao.Estrelas, Comentario = avaliacao.Comentario, Usuario = new { Id = avaliacao.Usuario.Id, Nome = avaliacao.Usuario.Nome, Foto = avaliacao.Usuario.Foto } }; var response = new Response(this, result); return(await Task.FromResult(response)); }