Fedora Chrome Не Может Получить Доступ К Localhost Или 127.0.0.1, Когда Отключен

У меня есть локальный httpd или Apache open. Он работает в режиме онлайн, но не в автономном режиме... Как я могу заставить его работать?

Подробнее (4 ответа)

google-chrome localhost fedora

С++ Выполнение Функции Для Объекта Карты, Но Не Изменение Значения

У меня есть карта с указателями на объекты (для полиморфизма) они используют идентификатор строки как свой ключ. Каждый из этих объектов содержит объект внутри них, когда я пытаюсь изменить значение содержащегося объекта, функция работает, но как только она покидает функцию, значение не изменяется. Я думал, что это может быть связано с тем, что итератор или метод get являются постоянными, но я изменил это и все еще имею ту же проблему.

   void System::addUserFunds()
{
    string userID;
    float fundsToAdd;

    cout << "Which ID: ";
    cin >> userID;
    cin.ignore();
    if (userFound(userID))
    {
        map<string, User*>::iterator it = UsersMap.find(userID); // 
        cout << "How much do you want to add to " << 
        it->second->getUserID() << " card: $";            
        cin >> fundsToAdd;
        cin.ignore();
        cout << "\nCurrent funds  user is : $" << it->second->getCard()().getFunds();
        if (it->second->getCard().addFunds(fundsToAdd) == true)
        {
            cout << "\nAdded $" << fundsToAdd << " to " << userID << " card";
            cout << "\nFunds remaining for " << userID << ": $" << it->second->
            getCard().getFunds();
        }
        else 
        {
            displayMenu();
        }

    }
    else 
    {
        cout << "\nSorry, this user does not exist";
        displayMenu();
    }
} 

Метод addFunds() внутри объекта Card

bool Card::addFunds(float extraFunds)
{
    if ((int)extraFunds % 5 == 0)
    {
        if ((funds + extraFunds) <= Card::getMaxLimit())
        {
            cout << "\nEntering addFunds function";
            funds += extraFunds;
            cout << "\n Funds are now: $" << funds;
            displayFunds();
            return true;
        }
        else
        {
            cout << "\nSorry, max funds allowed is $100.00\n";
            return false;
        }
    }
    else
    {
        cout << "\nSorry, you can only add in multiples of $5.00\n";
        return false;
    }


}

Поэтому, когда я запускаю это, он определенно имеет нужный Пользователь, он входит в функцию, он изменяет стоимость средств, но по мере выхода из функции - средства пользовательской карты не изменяются.

Цените любую помощь, которую я могу получить.

Подробнее (1 ответ)

c++ map

Вызов Метода Производного Класса Из Указателя Базового Класса

//Parent.h
class Parent
{
public:
    virtual void foo() = 0;
};

//Child.h
class Child : public Parent
{
public:
    virtual void foo(){cout << "inside function foo()" << endl;}
    virtual void bar(){cout << "inside function bar()" << endl;};    
};

int main( int argc, char** argv ){
    Parent* pa = new Child;
    pa->foo();
    pa->bar(); //Error, class Parent have no member bar
    return 0;
}

Как избежать этой ошибки, кроме добавления этих функций в класс Parent

Подробнее (4 ответа)

c++

Не Удается Отправить Данные На Мой Сервер С Помощью Asynchttpclient (Переменные String Не Передаются)

Я новичок в разработке Android (и программирование в целом), и я использую разработку Android, чтобы научить себя, как программировать (что я узнаю); поэтому я в настоящее время работаю над программой, которая получает 4 разных ввода данных от пользователя и отправляет их через HTTP-запрос на мой локальный малиновый pi. Два входа поступают из прядильщиков, и они всего лишь целые числа, а два других - из блока EditText который просто получает числа в качестве входов, хотя я использовал строки для получения данных из EditText. Найдите краткое изложение приведенного выше кода.

//From MainActivity class and file.
    public static int data1;
    public static int data2;
    public static String data3;
    public static String data4;

Затем пользователь вводит данные в заданные данные... переменные меняются (я тестировал это, постоянно распечатывая их на Toasts и TextView). Переменные задаются и вызывают из другого файла и класса " dataProcessingFile ". Так я вызвал и установил их в файле MainActivity.

dataProcessingFile dpFob = new dataProcessingFile();
dpFob.setData1(position); //position from the spinner

одинаковые для всей информации только разные функции для каждого, получение данных также одно и то же - и оно работает

 dpFob.getData1(); /* usually convert it to string for display with  
 String.valueOf(dpFob.getData1()); */

Все работает нормально, пока здесь: часть, где я должен отправить данные на свой сервер. Я сделал еще один файл и класс, импортировал все библиотеки, в которых я нуждался, никакой ошибки компиляции, но когда я получаю связанные с String переменные в основной функции этого нового класса, они регистрируются как пустые, даже когда я показываю их с TextView, все еще пустым; тем не менее, все выпущенные переменные появляются... вот кодирование:

package com.example.tswelo.myPackageName;

import android.util.Log;

import com.loopj.android.http.*;
import cz.msebera.android.httpclient.*;

public class SendRequest {


public void runSendRequest()

{
    AsyncHttpClient client = new AsyncHttpClient();
    client.get("http://192.168.43.20/cgi-bin/index.cgi", new     
    AsyncHttpResponseHandler() {
        dataProcessingFile secActObj = new dataProcessingFile ();
        RequestParams params = new RequestParams();
        @Override
        public void onStart() {

            params.put("PN_VOU",secActObj.getData3() + " " +  
            secActObj.getData4()); // problem arises here
            params.put("UC_AC",secActObj.getData1() + " " + 
            secActObj.getData2());
            Log.e("params",  secActObj.getData3()+ " " +secActObj.getData4()  
            ); // problem arises here, shows nothing, just an empty space!
            Log.e("params2", secActObj.getData1() + " " + 
            secActObj.getData2());

        }
        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[]  
response) {
            // called when response HTTP status is "200 OK"

        }

        @Override
        public void onFailure(int statusCode, Header[] headers, byte[] 
    errorResponse, Throwable e) {
            // called when response HTTP status is "4XX" (eg. 401, 403, 404)

        }

        @Override
        public void onRetry(int retryNo) {

        }
    });

}
}

Длина цифр данных 3 составляет 12 - 16 номеров, а данные 4 - 10 номеров. Когда я попытался преобразовать их в целые числа, программа разбилась! я использовал
Integer.valueOf(getData3()); // и то же самое для data4.

Подробнее (1 ответ)

java variables android class android-asynctask

Исправить Структуру Матрицы Ssrs

Я работаю над небольшим проектом. Я пытаюсь отобразить все результаты в одной строке без значений NULL. Я написал небольшое выражение, чтобы удалить значения Null уже "= IIF (IsNothing (Fields! RegisterNo.Value), True, False)". Тем не менее, строки, кажется, движутся на один уровень вниз, поскольку они отображаются на изображении ResultMatrix1. Я хочу, чтобы результаты были на одном уровне. Не могли бы вы рассказать мне, возможно ли это и как я могу это достичь. Это как-то связано с группировками или чем-то еще?

enter image description here

Проектные группировки enter image description here

Подробнее (1 ответ)

visual-studio-2012 reporting-services ssrs-2012

Нужен Липкий Заголовок И Нижний Колонтитул, Когда Содержимое Слишком Велико

Я создал пользовательскую таблицу, используя div (было только решение из-за слишком сложного поведения). Но у меня проблема с заголовком и нижним колонтитулом.

Таблица html в основном проста:

<div class="table">
  <div class="header"></div>
  <div class="content"></div>
  <div class="footer"></div>
</div>

