public Task <bool> Create(ClienteMongo customer)
 {
     return(Task.Run(() =>
     {
         _db.GetCollection <ClienteMongo>(_customerCollection).InsertOne(customer);
         return true;
     }));
 }
        public Task <bool> Update(ClienteMongo customer)
        {
            return(Task.Run(() =>
            {
                var filter = Builders <ClienteMongo> .Filter.Where(_ => _.Id == customer.Id);

                _db.GetCollection <ClienteMongo>(_customerCollection).ReplaceOne(filter, customer);

                return true;
            }));
        }
 public ClienteMongo ToCustomerEntity(ClienteMongo entity)
 {
     return(new ClienteMongo
     {
         Id = this.Id,
         Email = entity.Email,
         Nome = entity.Nome.Equals(this.Nome) ? entity.Nome : this.Nome,
         Idade = entity.Idade.Equals(this.Idade) ? entity.Idade : this.Idade,
         Telefones = GetNewOnes(entity.Telefones).Select(phone => new TelefoneMongo {
             AreaCode = phone.AreaCode, Number = phone.Number
         }).ToList()
     });
 }
        public async void Handle(IEvent @event)
        {
            ClienteAtualizadoEvent customerUpdatedEvent = (ClienteAtualizadoEvent)@event;

            ClienteMongo customer = await readModelRepository.GetCustomer(@event.Id);

            await readModelRepository.Update(new ClienteMongo()
            {
                Id        = customerUpdatedEvent.Id,
                Email     = customer.Email,
                Nome      = customerUpdatedEvent.Nome != null ? customerUpdatedEvent.Nome : customer.Nome,
                Idade     = customerUpdatedEvent.Idade != 0 ? customerUpdatedEvent.Idade : customer.Idade,
                Telefones = customerUpdatedEvent.Telefones != null ? customerUpdatedEvent.Telefones.Select(x =>
                                                                                                           new TelefoneMongo()
                {
                    Type     = x.Type,
                    AreaCode = x.AreaCode,
                    Number   = x.Number
                }).ToList() : customer.Telefones
            });

            logger.Info("A new CustomerUpdatedEvent has been processed: {0} ({1})", customerUpdatedEvent.Id, customerUpdatedEvent.Version);
        }
        public void Update(ClienteMongo customer)
        {
            var filter = Builders <ClienteMongo> .Filter.Where(_ => _.Id == customer.Id);

            _db.GetCollection <ClienteMongo>(_customerCollection).ReplaceOne(filter, customer);
        }
 public void Create(ClienteMongo customer)
 {
     _db.GetCollection <ClienteMongo>(_customerCollection).InsertOne(customer);
 }