public ICommandResult Handle(UpdateResidentCommand command) { // Fail Fast Validation command.Validate(); if (command.Invalid) { return(new GenericCommandResult(false, "Ops, erro ao atualizar morador.", command.Notifications)); } // Cria morador var resident = _repository.GetById(command.Id, command.User); if (resident == null) { return(new GenericCommandResult(false, "Ops, erro ao atualizar morador.", command.Id)); } resident.Update(command.Name, command.BirthDate, command.Phone, command.Email); try { // Salva morador _repository.Update(resident); } catch (Exception ex) { return(new GenericCommandResult(false, "Erro inesperado!", ex.Message)); } var residentResult = new ResidentCommandResult { Name = resident.Name, BirthDate = resident.BirthDate, Cpf = resident.Cpf, Email = resident.Email, Phone = resident.Phone, User = resident.User }; return(new GenericCommandResult(true, "Morador salvo com sucesso!", residentResult)); }
public ICommandResult Handle(CreateApartmentCommand command) { // Fail Fast Validation command.Validate(); if (command.Invalid) { return(new GenericCommandResult(false, "Ops, erro ao cadastrar apartamento.", command.Notifications)); } try { // Recupera condomínio var condominium = _condominiumRepository.GetById(command.CondominiumId.Value, command.User); if (condominium == null) { return(new GenericCommandResult(false, "Ops, erro ao cadastrar apartamento.", "Condomínio não encontrado")); } // Cria apartamento var apartment = new Apartment(condominium, command.Number, command.Block, command.User); if (command.Residents.Count > 0) { foreach (var resident in command.Residents) { var res = _residentRepository.GetById(resident, command.User); apartment.AddResident(res); } } // Salva morador _repository.Create(apartment); var apartmentResult = new ApartmentCommandResult { Block = apartment.Block, //Condominium = apartment.Condominium.Name, Number = apartment.Number, User = apartment.User }; return(new GenericCommandResult(true, "Apartamento salvo com sucesso!", apartmentResult)); } catch (Exception ex) { return(new GenericCommandResult(false, "Erro inesperado!", ex.Message)); } }