コード例 #1
0
        public ICommandResult Handle(CreateCondominiumCommand command)
        {
            // Fail Fast Validation
            command.Validate();
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Ops, erro ao cadastrar condomínio.", command.Notifications));
            }

            // Cria condomínio
            var condominium = new Condominium(command.Name, command.Street, command.Number, command.Neighborhood, command.City, command.State, command.Country, command.ZipCode, command.User);

            try
            {
                // Salva condomínio
                _repository.Create(condominium);
            }
            catch (Exception ex)
            {
                return(new GenericCommandResult(false, "Erro inesperado!", ex.Message));
            }

            var condominiumResult = new CondominiumCommandResult
            {
                City         = condominium.City,
                Country      = condominium.Country,
                Name         = condominium.Name,
                Neighborhood = condominium.Neighborhood,
                Number       = condominium.Number,
                State        = condominium.State,
                Street       = condominium.Street
            };

            return(new GenericCommandResult(true, "Condomínio salvo com sucesso!", condominiumResult));
        }
コード例 #2
0
        public ICommandResult Handle(AddApartmentCommand command)
        {
            // Fail Fast Validation
            command.Validate();
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Ops, erro ao adicionar apartamento ao condomínio.", command.Notifications));
            }

            // Recupera apartamento
            var apartment = _apartmentRepository.GetById(command.ApartmentId, command.User);

            if (apartment == null)
            {
                return(new GenericCommandResult(false, "Ops, erro ao adicionar apartamento ao condomínio.", command.ApartmentId));
            }

            // Recupera condomínio
            var condominium = _repository.GetById(command.Id, command.User);

            if (condominium == null)
            {
                return(new GenericCommandResult(false, "Ops, erro ao adicionar apartamento ao condomínio.", command.Id));
            }

            condominium.AddApartment(apartment);

            try
            {
                // Salva condomínio
                _repository.Update(condominium);
            }
            catch (Exception ex)
            {
                return(new GenericCommandResult(false, "Erro inesperado!", ex.Message));
            }

            var condominiumResult = new CondominiumCommandResult
            {
                City         = condominium.City,
                Country      = condominium.Country,
                Name         = condominium.Name,
                Neighborhood = condominium.Neighborhood,
                Number       = condominium.Number,
                State        = condominium.State,
                Street       = condominium.Street
            };

            return(new GenericCommandResult(true, "Condomínio salvo com sucesso!", condominiumResult));
        }
コード例 #3
0
        public ICommandResult Handle(UpdateCondominiumCommand command)
        {
            // Fail Fast Validation
            command.Validate();
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Ops, erro ao atualizar condomínio.", command.Notifications));
            }

            // Hidrata condomínio
            var condominium = _repository.GetById(command.Id, command.User);

            if (condominium == null)
            {
                return(new GenericCommandResult(false, "Ops, erro ao atualizar condomínio.", command.Id));
            }

            condominium.Update(command.Name, command.Street, command.Number, command.Neighborhood, command.City, command.State, command.Country, command.ZipCode);

            try
            {
                // Atualiza Condomínio
                _repository.Update(condominium);
            }
            catch (Exception ex)
            {
                return(new GenericCommandResult(false, "Erro inesperado!", ex.Message));
            }

            var condominiumResult = new CondominiumCommandResult
            {
                City         = condominium.City,
                Country      = condominium.Country,
                Name         = condominium.Name,
                Neighborhood = condominium.Neighborhood,
                Number       = condominium.Number,
                State        = condominium.State,
                Street       = condominium.Street
            };

            return(new GenericCommandResult(true, "Condomínio atualizado com sucesso!", condominiumResult));
        }