コード例 #1
0
        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));
        }
コード例 #2
0
        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));
            }
        }