Мне нужно следующее: когда содержимое внутри таблицы не слишком велико для просмотра без полосы прокрутки, заголовок будет только сверху, а нижний колонтитул чуть ниже содержимого (поэтому он не будет прикреплен к нижней части контейнера).
Но когда содержимое таблицы расширяется (либо при загрузке страницы с новыми данными, либо путем расширения содержимого таблицы с помощью javascript/jQuery), мне нужно, чтобы заголовок находился в верхней части контейнера, а нижний колонтитул внизу контейнера, в то время как содержимое может прокручиваться без перекрытия верхнего/нижнего колонтитула.

Я много искал по этому поводу, но не нашел достойного решения, есть ли способ решить это (как можно проще) с помощью css и/или javascript/jquery?

Изменить Вот базовый пример того, что я имею в виду: jsFiddle

Если вы нажмете span в примере, верхний и нижний колонтитулы должны быть зафиксированы в верхней и нижней частях контейнера. Но как определить увеличение размера?

Подробнее (2 ответа)

javascript jquery css footer sticky-footer

Использование Ввода Json В Ruby-Методе На Rails

Я использую jQuery для вызова AJAX рубинового метода в моем контроллере. Javascript выглядит примерно так:

    var latLongJSON =
    {
        "address": [
        {"lat" : 50,
        "long" : 50} ]
    };

    var returnedAddresses;

    $.ajax({
        type: "GET",
        data: latLongJSON,
        url: "map/getaddresses",
        success: function(data) {
            returnedAddresses = JSON.parse(data);
        }
    });

Затем в моем методе getaddresses мой параметр, проходящий, выглядит следующим образом:

Parameters: {"address"=>"[object Object]"}

Я не уверен, что с этим делать. Я новичок в Ruby, и я не уверен, что мне нужно преобразовать это в нечто другое или что. В идеале я хочу иметь возможность передавать несколько наборов lat/long в массиве "address", а затем иметь возможность перебирать те, что содержатся в моем Ruby-коде.

Подробнее (1 ответ)

json javascript jquery ruby ruby-on-rails

Как Получить Файл И Sha-1 Дайджест Загруженного Файла?

У меня есть эта модель в приложении Django:

class Image(models.Model):
    image_file = models.ImageField(
        upload_to='images/', 
        width_field='width',
        height_field='height'
    )
    width = models.PositiveIntegerField(
        blank = True, null = True,
        editable = False
    )
    height = models.PositiveIntegerField(
        blank = True, null = True,
        editable = False
    )

    sha1 = models.CharField(max_length=32, blank=True, editable=False)
    filesize = models.PositiveIntegerField(blank=True, null=True, editable=False)

Теперь я могу загружать изображения через админ-сайт Django. И свойства width и height сохраняются в базе данных автоматически при ее загрузке из-за специальных параметров ImageField.

Но мне также хотелось бы автоматически выработать дайджест загруженного файла размер и SHA-1 и сохранить эти свойства тоже. Как мне это сделать?

Подробнее (2 ответа)

python django file-upload

Каков Наилучший Способ Отображения Пользовательского Контента В Зависимости От Параметров Url С Помощью Jquery?

У меня была простая форма, которая отображает представленные данные в следующем div с помощью jQuery

  <form id="form" action="">
    <div class="form-group">
      <input type="text" class="form-control" name="firstname" />
    </div>
    <div class="form-group">
      <input type="text" class="form-control" name="lastname" />
    </div>
    <button id="button" class="btn btn-default">Generate</button>
  </form>

Когда вы отправляете эту кнопку, содержимое отображается в div с именем #results благодаря небольшому фрагменту jQuery:

$(document).ready(function(){
  $("button").click(function(){
    var data = $("form").serializeArray();
    $.each(data, function(i, field){
        $("#results").append(field.name + ": " + field.value + "<br>");
    });
  return false;
  });   
});

Когда я сериализую массив, URL-адрес выглядит следующим образом ?firstname=john&lastname=doe

Мне бы хотелось, чтобы при доступе к этому URL-адресу данные, отображаемые в моем #result div, учитывали параметры URL-адреса и отображали их соответствующим образом. Любая подсказка?

Подробнее (1 ответ)

javascript jquery url-parameters

Частично Сопоставление Результата Namednativequery С Классом

У меня есть класс @Entity Person, у которого есть несколько полей, и я хотел бы сопоставить результат нескольких @NamedNativeQuery с классом Person однако запросы, которые я запускаю, не возвращают значения для каждого поля класса Person. Когда я пытаюсь запустить запрос, я получаю следующие ошибки:

[error] o.h.u.JDBCExceptionReporter - Invalid column name bar.
[error] play - Cannot invoke the action, eventually got an error: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query

Мой класс настроен аналогично этому:

@NamedNativeQueries({
    @NamedNativeQuery(
        name = "getBirthdate",
        //Returns values for {idnumber, name, birthdate}
        query = "EXEC dbo.proc_get_birthdate :name",
        resultClass = Person.class
    ),
    @NamedNativeQuery(
        name = "getBar",
        //Returns values for {idnumber, name, bar}
        query = "EXEC dbo.proc_get_bar :name",
        resultClass = Person.class
    )
})
@Entity
public class Person {
    @Id
    @Column(name = "idnumber")
    private int idNumber;
    @Column(name = "name")
    private String name;
    @Column(name = "birthdate")
    private String birthdate;
    @Column(name = "foo")
    private String foo;
    @Column(name = "bar")
    private String bar;

    //All appropriate getter and setter methods are implemented
}

Я дважды проверял, и все столбцы класса Person действительно существуют в запрашиваемой таблице.

Мой фактический класс намного больше, и из-за этого и некоторых проблем с безопасностью я не хочу, чтобы мои запросы возвращались в поле КАЖДЫЙ, и я надеюсь, что есть простой способ просто дать им значение null если значение не является возвращенный запросом. Я попытался установить для каждого поля значение null в объявлении (пример ниже), но это тоже не сработало.

@Column(name = "bar")
private String bar = null;

Мне бы действительно не пришлось создавать индивидуальный класс для каждого отдельного запроса, который мне нужно запустить, поэтому, если я пытаюсь сделать это, возможно, любая помощь будет принята с большой благодарностью. Заранее спасибо.

Подробнее (1 ответ)

java hibernate jpa playframework-2.2

Время Соединения С Общедоступным Портом Виртуальной Машины Azure

Я использую Azure Virtual Machine (образ Windows Server 2008 R2), предоставленный из галереи, и создал портал Public и частный порт с помощью портала. Я сделал удаленный вход в виртуальную машину, и я запускаю приложение TCP-сервера внутри виртуальной машины (TCP-сервер связывается с частным портом виртуальной машины). Проблема, с которой я сталкиваюсь, заключается в том, что я не могу подключить ее через общедоступный IP-адрес и порт (с внешней машины). Я создал входящее правило в брандмауэре VM, где я включаю соединение с частным портом виртуальной машины. Я попытался воссоздать виртуальную машину, а также новые порты. Все еще проблема сохраняется. Еще одна вещь, которую я наблюдал, заключается в том, что мой TCP-клиент может подключаться к порту RemoteDesktop VM, а также к порту PowerShell. Но не подключается к порту, который я создал через портал. Pls предлагает, что может быть неправильно?

Примечание. Я также заметил некоторое странное поведение. Я включил все порты для своего приложения TCP-сервера в правило входящего трафика брандмауэра и обнаружил, что какой-то неизвестный IP (был похож на внутренний IP-адрес Azuure) подключается к моему серверу. Почему это происходит?

Подробнее (1 ответ)

port tcp azure azure-virtual-machine

Получение Неподдерживаемого Исключения При Попытке Addall В Mutablelist

Android Studio 3.2
kotlin_version 1.2.41 

Я получаю mutablelist UnsupportedOperationException addAll.

Я передаю MutableList, поэтому не уверен, почему я получаю это время исполнения.

Когда я печатаю имена классов, я получаю следующие классы коллекций

I/System.out: class java.util.ArrayList
I/System.out: class java.util.Collections$EmptyList

