public async Task <int> Handle(Query query) { var registroCollection = _database.GetCollectionAsQueryable <Registro>(); var result = await registroCollection .Where(r => r.EstaCarregado && query.DataInicial <= r.Data && r.Data <= query.DataFinal) .CountAsync(); return(result); }
public async Task <Resolved> Handle(Command command) { using (var session = _database.Instance.Client.StartSession()) { try { var motoristaCollection = _database.GetCollection <Motorista>(); if (_database.GetCollectionAsQueryable <Motorista>().Any(m => m.Cpf == command.Cpf)) { return(Resolved.ErrAsIEnumerable(new InvalidOperationException("Já existe um motorista cadastrado com esse CPF"))); } session.StartTransaction(); var motorista = new Motorista { Cpf = command.Cpf, Idade = command.Idade, Nome = command.Nome, Sexo = command.Sexo, TipoCnh = command.TipoCnh, PossuiVeiculoProprio = command.PossuiVeiculoProprio }; await motoristaCollection.InsertOneAsync(motorista); var registrarPassagemPeloTerminalCommand = new RegistrarPassagemPeloTerminal.Command { MotoristaId = motorista.Id, EstaCarregado = command.EstaCarregado, TipoCaminhao = command.TipoCaminhao, Origem = command.Origem, Destino = command.Destino }; await _registrarPassagemPeloTerminalHandler.Handle(registrarPassagemPeloTerminalCommand); session.CommitTransaction(); return(Resolved.Ok()); } catch (Exception ex) { session.AbortTransaction(); return(Resolved.ErrAsIEnumerable(ex)); } } }
public async Task <Resolved> Handle(Command command) { var collection = _database.GetCollection <Motorista>(); var motorista = await _database.GetCollectionAsQueryable <Motorista>().SingleOrDefaultAsync(m => m.Id == command.MotoristaId); if (motorista == null) { return(Resolved.ErrAsIEnumerable(new Exception("Não foi possível encontrar o cadastro do motorista solicitado"))); } motorista.Nome = command.Nome; motorista.Sexo = command.Sexo; motorista.Idade = command.Idade; motorista.TipoCnh = command.TipoCnh; motorista.PossuiVeiculoProprio = command.PossuiVeiculoProprio; await collection.ReplaceOneAsync(m => m.Id == command.MotoristaId, motorista); return(Resolved.Ok()); }
public async Task<ResponseModel> Handle(Query query) { var collection = _database.GetCollectionAsQueryable<Registro>(); var taskOrigens = collection .GroupBy(r => r.Origem.Nome) .Select(r => r.Key) .ToListAsync(); var taskDestinos = collection .GroupBy(r => r.Destino.Nome) .Select(r => r.Key) .ToListAsync(); await Task.WhenAll(taskOrigens, taskDestinos); return new ResponseModel { Origens = taskOrigens.Result, Destinos = taskDestinos.Result }; }
public async Task <int> Handle(Query query) { var collection = _database.GetCollectionAsQueryable <Motorista>(); return(await collection.Where(x => x.PossuiVeiculoProprio).CountAsync()); }