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(CadastrarEmpresaRequest request, CancellationToken cancellationToken) { if (request == null) { AddNotification("Resquest", "Preencha as informações da Empresa"); return(new Response(this)); } if (_repositoryEmpresa.Existe(x => x.Cnpj == request.Cnpj)) { AddNotification("Resquest", "Empresa já está cadastrada"); return(new Response(this)); } var proprietario = _repositoryProprietario.ObterPorId(request.FkProprietario.Value); if (proprietario == null) { AddNotification("Resquest", "O proprietário não é válido"); return(new Response(this)); } Entities.Empresa empresa = new Entities.Empresa(request.RazaoSocial, request.Fantasia, request.Cnpj, request.Email, request.Telefone, request.Categoria, request.Endereco, proprietario); if (IsInvalid()) { return(new Response(this)); } AddNotifications(empresa); empresa = _repositoryEmpresa.Adicionar(empresa); proprietario.AdicionarEmpresa(empresa); proprietario.EmpresaUltimoAcesso = empresa.Id.ToString(); _repositoryProprietario.Editar(proprietario); try { _unitOfWork.SaveChanges(); } catch (Exception ex) { this.AddNotification("Adicionar Empresa", "Erro ao persistir dados: " + ex.Message); } var result = new { RazaoSocial = empresa.RazaoSocial, Fantasia = empresa.Fantasia, Cnpj = empresa.Cnpj, Telefone = empresa.Telefone, Proprietario = empresa.Proprietario.Nome }; var response = new Response(this, result); return(await Task.FromResult(response)); }