Это метод mapper, возвращающий MutableList

override fun map(cursor: Cursor): MutableList<InsectDataModel> {
        val insectDataModelList: MutableList<InsectDataModel> = mutableListOf()

        cursor.moveToFirst()
        while(cursor.moveToNext()) {
            InsectDataModel().let {
                it.friendlyName = cursor.getString(cursor.getColumnIndexOrThrow(InsectContract.COLUMN_FRIENDLY_NAME))
                it.scientificName = cursor.getString(cursor.getColumnIndexOrThrow(InsectContract.COLUMN_SCIENTIFIC_NAME))
                it.dangerLevel = cursor.getInt(cursor.getColumnIndexOrThrow(InsectContract.COLUMN_DANGER_LEVEL))

                insectDataModelList.add(it)
            }
        }

        cursor.close()
        return insectDataModelList
    }

Класс адаптера, который будет загружать список с помощью addAll

class InsectAdapter(private var insectList: MutableList<InsectDataModel>): RecyclerView.Adapter<InsectAdapter.CustomInsectHolder>() {
    fun loadInsects(insectList: MutableList<InsectDataModel>) {
        println(insectList.javaClass)
        println(this.insectList.javaClass)

        this.insectList.addAll(insectList) /* Unsupported Exception here */

        notifyDataSetChanged()
    }
}

Вызов insectAdapter

public void loadAllInsects(final Cursor cursor) {
    insectInteractorMapper = new InsectInteractorMapperImp();
    insectAdapter.loadInsects(insectInteractorMapper.map(cursor));
}

Подробнее (1 ответ)

java collections kotlin

Настройка Multi Instance Mq

Я пытаюсь настроить Multi Instance MQ. Я настроил NFS и смог увидеть активные и стоящие экземпляры с помощью dspmq -x. Однако я сомневаюсь, что после этой установки, как продолжить.

  1. Как настроить каналы (каналы). Я должен использовать свойство CONNAME для этого. например, CONNAME(<ip><port>,<ip><port>). Я не знаю, как это сделать.

  2. Сколько слушателей мне нужно начинать.

Для нормального режима MQ я выполняю следующие шаги:

 1. crtmqm QM 
 2. strmqm QM 
 3. runmqsc QM 
 4. runmqlsr -m QM -t tcp -p 1125 
 5. runmqsc QM 
 6. define channel(SYSTEM.ADMIN.SVRCONN) chltype(SVRCONN) mcauser('mqm')

Для многоэкземпляра MQ, какие изменения я должен выполнить для следующих шагов. Есть много хороших документов, доступных для Multi Instance MQ, но большинство из них ограничено тем, как настроить диспетчер очереди с помощью multi-instance. Мог бы кто-нибудь, пожалуйста, направить меня на оставшиеся шаги.

Любое руководство очень ценится.

РЕДАКТИРОВАТЬ

Спасибо Шаши и Морагу за руководство.

Я создал разные слушатели на порту 1600 на обоих серверах. Я создал канал ниже:

DEFINE CHANNEL (MYCHANNEL) CHLTYPE (CLNTCONN) TRPTYPE (TCP) CONNAME ('IP11600), IP2 (1600)')

DEFINE CHANNEL (MYCHANNEL) CHLTYPE (SVRCONN) TRPTYPE (TCP) MCAUSER ('')

Ниже приведен отдельный java-код, который я использую для размещения сообщения в очереди.

public class MutilInstanceMq 
{
     public static void main(String[] args)
     {
         sendMsg("Test Message");
     }

     public static void sendMsg(String msg)
     {
         MQQueueConnectionFactory connectionFactory = null;
         QueueConnection queueConn = null;
         QueueSession queueSession = null;
         QueueSender queueSender = null;
         TextMessage message = null;

         try
         {
             connectionFactory = new MQQueueConnectionFactory();
             connectionFactory.setConnectionNameList("<IP1>(1600), <IP2>(1600)");
             connectionFactory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
             connectionFactory.setQueueManager("MYQM1");
             connectionFactory.setChannel("MYCHANNEL"); 
             queueConn = connectionFactory.createQueueConnection(" ","password");
             queueSession = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); 
             queueSender = queueSession.createSender(queueSession.createQueue("MYQ"));  
             queueSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);  
             message = queueSession.createTextMessage(msg);
             message.setJMSCorrelationID("12345");
             queueSender.send(message);        
             queueConn.close(); 
         } 
         catch (Exception e)
         {
             e.printStackTrace();
         }
     }  
}

С приведенным выше кодом я получаю исключение при создании соединения.

> com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: Failed to
> connect to queue manager 'MYQM1' with connection mode 'Client' and
> host name 'IP1(1600),IP2(1600)'. Check the queue manager is
> started and if running in client mode, check there is a listener
> running. Please see the linked exception for more information.

Детальная трассировка стека стека:

    com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: Failed to connect to queue manager 'MYQM1' with connection mode 'Client' and host name 'IP1(1600),IP2(1600)'. Check the queue manager is started and if running in client mode, check there is a listener running. Please see the linked exception for more information.
    at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:608)
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:236)
    at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:440)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:7062)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6453)
    at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:295)
    at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6230)
    at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:144)
    at MutilInstanceMq.sendMsg(MutilInstanceMq.java:40)
    at MutilInstanceMq.main(MutilInstanceMq.java:17)
Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2543' ('MQRC_STANDBY_Q_MGR').
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:223)
    ... 8 more
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2543;AMQ9204: Connection to host 'IP2(1600)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2543;AMQ9487: Remote queue manager is a standby queue manager instance. [3=MYCHANNEL]],3=IP2(1600),5=RemoteConnection.analyseErrorSegment]
    at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:2010)
    at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1227)
    at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:355)
    ... 7 more
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2059;AMQ9204: Connection to host 'IP1(1600)' rejected. [3=IP1(1600)]
    at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1980)
    ... 9 more

Где я ошибаюсь? Тем временем я отключил аутентификацию канала и смог подключиться к очереди.

Подробнее (2 ответа)

ibm-mq

R: Использовать Аргументы Функции В Качестве Имен Для Вспомогательных Элементов Списка

Вот упрощенный пример того, что я пытаюсь сделать

set.seed(1)
a <- rnorm(10)
b <- rnorm(10)

asdf<-function(vec1,vec2){
  mylist <- list(sums = c(vec1 = sum(a), vec2 = sum(b)),
                 products = c(vec1 = prod(a), vec2 = prod(b)))
  return(mylist)
}

asdf(a,b)

Вот результат:

$sums
vec1     vec2 
1.322028 2.488450 
$products
vec1         vec2 
0.0026236813 0.0003054751 

Имена элементов списка основаны на именах, которые я указал при определении функции, а не на фактических входах, используемых в функции. Это имеет смысл, в общем, но я хотел бы знать, как изменить это поведение для конкретной проблемы.

Мой желаемый результат, учитывая входы a и b, будет

$sums
a        b 
1.322028 2.488450 

$products
a            b 
0.0026236813 0.0003054751 

Какими бы ни были входные данные, будь они c(1,2,3,3,3,123) и c(2,1,1,5,7,1) или rnorm(10) и rpois(10), должны быть возвращены на выходе.

Я знаю, как сделать переименование после выполнения функции, но я хочу, чтобы именование произошло внутри функции. Я смотрел на другие вопросы о SO, но у меня ничего не получилось.

Несколько вещей, которые я пробовал без успеха.

asdf<-function(vec1,vec2){
  name1<- deparse(substitute(vec1))
  name2<- deparse(substitute(vec2))
  mylist <- list(sums = c(name1 = sum(a), name2 = sum(b)),
                 products = c(name1 = prod(a), name2 = prod(b)))
  return(mylist)
}

