public async Task <List <ResponseModel> > Handle(Query query) { var registroCollection = _database.GetCollection <Registro>(); var motoristaCollection = _database.GetCollection <Motorista>(); var result = await registroCollection .AsQueryable() .Where(r => !r.EstaCarregado && r.Data >= query.DataInicial && r.Data <= query.DataFinal) .Join(motoristaCollection, registro => registro.MotoristaId, motorista => motorista.Id, (registro, motorista) => new { Registro = registro, Motorista = motorista }) .ToListAsync(); var response = result.GroupBy(x => x.Motorista.Cpf, (key, values) => new ResponseModel { Motorista = values.First().Motorista, Registros = values.Select(r => r.Registro) }) .ToList(); return(response); }
public Task <List <Registro> > Handle(Query query) { var registroCollection = _database.GetCollection <Registro>(); int page = query.Page ?? 1; int pageSize = query.PageSize ?? 10; return(registroCollection.AsQueryable() .Where(r => r.MotoristaId == query.MotoristaId) .Skip((page - 1) * pageSize) .Take(pageSize) .ToListAsync()); }
private async Task FetchPastHashes() { var col = _mongo.GetCollection <BsonDocument>("pastebin", "pastes"); var hashes = await col.Find(Builders <BsonDocument> .Filter.Empty) .Project("{pb_key : 1}") .Sort(new BsonDocument("pb_key", 1)) .ToListAsync(); hashes.ForEach(x => { _hashCache.Add((string)x["pb_key"]); }); }
public Task Handle(Command command) { var registroCollection = _database.GetCollection <Registro>(); return(registroCollection.InsertOneAsync(new Registro { MotoristaId = command.MotoristaId, Origem = command.Origem, Destino = command.Destino, EstaCarregado = command.EstaCarregado, TipoCaminhao = command.TipoCaminhao, Data = DateTime.Now })); }
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 Task <Motorista> Handle(Query query) { var collection = _database.GetCollection <Motorista>(); return(collection.AsQueryable().SingleOrDefaultAsync(m => m.Cpf == query.Cpf)); }