asdf<-function(vec1,vec2){ 
  mylist <- list(sums = c(name1 = sum(a), name2 = sum(b)),
                 products = c(name1 = prod(a), name2 = prod(b)))
  assign(names(mylist(vec1,vec2)$sums,
         c(deparse(substitute(vec1)),deparse(substitute(vec2)))))
  return(mylist)
}

Кажется, мне, возможно, придется использовать get или assign или match.call, но я вне этой лиги.

Я чувствую себя немного похожим на dunce, читающего некоторые из этих страниц справки. Если я не знаю достаточно, чтобы понять страницы справки, ну, я не так хорош в R, как я и думал.

Подробнее (1 ответ)

function list r names

Согласованность Данных Websocket С Задержкой

Предположим, что у меня есть интерфейс JavaScript (например, Angular.js), основанный на Java сервер (Spring, работающий на Tomcat, например) и система управления базами данных (SAP HANA In-Memory, в моем дело). Например, у меня есть графики, которые могут изменяться относительно быстро.

Мне интересно, как может выглядеть эффективная и быстрая архитектура. Обычно вы отправляете целую коллекцию объектов в пользовательский интерфейс или просто отправляете дельта?

В моем случае согласованность данных в пользовательском интерфейсе очень важна для того, чтобы приложение работало должным образом, но с низкой задержкой, особенно когда дело доходит до слияния данных.

Когда дело доходит до согласованности, я часто делаю SELECT из базы данных на вставке и снова читаю всю коллекцию объектов, но мои опасения состоят в том, что это не масштабируется.

Существует ли общий подход к этой проблеме или даже существующим структурам?

Изменение: В настоящее время это около 300 объектов с несколькими целыми атрибутами и перекрестными ссылками, которые могут меняться и перестраиваться в миллисекундах, но в будущем могут достигать 10000. Мой вызов здесь - связь между интерфейсом и внутренним интерфейсом, поэтому интерфейс всегда имеет согласованный набор данных в режиме реального времени.

Подробнее (1 ответ)

java websocket hana messaging

Как Создать Зависимое Выпадающее Меню В Mvc С#

Я создал одно раскрывающееся меню, используя функцию ViewBag. Я хочу передать идентификатор выбранного параметра (в раскрывающемся списке) таким образом, чтобы выпадающее меню заполняло его, что соответствует этому идентификатору. раскрывающийся список 1, являющийся государством 2, являющимся городом. Когда пользователь выбирает государство, город должен быть заполнен в другом раскрывающемся списке. Существуют различные методы, которые я видел в Интернете (jquery), но я хочу реализовать этот метод. В базе данных я связывал таблицы городов и состояний с использованием ссылок на внешние ключи.

 public ActionResult AddEmployees()
    {            
    Employees obj = new Employees();
    List<ViewAllStates_Result> list = new List<ViewAllStates_Result>();
    list = objmodel.ViewAllStates().ToList();
    ViewBag.State = list;         
    return View(obj);
    }

и на странице просмотра

   @Html.DropDownListFor(m => m.States,new 
    SelectList(ViewBag.State,"Statename","Statename"))

Подробнее (1 ответ)

c# drop-down-menu model-view-controller crud entity-framework

Неисправность Оболочки Gitlab

Я не разработчик ruby, поэтому мне очень сложно понять этот язык... Но я получаю эту ошибку при попытке запустить rake install на gitlab. Я использую postgresql, и я следил за руководством по установке. Все драгоценные камни установлены без проблем.

 root@gitlab-server:/home/git/gitlab# cd /home/git/gitlab && sudo -u git -H bune exec rake gitlab:shell:install REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production --trace
 ** Invoke gitlab:shell:install (first_time)
 ** Invoke environment (first_time)
 ** Execute environment
 rake aborted!
 NoMethodError: undefined method 'each' for "\\#":String
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:150:in 'resolve_all'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:69:in 'resolve'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.4/lib/active_record/core.rb:46:in 'configurations='
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.4/lib/active_record/railtie.rb:117:in 'block (2 levels) in <class:Railtie>'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:38:in 'instance_eval'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:38:in 'execute_hook'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:28:in 'block in on_load'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:27:in 'each'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:27:in 'on_load'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.4/lib/active_record/railtie.rb:116:in 'block in <class:Railtie>'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/railties-4.2.4/lib/rails/initializable.rb:30:in 'instance_exec'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/railties-4.2.4/lib/rails/initializable.rb:30:in 'run'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/railties-4.2.4/lib/rails/initializable.rb:55:in 'block in run_initializers'
 /usr/local/lib/ruby/2.1.0/tsort.rb:226:in 'block in tsort_each'
 /usr/local/lib/ruby/2.1.0/tsort.rb:348:in 'block (2 levels) in each_strongly_connected_component'
 /usr/local/lib/ruby/2.1.0/tsort.rb:427:in 'each_strongly_connected_component_from'
 /usr/local/lib/ruby/2.1.0/tsort.rb:347:in 'block in each_strongly_connected_component'
 /usr/local/lib/ruby/2.1.0/tsort.rb:345:in 'each'
 /usr/local/lib/ruby/2.1.0/tsort.rb:345:in 'call'
 /usr/local/lib/ruby/2.1.0/tsort.rb:345:in 'each_strongly_connected_component'
 /usr/local/lib/ruby/2.1.0/tsort.rb:224:in 'tsort_each'
 /usr/local/lib/ruby/2.1.0/tsort.rb:205:in 'tsort_each'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/railties-4.2.4/lib/rails/initializable.rb:54:in 'run_initializers'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/railties-4.2.4/lib/rails/application.rb:352:in 'initialize!'
 /home/git/gitlab/config/environment.rb:5:in '<top (required)>'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:274:in 'require'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:274:in 'block in require'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:240:in 'load_dependency'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:274:in 'require'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/railties-4.2.4/lib/rails/application.rb:328:in 'require_environment!'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/railties-4.2.4/lib/rails/application.rb:457:in 'block in run_tasks_blocks'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in 'call'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in 'block in execute'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in 'each'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in 'execute'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:179:in 'block in invoke_with_call_chain'
 /usr/local/lib/ruby/2.1.0/monitor.rb:211:in 'mon_synchronize'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:172:in 'invoke_with_call_chain'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:201:in 'block in invoke_prerequisites'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:199:in 'each'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:199:in 'invoke_prerequisites'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:178:in 'block in invoke_with_call_chain'
 /usr/local/lib/ruby/2.1.0/monitor.rb:211:in 'mon_synchronize'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:172:in 'invoke_with_call_chain'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in 'invoke'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:150:in 'invoke_task'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in 'block (2 levels) in top_level'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in 'each'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in 'block in top_level'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:115:in 'run_with_threads'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:100:in 'top_level'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:78:in 'block in run'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:176:in 'standard_exception_handling'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:75:in 'run'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/bin/rake:33:in '<top (required)>'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/bin/rake:23:in 'load'
 /home/git/gitlab/vendor/bundle/ruby/2.1.0/bin/rake:23:in '<main>'
 Tasks: TOP => gitlab:shell:install => environment

Подробнее (1 ответ)

git gitlab ruby rubygems

Нумерованные Списки Не Работают С Использованием Php, Ckeditor И Outlook

Когда я пишу текст с использованием CKEditor в своем приложении и отформатирую его как нумерованный список, он отображается правильно, например

Answers to your questions:
  1. First Answer
  2. Second Answer

а html позади -

<p><span style="color:#1f497d">Answers to your questions:</span></p>

<ol>
    <li><span style="color:#1f497d">First Answer</span></li>
    <li><span style="color:#1f497d">Second Answer</span></li>
</ol>

но когда я отправляю этот текст в Outlook (моя текущая версия - 2016), он не показывает числа, а текст нумерованных элементов списка отформатируется в меньшем размере шрифта, а затем другой текст, как показано на изображении ниже,

введите описание изображения здесь

Когда я проверяю код позади с помощью "show source", он отображается следующим образом

<p style="margin: 0;padding: 0;font-size: 100%;vertical-align: bottom;font-family: Arial, Verdana, sans-serif;line-height:1.2"><span style="color:#1f497d">Answers to your questions</span></p>

<ol style="margin-right:0px;margin: 0;padding: 0;font-size: 100%;vertical-align: bottom;font-family: Arial, Verdana, sans-serif;line-height:1.2">
    <li style="margin: 0;padding: 0;font-family: Arial, Verdana, sans-serif;line-height:1.4;vertical-align:middle;font-size:12px"><span style="color:#1f497d">First Answer</span></li>
    <li style="margin: 0;padding: 0;font-family: Arial, Verdana, sans-serif;line-height:1.4;vertical-align:middle;font-size:12px"><span style="color:#1f497d">Second Answer</span></li>
</ol>

Возможно, Outlook не понимает тег или у вас есть какие-либо другие предложения для меня, что может быть проблемой в этом случае?

Я ценю любую помощь!

Подробнее (1 ответ)

html php format outlook ckeditor

Интеграция С Полосой Ios Ecommerce Анализ С Использованием Javascript-Кода Javascript

Пожалуйста, помогите, если вы знаете, как интегрировать эти программы. Я потратил 3 дня, пытаясь обойти эту проблему. сильный текст

Я создаю платформу электронной коммерции в своем приложении для принятия платежей по кредитным картам и Apple Pay. В этот процесс включены два контроллера viewControllers: BagTableViewController и AddCreditCardViewController. Также есть JavaScript для кода Parse Cloud. Я включил весь код.

Мои стручки обновлены и вернули Parse JavaScript SDK до версии 1.5.0, потому что синтаксический анализ не обновил свои библиотеки.

Моя текущая проблема возникает, когда я пытаюсь авторизовать кредитную карту в AddCreditCardViewController. После ввода тестовой информации кредитной карты, предоставленной Stripe, пользователь затем нажимает кнопку Авторизация.

Когда я нажимаю "Авторизовать", Stripe создает токены и клиенты, но не взимает плату с клиента. Вместо этого я получаю эту ошибку в Xcode:

[Болты] Предупреждение: BFTask обнаружил исключение в блоке продолжения. Такое поведение не рекомендуется и будет удалено в будущем выпуске. Caught Exception: *** - [__ NSPlaceholderDictionary initWithObjects: forKeys: count:]: попытка вставить нулевой объект из объектов [1]

В моих попытках отладить эту проблему я нашел эту строку как точку, где вместо точки ошибки инициируется точка останова.

NSDictionary *params = @{@"chargeCustomer":customerId, @"orderId":weakSelf.order.objectId};

Это имеет смысл, потому что плата не создается на Stripe, потому что ошибка происходит на этой линии, а следующая строка - это PFCloud callFuctionInBackround, чтобы зарядить клиента.

Я могу найти очень мало информации об этой ошибке, но я считаю, что передаю неверную информацию в NSDictionary для * params.

Может кто-нибудь помочь мне здесь? Я полностью потерял

//  BagTableViewController.h
//  Created by Chris Stahl on 6/28/16.
//  Copyright © 2016 Memory Jar. All rights reserved.

#import <UIKit/UIKit.h>
@interface BagTableViewController : UITableViewController
@end   

//  BagTableViewController.m
//  Created by Chris Stahl on 6/28/16.
//  Copyright © 2016 Memory Jar. All rights reserved.

    #import "BagTableViewController.h"
    #import "OrderItemTableViewCell.h"
    #import "Constants.h"
    #import "User.h"
    #import "Order.h"
    #import "OrderItem.h"
    #import "Product.h"
    #import "UserProfileTableViewController.h"
    #import "UserPaymentMethodTableViewController.h"
    #import "PaymentMethod.h"
    #import "AddCreditCardViewController.h"
    #import "SVProgressHUD/SVProgressHUD.h"
    #import "PassKit/PassKit.h"

    @interface BagTableViewController () <PKPaymentAuthorizationViewControllerDelegate>
    @property (nonatomic, weak) IBOutlet UILabel *orderNoLabel;
    @property (nonatomic, weak) IBOutlet UILabel *orderDateLabel;
    @property (nonatomic, weak) IBOutlet UILabel *totalLabel;
    @property (nonatomic, weak) IBOutlet UILabel *totalTextLabel;

    @property (nonatomic, weak) IBOutlet UIButton *payWithCCButton;
    @property (nonatomic, weak) IBOutlet UIButton *payWithApplePayButton;
    @property (nonatomic, strong) Order *order;
    @property (nonatomic, weak) NSArray *creditCards;
    @property (nonatomic) NSDecimalNumber *amount;
    @property (nonatomic, strong) PKPaymentRequest *paymentRequest;
    @end

    @implementation BagTableViewController

    -(void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        if ([User currentUser]) {
            [self queryForUnfinishedOrder];
        }
    }

    - (void)viewDidLoad {
        [self.refreshControl addTarget:self action:@selector(queryForUnfinishedOrder) forControlEvents:UIControlEventValueChanged];
    }

    -(void)viewWillDisappear:(BOOL)animated {
        if (self.order && self.order.isDirty) {
            [self.order saveInBackground];
        }
    }

    -(IBAction)queryForUnfinishedOrder {
        self.order = nil; //to get ride of the cache
        PFQuery *orderQuery = [Order queryForCustomer:[User currentUser] orderStatus:ORDER_NOT_MADE];
        __weak typeof(self) weakSelf = self;
        [orderQuery getFirstObjectInBackgroundWithBlock:^(PFObject *order, NSError *error){
            if ([weakSelf.refreshControl isRefreshing]) {
                [weakSelf.refreshControl endRefreshing];
            }
            if (!error) {
                if (order) {
                    weakSelf.order = (Order *)order;
                    weakSelf.orderNoLabel.text = @"";
                    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
                    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
                    [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
                    weakSelf.orderDateLabel.text = [dateFormatter stringFromDate:[NSDate date]];
                    weakSelf.totalLabel.text = [self.order friendlyTotal];
                    [weakSelf updateUI];
                } else {
                    [weakSelf updateUI];
                }

            } else {
                [weakSelf updateUI];
            }
        }];
    }

    -(void)updateUI {
        BOOL shouldClear = self.order == nil;
        if (shouldClear) {
            self.orderNoLabel.text = NSLocalizedString(@"Your bag is empty.", @"");
            self.orderDateLabel.text = @"";
            self.totalLabel.text = @"";
            self.totalTextLabel.text = @"";
            self.payWithApplePayButton.hidden = YES;
            self.payWithCCButton.hidden = YES;
            self.payWithApplePayButton.enabled = NO;
            self.payWithCCButton.enabled = NO;
        } else {
            self.totalTextLabel.text = NSLocalizedString(@"Total: ", @"");
            self.payWithApplePayButton.hidden = NO;
            self.payWithCCButton.hidden = NO;
            self.payWithApplePayButton.enabled = YES;
            self.payWithCCButton.enabled = YES;
        }
        [self.tableView reloadData];
    }

    #pragma Mark --- APPLE PAY PROCESS
    -(IBAction)onApplePay:(id)sender{
        NSString *merchantId = kAppleMerchatID;
        self.paymentRequest = [Stripe paymentRequestWithMerchantIdentifier:merchantId];
        if ([Stripe canSubmitPaymentRequest:self.paymentRequest]) {
            [self.paymentRequest setRequiredShippingAddressFields:PKAddressFieldPostalAddress];
            [self.paymentRequest setRequiredBillingAddressFields:PKAddressFieldPostalAddress];
            self.paymentRequest.paymentSummaryItems = [self summaryItemsForShippingMethod:nil];
            PKPaymentAuthorizationViewController *auth = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:self.paymentRequest];
            auth.delegate = self;
            if (auth) {
                [self presentViewController:auth animated:YES completion:nil];
            } else
                [SVProgressHUD showErrorWithStatus:NSLocalizedString(@"Something Wrong", @"Something Wrong")];
        } else {
            [SVProgressHUD showErrorWithStatus:NSLocalizedString(@"Apple Pay is not enabled. Please enable your Apple Pay or Pay with Credit Card.", @"")];
        }
    }
    -(void)paymentAuthorizationViewController:(nonnull PKPaymentAuthorizationViewController *) controller didAuthorizePayment:(nonnull PKPayment *)payment completion:(nonnull void (^)(PKPaymentAuthorizationStatus))completion{
        [self handlePaymentAuthorizationWithPayment:payment completion:nil];
    }
    -(void)paymentAuthorizationViewControllerDidFinish:(nonnull PKPaymentAuthorizationViewController *)controller {
        [self dismissViewControllerAnimated:YES completion:nil];
        [self queryForUnfinishedOrder];
    }
    - (void)handlePaymentAuthorizationWithPayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion {
        [[STPAPIClient sharedClient] createTokenWithPayment:payment
                                                 completion:^(STPToken *token, NSError *error) {
                                                     if (error) {
                                                         completion(PKPaymentAuthorizationStatusFailure);
                                                         return;
                                                     }
                                                     [self createBackendChargeWithToken:token completion:completion];
                                                 }];
    }
    - (void)createBackendChargeWithToken:(STPToken *)token completion:(void (^)(PKPaymentAuthorizationStatus))completion {
        [self chargeWithToken:token.tokenId];
    }
    -(void)chargeWithToken:(NSString *)tokenId {
        [self.order saveInBackgroundWithBlock:^(BOOL success, NSError *error){
            if (!error) {
                __weak typeof(self) weakSelf = self;
                NSDictionary *params = @{@"chargeToken":tokenId, @"orderId":weakSelf.order.objectId};
                [PFCloud callFunctionInBackground:@"chargeToken" withParameters:params block:^(NSString *message, NSError *error){
                    if (!error) {
                        [weakSelf queryForUnfinishedOrder];

                    }
                }];
            }
        }];

    }

    #pragma mark - Credit Card Process
    -(IBAction)onPayWithCreditCard:(id)sender{
        if ([[User currentUser] isShippingAddressCompleted]) {
            [self inputCreditCard];
        } else {
            UserProfileTableViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"UserProfileTableViewController"];
            [self.navigationController pushViewController:viewController animated:YES];
        }
    }

    - (void)inputCreditCard {
        AddCreditCardViewController *addCreditCardViewController = (AddCreditCardViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"AddCreditCardViewController"];
            __weak typeof(self) weakSelf = self;
            addCreditCardViewController.finishBlock = ^(NSString *customerId){
                [weakSelf charge:customerId];
            };
        [self.navigationController pushViewController:addCreditCardViewController animated:YES];
        }

    -(void)charge:(NSString *)customerId {
        [self.order saveInBackgroundWithBlock:^(BOOL success, NSError *error){
            if (!error) {
                __weak typeof(self) weakSelf = self;
                NSDictionary *params = @{@"chargeCustomer":customerId, @"orderId":weakSelf.order.objectId};
                [PFCloud callFunctionInBackground:@"chargeCustomer" withParameters:params block:^(NSString *message, NSError *error){
                    if (!error) {
                        [weakSelf queryForUnfinishedOrder];
                    }
                }];
            }
        }];
    }

    - (NSArray *)summaryItemsForShippingMethod:(PKShippingMethod *)shippingMethod {
        NSMutableArray *purchasedItems = [NSMutableArray arrayWithCapacity:[self.order.items count]];
        for (OrderItem *item in self.order.items) {
            double total = item.quantity * item.product.unitPrice;
            NSDecimalNumber *price = [NSDecimalNumber decimalNumberWithMantissa:total exponent:-2 isNegative:NO];
            PKPaymentSummaryItem *purchasedItem = [PKPaymentSummaryItem summaryItemWithLabel:item.product.name amount:price];
            [purchasedItems addObject:purchasedItem];
        }
        return [NSArray arrayWithArray:purchasedItems];
    }


    -(IBAction)onStepper:(id)sender {
        UIStepper *stepper = (UIStepper *)sender;
        NSInteger index = stepper.tag - 100;
        NSMutableArray *orderItems = [NSMutableArray arrayWithArray:self.order.items];
        OrderItem *orderItem = orderItems[index];
        orderItem.quantity = (int)stepper.value;
        if ((int)stepper.value == 0) {
            [orderItems removeObjectAtIndex:index];
        } else {
            [orderItems replaceObjectAtIndex:index withObject:orderItem];
        }
        if ([orderItems count] == 0) {
            [self showDeleteAlert];
        } else {
            self.order.items = [orderItems copy];
            [self.tableView reloadData];
            self.totalLabel.text = [self.order friendlyTotal];
        }
    }

    #pragma mark - Table view data source
    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 80.0;
    }
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
    }
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.order.items count];
    }

    - (OrderItemTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        OrderItemTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BagItemCell" forIndexPath:indexPath];
        if (self.order) [cell configureItem:self.order.items[indexPath.row] tag:indexPath.row];
        else [cell configureItem:nil tag:100+indexPath.row];
        return cell;
    }

    -(void)showDeleteAlert {
        UIAlertController* alert = [UIAlertController alertControllerWithTitle:NSLocalizedString
                                    (@"Empty Bag",@"")
                                                                       message:NSLocalizedString(@"Are you sure you want to empty your bag?",@"")
                                                                preferredStyle:UIAlertControllerStyleAlert];
        __weak typeof(self) weakSelf = self;
        UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString
                                        (@"Yes",@"") style:UIAlertActionStyleDefault
                                                              handler:^(UIAlertAction * action) {
                                                                  [weakSelf.order deleteInBackgroundWithBlock:^(BOOL success, NSError *error){
                                                                      if (!error) {
                                                                          [weakSelf queryForUnfinishedOrder];
                                                                      } }];
                                                              }];
        UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString
                                       (@"cancel",@"") style:UIAlertActionStyleCancel
                                                             handler:^(UIAlertAction * action) {}];
        [alert addAction:defaultAction];
        [alert addAction:cancelAction];
        [self presentViewController:alert animated:YES completion:nil];
    }
    @end

//  AddCreditCardViewController.h
//  Created by Chris Stahl on 6/28/16.
//  Copyright © 2016 Memory Jar. All rights reserved.

#import <UIKit/UIKit.h>
@class AddCreditCardViewController;
typedef void (^AddCreditCardViewControllerDidFinish)(NSString *customerId);
@interface AddCreditCardViewController : UIViewController
@property (nonatomic, copy) AddCreditCardViewControllerDidFinish finishBlock;
@end

//  AddCreditCardViewController.m
//  Created by Chris Stahl on 6/28/16.
//  Copyright © 2016 Memory Jar. All rights reserved.

#import "AddCreditCardViewController.h"
#import "Stripe/Stripe.h"
#import "User.h"
#import "PaymentMethod.h"

@interface AddCreditCardViewController ()<STPPaymentCardTextFieldDelegate>
@property (nonatomic, weak) IBOutlet STPPaymentCardTextField *paymentView;
@property (weak, nonatomic) UIActivityIndicatorView *activityIndicator;
@end

@implementation AddCreditCardViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onCancel:)];
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Authorize", @"") style:UIBarButtonItemStylePlain target:self action:@selector(onAuthorize:)];

    UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    activityIndicator.hidesWhenStopped = YES;
    self.activityIndicator = activityIndicator;
    [self.view addSubview:activityIndicator];
}
- (void)paymentView:(STPPaymentCardTextField *)paymentView withCard:(STPPaymentCardTextField *)card isValid:(BOOL)valid {
    self.navigationItem.rightBarButtonItem.enabled = valid;
}
- (void)paymentCardTextFieldDidChange:(STPPaymentCardTextField *)textField {
    self.navigationItem.rightBarButtonItem.enabled = textField.isValid;
}
- (void)onCancel:(id)sender {
    [self.navigationController popViewControllerAnimated:YES];
}


#pragma mark - Authorize the payment (get paid)

- (void)onAuthorize:(id)sender {
    if (![self.paymentView isValid]) {
        return;
    }

    STPCardParams *card = [[STPCardParams alloc] init];
        card.number = self.paymentView.cardParams.number;
        card.expMonth = self.paymentView.cardParams.expMonth;
        card.expYear = self.paymentView.cardParams.expYear;
        card.cvc = self.paymentView.cardParams.cvc;

    __weak typeof(self) weakSelf = self;

    [[STPAPIClient sharedClient] createTokenWithCard:card
                                          completion:^(STPToken *token, NSError *error) {
                                              if (error) {
                                              } else {
                                                  User *user = [User currentUser];
                                                  NSDictionary *stripeCustomerDictionary = @{@"tokenId":token.tokenId, @"customerEmail":user.email};


      [PFCloud callFunctionInBackground:@"createStripeCustomer" withParameters:stripeCustomerDictionary block:^(NSString *customerId, NSError *error) {

          if (!error) {
            PaymentMethod *creditCard = [PaymentMethod object];
              creditCard.owner  = user;
              creditCard.stripeCustomerId = customerId;
              creditCard.expirationMonth = card.expMonth;
              creditCard.expirationYear = card.expYear;
              creditCard.type = [creditCard friendlyType:(STPCardBrand)creditCard];
              creditCard.lastFourDigit = card.last4;
              creditCard.stripeCustomerId = customerId;

              [creditCard saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
                  if (!error) {
                    [weakSelf readyToCharge:customerId];
                }
            }];

          } else {

          }
      }];
            }
    }];
}

-(void)readyToCharge:(NSString *)customerId {
    self.finishBlock(customerId);
    [self.navigationController popViewControllerAnimated:YES];
}
@end

Parse.Cloud.define("sendNotification", function(request, response) {
  var query = new Parse.Query(Parse.Installation);
  var userObj = new Parse.User({
    id: request.params.userId
  });
  query.equalTo("user", userObj);
  Parse.Push.send({
    where: query,
    data: {
      alert: request.params.message
    }
  }, {
    success: function() {
      response.success(0);
    },
    error: function(error) {
      response.error('push notification error');
    }
  });
});


var Stripe = require('stripe');
Stripe.initialize('sk_test_xxx');

var STRIPE_API_BASE_URL = 'api.stripe.com/v1';
Stripe.initialize('sk_test_xxx');

var Mailgun = require('mailgun');
Mailgun.initialize("Memory_Jar", "pubkey-xxx");



//Create a stripe customer
Parse.Cloud.define("createStripeCustomer", function(request, response) {
  Parse.Cloud.useMasterKey();
  Parse.Promise.as().then(function() {
    return Stripe.Customers.create({
      description: 'customer for Memory Jar',
      card: request.params.tokenId,
      email: request.params.customerEmail,

    }).then(null, function(error) {
      console.log('Creating customer with stripe failed. Error: ' + error);
      return Parse.Promise.error('An error has occurred.');
    });

  }).then(function(customer) {
    response.success(customer.id);

  }, function(error) {
    response.error('error with customer creation');
  });
});



//Charge the customer
Parse.Cloud.define("chargeCustomer", function(request, response) {
  Parse.Cloud.useMasterKey();
  var order;
  var orderNo;
  var total;

  Parse.Promise.as().then(function() {
    var orderQuery = new Parse.Query('Order');
    orderQuery.equalTo('objectId', request.params.orderId);
    orderQuery.include("customer");
    orderQuery.include(["items.product"]);
    orderQuery.descending("createdAt");

    return orderQuery.first().then(null, function(error) {
      return Parse.Promise.error('Sorry, this order doesn\'t exist.');
    });

  }).then(function(result) {
    order = result;

    var items = order.get("items");
    for (var i = 0; i < items.length; i++) {
      var item = items[i];
      var unitPrice = item.get("product").get("unitPrice");
      var quantity = item.get("quantity");
      total += unitPrice * quantity;
    }

  }).then(function(result) {
    var countQuery = new Parse.Query("Order");
    return countQuery.count().then(null, function(error) {
      return Parse.Promise.error('Something wrong.');
    });

  }).then(function(result) {
    orderNo = result;

  }).then(function(order) {
    return Stripe.Charges.create({
      amount: 10000, //total.toFixed(2)*100, // express dollars in cents
      currency: 'usd',
      customer: request.params.customerId


    }).then(null, function(error) {
      console.log('Charging with stripe failed. Error: ' + error);
      return Parse.Promise.error('An error has occurred. Your credit card was not charged.');
    });

  }).then(function(purchase) {
    orderNo = 1000000 + orderNo + 1;

    order.set('stripePaymentId', purchase.id);
    order.set('orderStatus', 1);
    order.set('orderNo', orderNo);
    return order.save().then(null, function(error) {
      return Parse.Promise.error('A critical error has occurred with your order. Please ' + 'contact us at your earliest convinience. ');
    });

  }).then(function(order) {
    var greeting = "Dear ";
    //                        if (request.params.firstName !== "N/A") greeting += request.params.firstName + ",\n\n";
    //                        var orderId = "Order No. " + orderNo + "\n";
    var body = greeting + orderId + "We have received your order for the following item(s): \n\n" + request.params.itemDesc + "\n";
    var note = "Note: " + request.params.note + "\n\n";
    body += "\Total: $" + 1000 + "\n\n"; //total.toFixed(2)
    var thankyou = "Contact us if you have any question!\n\n" + "\n Thank you,\n";
    body += thankyou;

    return Mailgun.sendEmail({
      to: request.params.email,
      bcc: 'CUSTOMER-EMAIL',
      from: 'YOUR-EMAIL',
      subject: '',
      text: body

    }).then(null, function(error) {
      return Parse.Promise.error('Your purchase was successful, but we were not able to ' + 'send you an email. Contact us at [email protected] ' + 'you have any questions.');
    });

  }).then(function(charge) {
      response.success(charge.id);
    },
    function(error) {
      response.error(error);
    });
});


//Create Stripe token for charged customer
Parse.Cloud.define("chargeToken", function(request, response) {
  Parse.Cloud.useMasterKey();
  var order;
  var orderNo;
  var total;

  Parse.Promise.as().then(function() {
    var orderQuery = new Parse.Query('Order');
    orderQuery.equalTo('objectId', request.params.orderId);
    orderQuery.include("customer");
    orderQuery.include(["items.product"]);
    orderQuery.descending("createdAt");
    return orderQuery.first().then(null, function(error) {
      return Parse.Promise.error('Sorry, this order doesn\'t exist.');
    });
  }).then(function(result) {
    order = result;
    var items = order.get("items");
    for (var i = 0; i < items.length; i++) {
      var item = items[i];
      var unitPrice = item.get("product").get("unitPrice");
      var quantity = item.get("quantity");
      total += unitPrice * quantity;
    }

  }).then(function(result) {
    var countQuery = new Parse.Query("Order");
    return countQuery.count().then(null, function(error) {
      return Parse.Promise.error('Something wrong.');
    });

  }).then(function(result) {
    orderNo = result;

  }).then(function(order) {
    return Stripe.Charges.create({
      amount: 10000, //amount: total.toFixed(2)*100, // express dollars in cents
      currency: 'usd',
      card: request.params.chargeToken,


    }).then(null, function(error) {
      console.log('Charging with stripe failed. Error: ' + error);
      return Parse.Promise.error('An error has occurred. Your credit card was not charged.');
    });

  }).then(function(purchase) {
    orderNo = 1000000 + orderNo + 1;
    order.set('orderStatus', 1); // order made
    order.set('orderNo', orderNo);
    order.set('stripePaymentId', purchase.id);
    return order.save().then(null, function(error) {
      return Parse.Promise.error('A critical error has occurred with your order. Please ' + 'contact us at your earliest convinience. ');
    });

  }).then(function(result) {
    var greeting = "Dear ";
    //                            if (order.customer.firstName !== "N/A") greeting +=
    //                            order.customer.firstName + ",\n\n";
    var orderId = "Order No. " + orderNo + "\n";
    var body = greeting + orderId + " We have received your order for the following item(s): \n\n" + request.params.itemDesc + "\n";
    body += "\Total: $" + 1000 + "\n\n";
    var thankyou = "Contact us if you have any question!\n\n" + "\n Thank you,\n";
    body += thankyou;

    return Mailgun.sendEmail({
      to: '[email protected]', //order.customer.email,
      from: 'YOUR-CONTACT-EMAIL',
      subject: 'Your order was successful!',
      text: body

    }).then(null, function(error) {
      return Parse.Promise.error('Your purchase was successful, but we were not able to ' + 'send you an email. Contact us if you have any questions.');
    });

  }).then(function() {
    response.success('Success');
  }, function(error) {
    response.error(error);
  });
});


Parse.Cloud.define("StripeUserCards", function(request, response) {
  Parse.Cloud.httpRequest({
    method: "GET",
    url: "https://" + 'sk_test_bSJVNSp6BUre8e6wOzxhHYgQ' + ':@' + STRIPE_API_BASE_URL + "/customers/" + request.params.customer_id + "/cards",
    success: function(cards) {
      response.success(cards["data"]);
    },
    error: function(httpResponse) {
      response.error('Request failed with response code ' + httpResponse.status);
    }
  });
});

Подробнее (1 ответ)

javascript ios objective-c stripe-payments parse.com

Какую Статистику Я Могу Получить От Tfs 2013 Относительно Производительности Разработчиков?

Мы используем репозитории GIT, и я хотел бы получить некоторую статистику, связанную с разработчиками для кода, рабочих элементов, дефектов/ошибок. На данный момент я не могу найти что-либо вообще, и, похоже, вам нужно покупать инструменты интеграции сторонних компаний, чтобы что-то получить. Это немного странно, учитывая деньги, которые мы заплатили за подписку MSDN.

Подробнее (1 ответ)

performance git statistics bug-reporting tfs2013

Как Поставить Ярлык Inline В Tkinter Python

Im делает просмотрщик изображений в python, код - это

def walk(dirname):
res = []
for name in os.listdir(dirname):
    path = os.path.join(dirname, name)      

    if os.path.isfile(path):
        res.append(path)
    else:
        walk(path)
return res


images = walk("images")

def show_image(filename):
  image = PIL.open(filename)
  image = image.resize((120, 120))
  photo = ImageTk.PhotoImage(image)
  label = Label(image=photo)
  label.image = photo
  label.pack()  

for i in images:
  show_image(i)

этот код работает, но показывает изображения в блоке один над другим, я хочу показать ярлыки inline что-то вроде html

<div style="display:inline><img src="photo"></div>

как это можно добиться?

Подробнее (1 ответ)

python image label tkinter

Как Перейти На Mvvm

Я сделал приложение WPF, используя режим Devexpress и Ado.net Connectivity с базой данных. Я работал на других языках и теперь перешел на С#, я новичок в WPF. Я написал этот код для редактирования одиночных и сгруппированных строк:

void EditRow(int focRowHand, nrcsaEntities a)
        {

        Name nametext = grid.GetRow(focRowHand) as Name;      
        try
            {
            if (nametext.Name1 != string.Empty)
                {

                update_id = nametext.PK_ID;
                txtName2.Text = update_text = nametext.Name1;

                if (Panel3.Visibility == System.Windows.Visibility.Visible)
                    {
                    Panel1.Visibility = System.Windows.Visibility.Visible;
                    Panel3.Visibility = System.Windows.Visibility.Collapsed;
                    }

                else
                    {
                    Panel1.Visibility = System.Windows.Visibility.Collapsed;
                    Panel3.Visibility = System.Windows.Visibility.Visible;
                    }
                }
            }
        catch (Exception err)
            {
            DXMessageBox.Show(err.StackTrace);

            }

        }

    private void ToggleButton1_Copy_Click(object sender, RoutedEventArgs e)
        {

        if (view.FocusedRowHandle == -1)
            {
            DXMessageBox.Show("Please Select any Item From Grid List");
            }
        else
            {
            try
                {
                int FocRowHand = view.FocusedRowHandle;
                nrcsaEntities a = new nrcsaEntities();

                if (grid.IsGroupRowHandle(FocRowHand))
                    {
                    int childCount = grid.GetChildRowCount(FocRowHand);
                    for (int i = 0; i < childCount; i++)
                        {
                        int childHandle = grid.GetChildRowHandle(FocRowHand, i);
                        EditRow(childHandle, a);
                        }
                    }
                else
                    {
                    EditRow(FocRowHand, a);

                    }

                }
            catch (Exception ee)
                {
                DXMessageBox.Show(ee.StackTrace);
                }
            }

Поскольку мой клиент требует генерировать код с высоким качеством. Возможно, что более 1000 пользователей будут использовать это приложение и могут сохранять данные пользователей более 5000, мой вопрос таков: поскольку у меня меньше времени на отправку моего приложения моему клиенту. Если я хочу преобразовать этот код в MVVM, как сделать это, так как он мало сложный для преобразования для меня. Во-вторых, что вы думаете об этом качестве кода. Я очень смущаюсь по этому поводу. Я с нетерпением жду вашего ответа.

Подробнее (2 ответа)

c# .net wpf mvvm

Сделать Пустой Ответ В Twilio Webhook

Как я могу сделать пустой ответ в twilio, используя php/laravel?

Вот пример Twiml: <Response></Response>

Подробнее (1 ответ)

twilio twilio-php

Очистка Веб-Страницы После Javascript Excecution В С# Asp.net

Мне нужно очистить веб-страницу для всех ссылок, поэтому я могу посетить их позже, чтобы найти и записать, где установлены файлы cookie. Это для нового uk leglislation, в котором пользователи должны быть сформированы из файлов cookie, которые установлены, и решил попытаться автоматизировать некоторые из этих процессов, чтобы сэкономить некоторое время.

Моя проблема заключается в том, что сайты моих компаний используют много javascript для рендеринга страниц и контента, это означает, что когда я возвращаюсь к страницам (используя html-пакет гибкости в минуту), они в основном содержат много javascript и не хватает большого количества ссылки, которые показывают, когда они полностью отображаются. Я принимаю это как приложение asp на одном домене и передаю URL-адреса для очистки и просмотра всех ссылок на страницах сайтов.

Есть ли способ, чтобы я мог excecute javascript, чтобы страницы были обработаны, и я могу получить все ссылки?

Подробнее (2 ответа)

javascript html c# .net asp.net

Ошибка Анализа Json В Rubymotion

Я пытаюсь разобрать следующий JSON:

"{\"name\":\"Damien\",\"message\":[\"Hi\"]}"

Тем не менее, я пробовал собственный парсинг и Bubblewrap только для того, чтобы получить следующую ошибку:

-[__NSCFString bytes]: unrecognized selector sent to instance 0x98bde40 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString bytes]: unrecognized selector sent to instance 0x98bde40'

Я пробовал:

e = Pointer.new(:object)
json_hash = NSJSONSerialization.JSONObjectWithData(json_string, options:0, error: e)

а также

json_hash = BW::JSON.parse(json_string)

Оба дают ту же ошибку. Что я делаю не так?

Подробнее (1 ответ)

json ios rubymotion