abc
This commit is contained in:
3
Android/BewoMitarbeiterApp/.idea/gradle.xml
generated
3
Android/BewoMitarbeiterApp/.idea/gradle.xml
generated
@@ -3,9 +3,8 @@
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="distributionType" value="LOCAL" />
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleHome" value="C:\Program Files\Android\Android Studio\gradle\gradle-2.10" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
|
||||
3
Android/BewoMitarbeiterApp/.idea/misc.xml
generated
3
Android/BewoMitarbeiterApp/.idea/misc.xml
generated
@@ -43,7 +43,4 @@
|
||||
<component name="ProjectType">
|
||||
<option name="id" value="Android" />
|
||||
</component>
|
||||
<component name="SvnBranchConfigurationManager">
|
||||
<option name="mySupportsUserInfoFilter" value="true" />
|
||||
</component>
|
||||
</project>
|
||||
2
Android/BewoMitarbeiterApp/.idea/vcs.xml
generated
2
Android/BewoMitarbeiterApp/.idea/vcs.xml
generated
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="svn" />
|
||||
<mapping directory="$PROJECT_DIR$/volley" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -13,7 +13,7 @@
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -64,14 +64,6 @@
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
|
||||
@@ -80,6 +72,14 @@
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
|
||||
@@ -114,9 +114,9 @@
|
||||
<orderEntry type="library" exported="" name="support-v4-21.0.3" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-annotations-21.0.3" level="project" />
|
||||
<orderEntry type="library" exported="" name="commons-lang3-3.3.2" level="project" />
|
||||
<orderEntry type="library" exported="" name="robospice-cache-1.4.14" level="project" />
|
||||
<orderEntry type="library" exported="" name="commons-io-1.3.2" level="project" />
|
||||
<orderEntry type="library" exported="" name="robospice-1.4.14" level="project" />
|
||||
<orderEntry type="library" exported="" name="robospice-cache-1.4.14" level="project" />
|
||||
<orderEntry type="module" module-name="volley" exported="" />
|
||||
<orderEntry type="library" exported="" name="android-android-21" level="project" />
|
||||
</component>
|
||||
|
||||
@@ -22,8 +22,11 @@ android {
|
||||
dependencies {
|
||||
//compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||
compile 'com.android.support:appcompat-v7:21.0.3'
|
||||
compile files('libs/gson-2.6.2.jar')
|
||||
compile files('libs/ksoap2-android-assembly-3.6.0-jar-with-dependencies.jar')
|
||||
// compile files('libs/gson-2.6.2.jar')
|
||||
// compile files('libs/ksoap2-android-assembly-3.6.0-jar-with-dependencies.jar')
|
||||
compile 'com.octo.android.robospice:robospice:1.4.14'
|
||||
compile project(":volley")
|
||||
compile project(':volley')
|
||||
compile files('src/libs/gson-2.6.2.jar')
|
||||
compile files('src/libs/ksoap2-android-assembly-3.6.0-jar-with-dependencies.jar')
|
||||
// compile files('src/libs/robospice-1.4.14.jar')
|
||||
}
|
||||
|
||||
BIN
Android/BewoMitarbeiterApp/app/src/libs/gson-2.6.2.jar
Normal file
BIN
Android/BewoMitarbeiterApp/app/src/libs/gson-2.6.2.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
Android/BewoMitarbeiterApp/app/src/libs/robospice-1.4.14.jar
Normal file
BIN
Android/BewoMitarbeiterApp/app/src/libs/robospice-1.4.14.jar
Normal file
Binary file not shown.
@@ -1,11 +1,8 @@
|
||||
package beyondsoft.bewomitarbeiterapp;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ClipData;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
@@ -16,20 +13,11 @@ import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffXfermode;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.os.Message;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
import android.support.v4.content.IntentCompat;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.text.Html;
|
||||
import android.text.format.DateFormat;
|
||||
import android.text.method.ScrollingMovementMethod;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
@@ -39,43 +27,30 @@ import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.DatagramPacket;
|
||||
import java.net.DatagramSocket;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.net.SocketAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import soapConnection.DataIdentifier;
|
||||
import soapConnection.Packet;
|
||||
import soapConnection.SoapConnectionManager;
|
||||
|
||||
/**
|
||||
* Created by bib on 03.05.2016.
|
||||
*/
|
||||
public class ChatActiviti extends ActionBarActivity{
|
||||
public class ChatActivity extends ActionBarActivity{
|
||||
|
||||
//View Variablen
|
||||
protected TextView chat;
|
||||
@@ -84,11 +59,11 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
|
||||
//Server Variablen
|
||||
public static Socket socket;
|
||||
protected static final String dstAddress = "192.168.1.115"; //10.0.2.2"
|
||||
protected static final String dstAddress = "192.168.1.103"; //10.0.2.2"
|
||||
protected static final int dstPort = 5000;
|
||||
DataOutputStream st;
|
||||
|
||||
String SaveCompletteMS;
|
||||
String SaveCompleteMS;
|
||||
|
||||
BufferedReader in = null;
|
||||
|
||||
@@ -107,7 +82,7 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
File Unsendfile = null;
|
||||
//Chat Name
|
||||
protected String name;
|
||||
|
||||
protected int personOid;
|
||||
|
||||
//Für Notification
|
||||
private static boolean isOnStop = false;
|
||||
@@ -117,7 +92,6 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.chat);
|
||||
|
||||
//########### Custom Action Bar ##################################
|
||||
ActionBar action = getSupportActionBar();
|
||||
|
||||
action.setDisplayShowHomeEnabled(false);
|
||||
@@ -134,6 +108,7 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
//get Daten aus vorheriger Activity
|
||||
Bundle zielkorb = getIntent().getExtras();
|
||||
name = zielkorb.getString("Name");
|
||||
personOid = zielkorb.getInt("RecipientOid");
|
||||
|
||||
byte[] bildArray = zielkorb.getByteArray("Bild");
|
||||
Bitmap customerImage;
|
||||
@@ -148,24 +123,19 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
/* ImageView img = (ImageView) mCustomView.findViewById(R.id.status);
|
||||
img.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
ChatActiviti.this.openOptionsMenu(); // activity's onCreateOptionsMenu gets called
|
||||
ChatActivity.this.openOptionsMenu(); // activity's onCreateOptionsMenu gets called
|
||||
//optionsMenu.performIdentifierAction(R.id., 0);
|
||||
}
|
||||
});*/
|
||||
|
||||
|
||||
|
||||
|
||||
titlename.setText(name);
|
||||
|
||||
action.setCustomView(mCustomView);
|
||||
action.setDisplayShowCustomEnabled(true);
|
||||
//###########################################################################################
|
||||
|
||||
senden = (Button)findViewById(R.id.Sendebutton);
|
||||
//chat = (TextView)findViewById(R.id.ChatText);
|
||||
|
||||
//################### Initial Design Variabeln Message Adapter #############################################
|
||||
chatMessages = new ArrayList<>();
|
||||
|
||||
listView = (ListView)findViewById(R.id.list_msg);
|
||||
@@ -173,11 +143,8 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
adapter = new MessageAdapter(this, R.layout.item_chat_left,chatMessages);
|
||||
listView.setAdapter(adapter);
|
||||
|
||||
//############################ Initial Design Variablen ende ###############################
|
||||
|
||||
//########################### Initial Socket ###############################################
|
||||
try {
|
||||
MainActivityMitarbeiter.isThreadPause = true;
|
||||
|
||||
|
||||
socket = MainActivityMitarbeiter.socket;
|
||||
|
||||
@@ -187,23 +154,16 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
}catch(Exception e){/*Fail*/}
|
||||
|
||||
|
||||
// MainActivityMitarbeiter.listen.interrupt();
|
||||
// MainActivityMitarbeiter.listen = null;
|
||||
// MainActivityMitarbeiter.listen.interrupt();
|
||||
// MainActivityMitarbeiter.listen = null;
|
||||
|
||||
|
||||
|
||||
//##########################################################################################
|
||||
|
||||
//############## Safe / Write gedöns #########################################################
|
||||
CreateFile();
|
||||
|
||||
ReadMessageToStorage();
|
||||
|
||||
//##########################################################################################
|
||||
|
||||
|
||||
//Öffnet eine Verbindung zum Server
|
||||
// new Thread(new OpenConnection()).start();
|
||||
// new Thread(new OpenConnection()).start();
|
||||
|
||||
|
||||
text = (EditText)findViewById(R.id.editText);
|
||||
@@ -217,28 +177,22 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
|
||||
if(text.getText().toString().equals("exit")){
|
||||
//eine möglich keit die connection zu schließen
|
||||
// new Thread(new ConnectionClose()).start();
|
||||
// new Thread(new ConnectionClose()).start();
|
||||
}else if(!text.getText().toString().equals("")){
|
||||
new Thread(new SendMS()).start();
|
||||
new Thread(new MessageSender()).start();
|
||||
}else{
|
||||
Toast.makeText(ChatActiviti.this, "Sie müssen schon Text eingeben ", Toast.LENGTH_SHORT).show();
|
||||
Toast.makeText(ChatActivity.this, "Sie müssen schon Text eingeben ", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//Erstelle einen immer horchenden Listener
|
||||
Thread t = new Thread(new SocketListener());
|
||||
t.start();
|
||||
|
||||
|
||||
|
||||
//MainActivityMitarbeiter.listen.sus
|
||||
}
|
||||
|
||||
|
||||
//######################### Server/ Client gedöns ##################################################
|
||||
/*public class OpenConnection implements Runnable{
|
||||
public void run(){
|
||||
try {
|
||||
@@ -246,11 +200,11 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
// Log.v("Status: ","Vorhanden 3");
|
||||
|
||||
//nachricht an server senden welcher name jetz aktiv connected ist
|
||||
st = new DataOutputStream(socket.getOutputStream());
|
||||
dataOutputStream = new DataOutputStream(socket.getOutputStream());
|
||||
name=name+"/1";
|
||||
byte[] ts = name.getBytes();
|
||||
st.write(ts);
|
||||
st.flush();
|
||||
dataOutputStream.write(ts);
|
||||
dataOutputStream.flush();
|
||||
|
||||
} catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
@@ -262,25 +216,30 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
}
|
||||
}*/
|
||||
|
||||
public class SendMS implements Runnable{
|
||||
public class MessageSender implements Runnable{
|
||||
public void run(){
|
||||
String al = text.getText().toString();
|
||||
|
||||
|
||||
|
||||
byte[] ts = al.getBytes();
|
||||
|
||||
|
||||
//TODO: Packet erstellen
|
||||
//ChatActivity.
|
||||
|
||||
try{
|
||||
if(socket!= null ) {
|
||||
Packet p = new Packet();
|
||||
p.ChatMessage = text.getText().toString();
|
||||
p.SenderPersonOid = SoapConnectionManager.User.getPersonOid().intValue();
|
||||
p.ChatDataIdentifier = DataIdentifier.MESSAGE;
|
||||
p.ChatName = SoapConnectionManager.User.getFullName();
|
||||
p.RecipientPersonOid = personOid;
|
||||
|
||||
//try catch bei catch SaveAfterLoseConnection();
|
||||
|
||||
|
||||
|
||||
st.write(ts);
|
||||
st.write(p.GetDataStream());
|
||||
st.flush();
|
||||
}
|
||||
|
||||
|
||||
// Update der GUI
|
||||
listView.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -288,24 +247,22 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
|
||||
String formattedDate = df.format(c.getTime());
|
||||
|
||||
SaveCompletteMS = text.getText().toString()+"/"+isMe+"%"+formattedDate+"\n";
|
||||
SaveCompleteMS = text.getText().toString()+"/"+isMe+"%"+formattedDate+"\n";
|
||||
|
||||
WriteMessagesfromStorage(text.getText().toString()+"/"+isMe+"%"+formattedDate+"\n");
|
||||
WriteMessagesfromStorage(text.getText().toString()+"/"+isMe+"%"+formattedDate+"\n");
|
||||
|
||||
chatMessage = new ChatMessageFormat(text.getText().toString(), isMe, formattedDate);
|
||||
chatMessages.add(chatMessage);
|
||||
adapter.notifyDataSetChanged();
|
||||
chatMessage = new ChatMessageFormat(text.getText().toString(), isMe, formattedDate);
|
||||
chatMessages.add(chatMessage);
|
||||
adapter.notifyDataSetChanged();
|
||||
|
||||
text.setText("");
|
||||
text.setText("");
|
||||
|
||||
}
|
||||
});
|
||||
}catch(IOException s){
|
||||
Log.v("Status: ","Senden einer Nachricht konnte nicht ausgeführt werden. Save wird ausgeführt");
|
||||
//Log.v("hallo",);
|
||||
|
||||
|
||||
SaveAfterLoseConnection(SaveCompletteMS);
|
||||
SaveAfterLoseConnection(SaveCompleteMS);
|
||||
s.printStackTrace();
|
||||
}
|
||||
}
|
||||
@@ -315,9 +272,9 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
public void run(){
|
||||
try {
|
||||
// Log.v("Bin ich Überhaupt", "Hier drinne");
|
||||
if (st != null) {
|
||||
st.flush();
|
||||
st.close();
|
||||
if (dataOutputStream != null) {
|
||||
dataOutputStream.flush();
|
||||
dataOutputStream.close();
|
||||
}
|
||||
if (socket != null)
|
||||
socket = null;
|
||||
@@ -332,8 +289,6 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
|
||||
// Erhalte Messages all the time
|
||||
public class SocketListener implements Runnable{
|
||||
|
||||
|
||||
String str;
|
||||
long i = 1;
|
||||
//BufferedReader in = null;
|
||||
@@ -343,77 +298,75 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
Log.v("Komme","ICh den Rein");
|
||||
while(true){
|
||||
|
||||
if (socket != null) {
|
||||
Log.v("Komme","So wie es aussieht nicht ");
|
||||
if(socket.isConnected()) {
|
||||
Log.v("Connection Steht ", "Connection Steht");
|
||||
Log.v("Komme","So wie es aussieht nicht2 ");
|
||||
//final TextView text = (TextView)findViewById(R.id.ChatText);
|
||||
if (socket != null) {
|
||||
Log.v("Komme","So wie es aussieht nicht ");
|
||||
if(socket.isConnected()) {
|
||||
Log.v("Connection Steht ", "Connection Steht");
|
||||
Log.v("Komme","So wie es aussieht nicht2 ");
|
||||
//final TextView text = (TextView)findViewById(R.id.ChatText);
|
||||
|
||||
final ListView listV = (ListView) findViewById(R.id.list_msg);
|
||||
final ListView listV = (ListView) findViewById(R.id.list_msg);
|
||||
|
||||
Log.v("Komme","So wie es aussieht nicht 3");
|
||||
// in = new BufferedReader(new InputStreamReader(MainActivityMitarbeiter.socket.getInputStream()));
|
||||
Log.v("Komme","So wie es aussieht nicht 3");
|
||||
// in = new BufferedReader(new InputStreamReader(MainActivityMitarbeiter.socket.getInputStream()));
|
||||
|
||||
/*---> da wird das pendant ausgeführt und nicht dieses */ String s = in.readLine();
|
||||
Log.v("Komme","So wie es aussieht nicht 4");
|
||||
CharSequence cs = text.getText();
|
||||
Log.v("Komme","So wie es aussieht nicht 4");
|
||||
CharSequence cs = text.getText();
|
||||
|
||||
// wir nehmen mal cs raus
|
||||
//str = cs + "\r\n" + s;
|
||||
str = s;
|
||||
// wir nehmen mal cs raus
|
||||
//str = cs + "\r\n" + s;
|
||||
str = s;
|
||||
|
||||
if (s == null)
|
||||
break;
|
||||
if (s == null)
|
||||
break;
|
||||
|
||||
//Design Spezifisch
|
||||
listV.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
//Design Spezifisch
|
||||
listV.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
Calendar c = Calendar.getInstance();
|
||||
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
|
||||
String formattedDate = df.format(c.getTime());
|
||||
Calendar c = Calendar.getInstance();
|
||||
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
|
||||
String formattedDate = df.format(c.getTime());
|
||||
|
||||
boolean determind = false;
|
||||
boolean determind = false;
|
||||
|
||||
WriteMessagesfromStorage(str+"/"+determind+"%"+formattedDate+"\n");
|
||||
WriteMessagesfromStorage(str+"/"+determind+"%"+formattedDate+"\n");
|
||||
|
||||
chatMessage = new ChatMessageFormat(str, determind, formattedDate);
|
||||
chatMessages.add(chatMessage);
|
||||
adapter.notifyDataSetChanged();
|
||||
chatMessage = new ChatMessageFormat(str, determind, formattedDate);
|
||||
chatMessages.add(chatMessage);
|
||||
adapter.notifyDataSetChanged();
|
||||
|
||||
Log.v("","");
|
||||
|
||||
if(isOnStop == true){
|
||||
SetNotifi("Bärtiger Hanz",str);
|
||||
}
|
||||
Log.v("","");
|
||||
|
||||
if(isOnStop == true){
|
||||
SetNotify("Bärtiger Hanz",str);
|
||||
}
|
||||
});
|
||||
|
||||
i++;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
});
|
||||
|
||||
if (in != null)
|
||||
in.close();
|
||||
i++;
|
||||
}
|
||||
} else {
|
||||
|
||||
// else Log.v("Connection","nicht aufgebaut"); nach tausend versuchen break und fehler ausgabe
|
||||
if (in != null)
|
||||
in.close();
|
||||
}
|
||||
|
||||
// else Log.v("Connection","nicht aufgebaut"); nach tausend versuchen break und fehler ausgabe
|
||||
|
||||
}
|
||||
|
||||
}catch(Exception e){
|
||||
Log.v("Status ","Verbindung zum Server wurde seitens dem Server getrennt ");
|
||||
// Log.e(getClass().getName(),e.getMessage());
|
||||
// e.printStackTrace();
|
||||
// Log.e(getClass().getName(),e.getMessage());
|
||||
// e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
//#################################### Server Client Ende ##########################################
|
||||
|
||||
//########################### Speichere Message für Server bei unsend #####################################
|
||||
public void SaveAfterLoseConnection(String UnsendMessage){
|
||||
CreateCustomFileForUnSendMessage();
|
||||
try{
|
||||
@@ -430,36 +383,35 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
}
|
||||
|
||||
public void SendAfterGetConnection(){
|
||||
|
||||
//ist eine UnsendMessage File vorhanden
|
||||
if(Unsendfile != null && socket.isConnected()){
|
||||
try{
|
||||
FileInputStream stream = new FileInputStream(Unsendfile);
|
||||
InputStreamReader in = new InputStreamReader(stream);
|
||||
BufferedReader readLn = new BufferedReader(in);
|
||||
FileInputStream stream = new FileInputStream(Unsendfile);
|
||||
InputStreamReader in = new InputStreamReader(stream);
|
||||
BufferedReader readLn = new BufferedReader(in);
|
||||
|
||||
String line = readLn.readLine();
|
||||
String allLines="";
|
||||
String line = readLn.readLine();
|
||||
String allLines="";
|
||||
|
||||
while (line != null) {
|
||||
allLines += line;
|
||||
while (line != null) {
|
||||
allLines += line;
|
||||
|
||||
String[] splitt = line.split("/");
|
||||
String[] splitt = line.split("/");
|
||||
|
||||
if(splitt.length >1 ) {
|
||||
String[] ArtDate = splitt[1].split("%");
|
||||
if(splitt.length >1 ) {
|
||||
String[] ArtDate = splitt[1].split("%");
|
||||
|
||||
final String message = splitt[0];
|
||||
final boolean art = Boolean.valueOf(ArtDate[0]);
|
||||
final String datetime = ArtDate[1];
|
||||
final String message = splitt[0];
|
||||
final boolean art = Boolean.valueOf(ArtDate[0]);
|
||||
final String datetime = ArtDate[1];
|
||||
|
||||
//für jede Gelesene Line Sende Nachricht
|
||||
new Thread(new SendUnsendMS(message)).start();
|
||||
}
|
||||
line = readLn.readLine();
|
||||
//für jede Gelesene Line Sende Nachricht
|
||||
new Thread(new SendUnsendMS(message)).start();
|
||||
}
|
||||
stream.close();
|
||||
in.close();
|
||||
line = readLn.readLine();
|
||||
}
|
||||
stream.close();
|
||||
in.close();
|
||||
Unsendfile.delete();
|
||||
}catch(Exception fe){
|
||||
Log.v("Status","Ein problem ist im BEreich Unsend Ms Aufgetreten");
|
||||
@@ -508,12 +460,6 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
}
|
||||
}
|
||||
|
||||
//####################### Ende Unsend Message Gedöns ###########################################
|
||||
|
||||
|
||||
|
||||
//############### Menue Bereich ################################################################
|
||||
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
getMenuInflater().inflate(R.menu.menue_chat, menu);
|
||||
@@ -532,12 +478,7 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
}
|
||||
}
|
||||
|
||||
//################################################################################################
|
||||
|
||||
|
||||
//############## Setze Notification ############################################################
|
||||
|
||||
public void SetNotifi(String Username,String message){
|
||||
public void SetNotify(String Username, String message){
|
||||
|
||||
//Convertiert in Pic Resource in ein Bitmap
|
||||
//BitmapFactory.decodeResource(getResources(), R.drawable.bslogo)
|
||||
@@ -553,9 +494,9 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
.setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 }) //Notification.Default_Vibrate
|
||||
.setLights(Color.YELLOW, 3000, 3000) //Notification.Default_Lights
|
||||
.setOngoing(true);
|
||||
//neuland ende
|
||||
//neuland ende
|
||||
|
||||
Intent resultIntent = new Intent(this, ChatActiviti.class);
|
||||
Intent resultIntent = new Intent(this, ChatActivity.class);
|
||||
//versuch ab hier neuland
|
||||
resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
//neuland ende
|
||||
@@ -576,61 +517,52 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
mNotifyMgr.notify(001, mBuilder.build());
|
||||
}
|
||||
|
||||
//##############################################################################################
|
||||
|
||||
|
||||
//################ Activit abfragen ############################################################
|
||||
public void onResume() {
|
||||
// Log.v("Stuss","Hier nochmals on creat aufrufen");
|
||||
isOnStop = false;
|
||||
|
||||
MainActivityMitarbeiter.isThreadPause = true;
|
||||
|
||||
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
public void onStop(){
|
||||
// Thread t = new Thread(new ConnectionClose());
|
||||
// t.start();
|
||||
// Thread t = new Thread(new ConnectionClose());
|
||||
// t.start();
|
||||
|
||||
|
||||
MainActivityMitarbeiter.isThreadPause = false;
|
||||
|
||||
isOnStop = true;
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
public void onDestroy(){
|
||||
// Thread t = new Thread(new ConnectionClose());
|
||||
// t.start();
|
||||
// currentlisten = null;
|
||||
MainActivityMitarbeiter.isThreadPause = false;
|
||||
// Thread t = new Thread(new ConnectionClose());
|
||||
// t.start();
|
||||
// currentlisten = null;
|
||||
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
//##############################################################################################
|
||||
|
||||
//################# Lade/Speichere Die Messages ################################################
|
||||
//create a File
|
||||
public void CreateFile(){
|
||||
|
||||
try{
|
||||
try{
|
||||
|
||||
File pfad = getBaseContext().getFilesDir();
|
||||
File pfad = getBaseContext().getFilesDir();
|
||||
|
||||
//Für external Save
|
||||
//File pfad = getBaseContext().getExternalFilesDir(null);
|
||||
//Für external Save
|
||||
//File pfad = getBaseContext().getExternalFilesDir(null);
|
||||
|
||||
//Erstelle das File Objekt
|
||||
//file = new File(pfad,name+".txt");
|
||||
//Erstelle das File Objekt
|
||||
//file = new File(pfad,name+".txt");
|
||||
|
||||
//vorläufig ##### für debug zwecke
|
||||
file = new File(pfad,"demo"+".txt");
|
||||
}catch(Exception e){
|
||||
Log.v("Fehler"," Das erstellen/öffnen einer Datei ist Derzeit nicht möglich");
|
||||
}
|
||||
//vorläufig ##### für debug zwecke
|
||||
file = new File(pfad,"demo"+".txt");
|
||||
}catch(Exception e){
|
||||
Log.v("Fehler"," Das erstellen/öffnen einer Datei ist Derzeit nicht möglich");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Internal Storage
|
||||
public void WriteMessagesfromStorage(String message){
|
||||
try{
|
||||
@@ -642,7 +574,7 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
stream.close();
|
||||
}
|
||||
|
||||
// Log.v("Status","Text: "+message+" wurde gespeichert." );
|
||||
// Log.v("Status","Text: "+message+" wurde gespeichert." );
|
||||
|
||||
}catch (Exception e){
|
||||
Log.v("Fehler 1 ",e.getMessage());
|
||||
@@ -653,7 +585,7 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
public void ReadMessageToStorage(){
|
||||
try{
|
||||
|
||||
// Log.v("Status","Verbindung steht 1");
|
||||
// Log.v("Status","Verbindung steht 1");
|
||||
int lenght = (int) file.length();
|
||||
|
||||
byte[] bytes = new byte[lenght];
|
||||
@@ -661,7 +593,7 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
FileInputStream stream = new FileInputStream(file);
|
||||
|
||||
|
||||
// Log.v("Status","Verbindung steht 2");
|
||||
// Log.v("Status","Verbindung steht 2");
|
||||
InputStreamReader in = new InputStreamReader(stream);
|
||||
|
||||
BufferedReader readLn = new BufferedReader(in);
|
||||
@@ -676,7 +608,7 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
//---> <---//
|
||||
//String[] splitt = line.split("/");
|
||||
|
||||
// Log.v("Status",line);
|
||||
// Log.v("Status",line);
|
||||
|
||||
String[] splitt = line.split("/");
|
||||
|
||||
@@ -700,36 +632,29 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
}
|
||||
|
||||
line = readLn.readLine();
|
||||
|
||||
|
||||
}
|
||||
|
||||
stream.close();
|
||||
in.close();
|
||||
|
||||
// Log.v("Local Storage",allLines);
|
||||
// Log.v("Local Storage",allLines);
|
||||
|
||||
}catch(Exception e){
|
||||
Log.v("Fehler 2 ",e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//##############################################################################################
|
||||
|
||||
//################# Convert Bitmap for a circled bitmap ########################################
|
||||
private Bitmap GetCircleBitmap(Bitmap bitmap) {
|
||||
|
||||
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
|
||||
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(output);
|
||||
|
||||
int color = Color.RED;
|
||||
Paint paint = new Paint();
|
||||
Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
|
||||
RectF rectF = new RectF(rect);
|
||||
int color = Color.RED;
|
||||
Paint paint = new Paint();
|
||||
Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
|
||||
RectF rectF = new RectF(rect);
|
||||
|
||||
//bis hierhin war alles final
|
||||
paint.setAntiAlias(true);
|
||||
@@ -744,7 +669,4 @@ public class ChatActiviti extends ActionBarActivity{
|
||||
|
||||
return output;
|
||||
}
|
||||
//##############################################################################################
|
||||
|
||||
|
||||
}
|
||||
@@ -5,13 +5,26 @@ package beyondsoft.bewomitarbeiterapp;
|
||||
*/
|
||||
public class ChatMessageFormat {
|
||||
|
||||
// sender, recipient
|
||||
private int senderPersonOid;
|
||||
|
||||
public int getRecipientPersonOid() {
|
||||
return recipientPersonOid;
|
||||
}
|
||||
|
||||
public int getSenderPersonOid() {
|
||||
return senderPersonOid;
|
||||
}
|
||||
|
||||
private int recipientPersonOid;
|
||||
|
||||
private boolean isMe;
|
||||
private String message;
|
||||
private String datum;
|
||||
|
||||
//villeicht eine issend variable einbauen
|
||||
//villeicht eine isSent-Variable einbauen
|
||||
|
||||
ChatMessageFormat(String message, boolean isMe,String datum){
|
||||
ChatMessageFormat(String message, boolean isMe, String datum){
|
||||
this.message = message;
|
||||
this.isMe = isMe;
|
||||
this.datum = datum;
|
||||
|
||||
@@ -4,8 +4,6 @@ package beyondsoft.bewomitarbeiterapp;
|
||||
* Created by bib on 07.06.2016.
|
||||
*/
|
||||
public class ContactList {
|
||||
|
||||
|
||||
private int _id;
|
||||
private String _kontaktname;
|
||||
private String _art;
|
||||
@@ -80,5 +78,4 @@ public class ContactList {
|
||||
public void setPicture(byte[] d){
|
||||
this._picture = d;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
package beyondsoft.bewomitarbeiterapp;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 05.07.2016.
|
||||
*/
|
||||
public class ContactListItem {
|
||||
private int _id;
|
||||
private String _kontaktname;
|
||||
private byte[] _picture;
|
||||
private int _personOid;
|
||||
|
||||
//default Construkt
|
||||
public ContactListItem(){}
|
||||
|
||||
//Construkt 1
|
||||
public ContactListItem(int id, String kontaktname, int personOid, byte[] picture){
|
||||
this._id = id;
|
||||
this._kontaktname = kontaktname;
|
||||
this._personOid = personOid;
|
||||
this._picture = picture;
|
||||
}
|
||||
|
||||
//Construkt 2
|
||||
public ContactListItem(String kontaktname, int personOid, byte[] picture){
|
||||
this._kontaktname = kontaktname;
|
||||
this._personOid = personOid;
|
||||
this._picture = picture;
|
||||
}
|
||||
|
||||
//Construkt 3
|
||||
public ContactListItem(String kontaktname, int personOid){
|
||||
this._kontaktname = kontaktname;
|
||||
this._personOid = personOid;
|
||||
this._picture = null;
|
||||
}
|
||||
|
||||
//Construkt4
|
||||
public ContactListItem(int id, String kontaktname, int personOid){
|
||||
this._id = id;
|
||||
this._kontaktname = kontaktname;
|
||||
this._personOid = personOid;
|
||||
this._picture = null;
|
||||
}
|
||||
|
||||
//ID
|
||||
public int getID(){
|
||||
return this._id;
|
||||
}
|
||||
|
||||
public void setID(int id){
|
||||
this._id = id;
|
||||
}
|
||||
|
||||
|
||||
// KONTAKT
|
||||
public String getKontaktName(){
|
||||
return this._kontaktname;
|
||||
}
|
||||
|
||||
public void setKontaktName(String k){
|
||||
this._kontaktname = k;
|
||||
}
|
||||
|
||||
//Picture
|
||||
public byte[] getPicture(){
|
||||
return this._picture;
|
||||
}
|
||||
|
||||
public void setPicture(byte[] d){
|
||||
this._picture = d;
|
||||
}
|
||||
|
||||
public int get_personOid() {
|
||||
return _personOid;
|
||||
}
|
||||
|
||||
public void set_personOid(int _personOid) {
|
||||
this._personOid = _personOid;
|
||||
}
|
||||
}
|
||||
@@ -25,7 +25,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
//Table Columns name
|
||||
private static final String KEY_ID ="id";
|
||||
private static final String KEY_KontaktName = "kontaktname";
|
||||
private static final String KEY_ART = "art";
|
||||
private static final String KEY_PERSONOID = "personoid";
|
||||
private static final String KEY_Picture_BLOB = "bild";
|
||||
|
||||
|
||||
@@ -36,8 +36,8 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
// Erstelle Tabelle | Tabellen construct
|
||||
public void onCreate(SQLiteDatabase db){
|
||||
String CREATE_CONTACTS_TABLE ="CREATE TABLE "+TABLE_CONTACTS +"("+
|
||||
KEY_ID +" INTEGER PRIMARY KEY,"+KEY_KontaktName+ " TEXT,"+
|
||||
KEY_ART +" TEXT," + KEY_Picture_BLOB+ " BLOB"+")";
|
||||
KEY_ID +" INTEGER PRIMARY KEY,"+KEY_KontaktName+ " TEXT,"+
|
||||
KEY_PERSONOID +" INTEGER," + KEY_Picture_BLOB+ " BLOB"+")";
|
||||
|
||||
db.execSQL(CREATE_CONTACTS_TABLE);
|
||||
}
|
||||
@@ -52,13 +52,13 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
//Add Neuen Contact
|
||||
void addContact(ContactList contact) {
|
||||
void addContact(ContactListItem contact) {
|
||||
SQLiteDatabase db = this.getWritableDatabase();
|
||||
ContentValues values = new ContentValues();
|
||||
|
||||
//Values übergabe
|
||||
values.put(KEY_KontaktName,contact.getKontaktName());
|
||||
values.put(KEY_ART,contact.getArt());
|
||||
values.put(KEY_PERSONOID,contact.get_personOid());
|
||||
values.put(KEY_Picture_BLOB,contact.getPicture());
|
||||
|
||||
db.insert(TABLE_CONTACTS,null,values);
|
||||
@@ -66,25 +66,25 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
//Hole ein Bestimten Contact
|
||||
ContactList getContact(int id) {
|
||||
ContactListItem getContact(int id) {
|
||||
|
||||
SQLiteDatabase db = this.getReadableDatabase();
|
||||
|
||||
Cursor cursor = db.query(TABLE_CONTACTS, new String[]{KEY_ID,KEY_KontaktName,
|
||||
KEY_ART,KEY_Picture_BLOB},KEY_ID +"=?",new String[]{String.valueOf(id)}
|
||||
,null,null,null,null);
|
||||
KEY_PERSONOID,KEY_Picture_BLOB},KEY_ID +"=?",new String[]{String.valueOf(id)}
|
||||
,null,null,null,null);
|
||||
|
||||
if(cursor !=null)
|
||||
if(cursor !=null) {
|
||||
cursor.moveToFirst();
|
||||
}
|
||||
|
||||
ContactList clist = new ContactList(Integer.parseInt(cursor.getString(0)),cursor.getString(1),
|
||||
cursor.getString(2),cursor.getBlob(3));
|
||||
ContactListItem clist = new ContactListItem(Integer.parseInt(cursor.getString(0)),cursor.getString(1), Integer.parseInt(cursor.getString(2)),cursor.getBlob(3));
|
||||
return clist;
|
||||
}
|
||||
|
||||
//Holle alle Contacts
|
||||
public List<ContactList> getAllContacts(){
|
||||
List<ContactList> contactList = new ArrayList<ContactList>();
|
||||
public List<ContactListItem> getAllContacts(){
|
||||
List<ContactListItem> contactList = new ArrayList<ContactListItem>();
|
||||
// Select All Query
|
||||
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
|
||||
|
||||
@@ -94,10 +94,10 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
// looping through all rows and adding to list
|
||||
if (cursor.moveToFirst()) {
|
||||
do {
|
||||
ContactList contact = new ContactList();
|
||||
ContactListItem contact = new ContactListItem();
|
||||
contact.setID(Integer.parseInt(cursor.getString(0)));
|
||||
contact.setKontaktName(cursor.getString(1));
|
||||
contact.setArt(cursor.getString(2));
|
||||
contact.set_personOid(Integer.parseInt(cursor.getString(2)));
|
||||
contact.setPicture(cursor.getBlob(3));
|
||||
|
||||
// Adding contact to list
|
||||
@@ -109,12 +109,12 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
//updating single Contact
|
||||
public int updateContact(ContactList contact) {
|
||||
public int updateContact(ContactListItem contact) {
|
||||
SQLiteDatabase db = this.getWritableDatabase();
|
||||
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(KEY_KontaktName, contact.getKontaktName());
|
||||
values.put(KEY_ART, contact.getArt());
|
||||
values.put(KEY_PERSONOID, contact.get_personOid());
|
||||
values.put(KEY_Picture_BLOB, contact.getPicture());
|
||||
|
||||
// updating row
|
||||
@@ -123,10 +123,9 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
//Delet single Contact
|
||||
public void deletContacts(ContactList contact){
|
||||
public void deletContacts(ContactListItem contact){
|
||||
SQLiteDatabase db = this.getWritableDatabase();
|
||||
db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
|
||||
new String[] { String.valueOf(contact.getID()) });
|
||||
db.delete(TABLE_CONTACTS, KEY_ID + " = ?", new String[] { String.valueOf(contact.getID()) });
|
||||
db.close();
|
||||
}
|
||||
|
||||
@@ -140,5 +139,13 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
return cursor.getCount();
|
||||
}
|
||||
|
||||
public byte[] getUserImage(Integer personOid) {
|
||||
|
||||
SQLiteDatabase database = this.getReadableDatabase();
|
||||
|
||||
Cursor cursor = database.query(TABLE_CONTACTS, new String[] {KEY_PERSONOID}, " = " + personOid, null, null, null, null);
|
||||
cursor.close();
|
||||
|
||||
return cursor.getBlob(0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package beyondsoft.bewomitarbeiterapp;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Canvas;
|
||||
@@ -10,15 +11,11 @@ import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffXfermode;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.media.Image;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
@@ -26,16 +23,15 @@ import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by bib on 03.05.2016.
|
||||
*/
|
||||
public class KontaktAdapter extends ArrayAdapter<ContactList> {
|
||||
public class KontaktAdapter extends ArrayAdapter<ContactListItem> {
|
||||
|
||||
private final Context context;
|
||||
private final ContactList[] values;
|
||||
// private final List<ContactList> contactlist;
|
||||
private final ContactListItem[] values;
|
||||
// private final List<ContactListItem> contactlist;
|
||||
|
||||
private Bitmap bitmaping;
|
||||
ImageView imageView;
|
||||
@@ -46,31 +42,26 @@ public class KontaktAdapter extends ArrayAdapter<ContactList> {
|
||||
Thread getM;
|
||||
Thread getPic;
|
||||
|
||||
|
||||
public KontaktAdapter(Context context, ContactList[] values) {
|
||||
super(context, R.layout.kontakt_list_chat,values);
|
||||
public KontaktAdapter(Context context, ContactListItem[] values) {
|
||||
super(context, R.layout.kontakt_list_chat, values);
|
||||
this.context = context;
|
||||
this.values = values;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater = (LayoutInflater) context
|
||||
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
|
||||
View rowView = inflater.inflate(R.layout.kontakt_list_chat, parent, false);
|
||||
TextView textView = (TextView) rowView.findViewById(R.id.label);
|
||||
minitext = (TextView) rowView.findViewById(R.id.subtitle);
|
||||
// TextView lasttime = (TextView) rowView.findViewById(R.id.lasttime);
|
||||
|
||||
ImageView onlinestats = (ImageView)rowView.findViewById(R.id.status);
|
||||
imageView = (ImageView) rowView.findViewById(R.id.logo);
|
||||
|
||||
// ImageView Bau die Kontakt View auf
|
||||
textView.setText(values[position].getKontaktName());
|
||||
|
||||
|
||||
//Textzuweisung auf die methode verlagern
|
||||
if(values[position].getKontaktName().equals("Demo")) {
|
||||
getM = new Thread(new ReadLastMessage(values[position].getKontaktName(), inflater));
|
||||
getM.start();
|
||||
@@ -78,12 +69,6 @@ public class KontaktAdapter extends ArrayAdapter<ContactList> {
|
||||
minitext.setText("Hier könnte auch ihre Nachricht stehen");
|
||||
|
||||
|
||||
Log.v("Bis hierhin","Alles correct");
|
||||
|
||||
//get last Message from File
|
||||
//filedaten = ReadLastMessage(values[position].getKontaktName(),inflater);
|
||||
|
||||
//abfrage mit demo ist provisorium weil zurzeit alle auf demo zugreifen würden
|
||||
/*if(values[position].getKontaktName().equals("Demo") && filedaten != null)
|
||||
minitext.setText(filedaten[0]);
|
||||
else
|
||||
@@ -98,49 +83,52 @@ public class KontaktAdapter extends ArrayAdapter<ContactList> {
|
||||
//Konvert byte[] to Image
|
||||
Bitmap i = BitmapFactory.decodeByteArray(values[position].getPicture(),0,values[position].getPicture().length);
|
||||
|
||||
getPic = new Thread(new GetCircleBitmap(i));
|
||||
|
||||
|
||||
getPic = new Thread(new CircleBitmapCreator(i));
|
||||
getPic.start();
|
||||
|
||||
// t.interrupt();
|
||||
// t.interrupt();
|
||||
|
||||
//imageView.setImageBitmap(bitmaping);
|
||||
}else {
|
||||
// imageView.setImageBitmap(CircleBitmapCreator(i));
|
||||
} else {
|
||||
//wenn der kontakt kein bild besitzt dann nimm Default bild
|
||||
//Bitmap customerImage =((BitmapDrawable).getDrawable(R.drawable.katze3)).getBitmap();
|
||||
Bitmap bitmap = BitmapFactory.decodeResource(inflater.getContext().getResources(), R.drawable.katze3);
|
||||
// imageView.setImageResource(R.drawable.katze3);
|
||||
Bitmap bitmap = decodeSampledBitmapFromResource(inflater.getContext().getResources(), R.drawable.katze3, 100, 100);//BitmapFactory.decodeResource(inflater.getContext().getResources(), R.drawable.katze3);
|
||||
|
||||
getPic = new Thread(new GetCircleBitmap(bitmap));
|
||||
|
||||
|
||||
// imageView.setImageResource(CircleBitmapCreator(bitmap));
|
||||
|
||||
getPic = new Thread(new CircleBitmapCreator(bitmap));
|
||||
getPic.start();
|
||||
|
||||
|
||||
|
||||
// imageView.setImageBitmap(bitmaping);
|
||||
// imageView.setImageBitmap(CircleBitmapCreator(bitmap));
|
||||
}
|
||||
|
||||
//if statement ob kontakt online oder net
|
||||
if(values[position].getArt().equals("1"))
|
||||
onlinestats.setImageResource(R.drawable.online);
|
||||
else if(values[position].getArt().equals("2"))
|
||||
onlinestats.setImageResource(R.drawable.beschaftigt);
|
||||
else if(values[position].getArt().equals("3"))
|
||||
onlinestats.setImageResource(R.drawable.offline);
|
||||
// if(values[position].getArt().equals("1"))
|
||||
// onlinestats.setImageResource(R.drawable.online);
|
||||
// else if(values[position].getArt().equals("2"))
|
||||
// onlinestats.setImageResource(R.drawable.beschaftigt);
|
||||
// else if(values[position].getArt().equals("3"))
|
||||
// onlinestats.setImageResource(R.drawable.offline);
|
||||
|
||||
|
||||
return rowView;
|
||||
}
|
||||
|
||||
|
||||
public class GetCircleBitmap implements Runnable{
|
||||
public class CircleBitmapCreator implements Runnable{
|
||||
|
||||
Bitmap bitmap;
|
||||
GetCircleBitmap(Bitmap _bitmap){
|
||||
CircleBitmapCreator(Bitmap _bitmap){
|
||||
this.bitmap = _bitmap;
|
||||
}
|
||||
|
||||
public void run(){
|
||||
final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
|
||||
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
|
||||
final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
|
||||
final Canvas canvas = new Canvas(output);
|
||||
|
||||
final int color = Color.RED;
|
||||
@@ -160,29 +148,46 @@ public class KontaktAdapter extends ArrayAdapter<ContactList> {
|
||||
|
||||
bitmaping = output;
|
||||
|
||||
Log.v("GET Circled"," Picture");
|
||||
|
||||
//if(imageView != null)
|
||||
// imageView.setImageBitmap(output);
|
||||
|
||||
|
||||
imageView.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
imageView.setImageBitmap(bitmaping);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) {
|
||||
final BitmapFactory.Options options = new BitmapFactory.Options();
|
||||
options.inJustDecodeBounds = true;
|
||||
BitmapFactory.decodeResource(res, resId, options);
|
||||
|
||||
//Convert Bitmap for a circled bitmap
|
||||
/*private Bitmap GetCircleBitmap(Bitmap bitmap ) {
|
||||
final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
|
||||
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
|
||||
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
|
||||
|
||||
options.inJustDecodeBounds = false;
|
||||
return BitmapFactory.decodeResource(res, resId, options);
|
||||
}
|
||||
|
||||
public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
|
||||
final int height = options.outHeight;
|
||||
final int width = options.outWidth;
|
||||
|
||||
int inSampleSize = 1;
|
||||
|
||||
if(height > reqHeight || width > reqWidth) {
|
||||
if(width > height) {
|
||||
inSampleSize = Math.round((float) height / (float) reqHeight);
|
||||
}
|
||||
else {
|
||||
inSampleSize = Math.round((float) width / (float) reqWidth);
|
||||
}
|
||||
}
|
||||
|
||||
return inSampleSize;
|
||||
}
|
||||
|
||||
/* private Bitmap CircleBitmapCreator(Bitmap bitmap ) {
|
||||
final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
|
||||
final Canvas canvas = new Canvas(output);
|
||||
|
||||
final int color = Color.RED;
|
||||
@@ -203,8 +208,6 @@ public class KontaktAdapter extends ArrayAdapter<ContactList> {
|
||||
return output;
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
public class ReadLastMessage implements Runnable{
|
||||
|
||||
LayoutInflater inflater;
|
||||
@@ -258,28 +261,21 @@ public class KontaktAdapter extends ArrayAdapter<ContactList> {
|
||||
stream.close();
|
||||
in.close();
|
||||
|
||||
// filedaten =ret;
|
||||
|
||||
// filedaten =ret;
|
||||
|
||||
|
||||
if(minitext != null)
|
||||
if(minitext != null) {
|
||||
minitext.setText(ret[0]);
|
||||
}
|
||||
|
||||
}catch(Exception e){
|
||||
Log.v("Fehler 2 ",e.getMessage());
|
||||
e.printStackTrace();
|
||||
// return null;
|
||||
// return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public String[] ReadLastMessage(String filename,LayoutInflater inflater){
|
||||
public String[] ReadLastMessage(String filename, LayoutInflater inflater){
|
||||
try{
|
||||
File filesDir = inflater.getContext().getFilesDir();
|
||||
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
package beyondsoft.bewomitarbeiterapp;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ListActivity;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
import android.widget.StackView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by bib on 02.05.2016.
|
||||
*/
|
||||
public class KontaktChatActiviti extends ListActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
//erstelle für Demo ein pic einmalig
|
||||
/* ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
Bitmap a =((BitmapDrawable)getResources().getDrawable(R.drawable.bslogo)).getBitmap();
|
||||
a.compress(Bitmap.CompressFormat.JPEG,0,stream);
|
||||
byte[] x = stream.toByteArray();
|
||||
*/
|
||||
DatabaseHandler db = new DatabaseHandler(this);
|
||||
|
||||
//Clear Database from Data
|
||||
/* db.onUpgrade(db.getReadableDatabase(),1,2);
|
||||
//Add New ContactList
|
||||
db.addContact(new ContactList("Demo","1",x));
|
||||
db.addContact(new ContactList("Peter Fritz","2"));
|
||||
db.addContact(new ContactList("mattis Schlitz","3"));
|
||||
db.addContact(new ContactList("jan Detlef","2"));
|
||||
*/
|
||||
|
||||
|
||||
List<ContactList> lc = db.getAllContacts();
|
||||
|
||||
ContactList[] Klientel = lc.toArray(new ContactList[lc.size()]);
|
||||
|
||||
setListAdapter(new KontaktAdapter(this,Klientel));
|
||||
db.close();
|
||||
}
|
||||
|
||||
//############### Menue bereiche ##########################
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
getMenuInflater().inflate(R.menu.menu_main_activity_mitarbeiter, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle action bar item clicks here. The action bar will
|
||||
// automatically handle clicks on the Home/Up button, so long
|
||||
// as you specify a parent activity in AndroidManifest.xml.
|
||||
int id = item.getItemId();
|
||||
|
||||
//noinspection SimplifiableIfStatement
|
||||
|
||||
if (id == R.id.action_Logout) {
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
//########################################################
|
||||
|
||||
@Override
|
||||
protected void onListItemClick(ListView l, View v, int position, long id) {
|
||||
//get selected items
|
||||
ContactList selectedValue = (ContactList) getListAdapter().getItem(position);
|
||||
Toast.makeText(this, selectedValue.getKontaktName(), Toast.LENGTH_SHORT).show();
|
||||
|
||||
//
|
||||
|
||||
Bundle korb = new Bundle();
|
||||
|
||||
korb.putString("Name",selectedValue.getKontaktName());
|
||||
|
||||
Intent in = new Intent(getBaseContext(), ChatActiviti.class);
|
||||
in.putExtras(korb);
|
||||
|
||||
//gebe bild mit für den Cat
|
||||
if(selectedValue.getPicture() == null){
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
Bitmap a = BitmapFactory.decodeResource(getResources(), R.drawable.katze3);
|
||||
a.compress(Bitmap.CompressFormat.JPEG,0,stream);
|
||||
byte[] x = stream.toByteArray();
|
||||
in.putExtra("Bild",x);
|
||||
}else
|
||||
in.putExtra("Bild",selectedValue.getPicture());
|
||||
|
||||
|
||||
|
||||
startActivity(in);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
package beyondsoft.bewomitarbeiterapp;
|
||||
|
||||
import android.app.ListActivity;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ListView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.octo.android.robospice.SpiceManager;
|
||||
import com.octo.android.robospice.UncachedSpiceService;
|
||||
import com.octo.android.robospice.persistence.exception.SpiceException;
|
||||
import com.octo.android.robospice.request.listener.RequestListener;
|
||||
|
||||
import org.ksoap2.serialization.PropertyInfo;
|
||||
import org.ksoap2.serialization.SoapPrimitive;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import entities.ChatPerson;
|
||||
import soapConnection.JsonSoapPrimitiveRequest;
|
||||
import soapConnection.SoapCalls;
|
||||
import soapConnection.SoapConnectionManager;
|
||||
|
||||
/**
|
||||
* Created by bib on 02.05.2016.
|
||||
*/
|
||||
public class KontaktChatActivity extends ListActivity {
|
||||
|
||||
private SpiceManager spiceManager = new SpiceManager(UncachedSpiceService.class);
|
||||
private DatabaseHandler databaseHandler;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
//erstelle für Demo ein pic einmalig
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
Bitmap a =((BitmapDrawable)getResources().getDrawable(R.drawable.bslogo)).getBitmap();
|
||||
a.compress(Bitmap.CompressFormat.JPEG,0,stream);
|
||||
byte[] x = stream.toByteArray();
|
||||
|
||||
databaseHandler = new DatabaseHandler(this);
|
||||
|
||||
//Clear Database from Data
|
||||
//TODO: nicht löschen, sondern updaten
|
||||
databaseHandler.onUpgrade(databaseHandler.getReadableDatabase(),1,2);
|
||||
|
||||
ArrayList<PropertyInfo> propertyInfos = new ArrayList<>();
|
||||
propertyInfos.add(SoapConnectionManager.BuildProperty("pPersonOid", SoapConnectionManager.User.getPersonOid(), Long.class));
|
||||
|
||||
JsonSoapPrimitiveRequest request = new JsonSoapPrimitiveRequest(SoapCalls.GET_CONTACTS_FOR_PERSON, propertyInfos);
|
||||
spiceManager.execute(request, new JsonSoapPrimitiveRequestListener());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
getMenuInflater().inflate(R.menu.menu_main_activity_mitarbeiter, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle action bar item clicks here. The action bar will
|
||||
// automatically handle clicks on the Home/Up button, so long
|
||||
// as you specify a parent activity in AndroidManifest.xml.
|
||||
int id = item.getItemId();
|
||||
|
||||
//noinspection SimplifiableIfStatement
|
||||
|
||||
if (id == R.id.action_Logout) {
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onListItemClick(ListView l, View v, int position, long id) {
|
||||
//get selected items
|
||||
ContactListItem selectedValue = (ContactListItem) getListAdapter().getItem(position);
|
||||
|
||||
Bundle korb = new Bundle();
|
||||
|
||||
korb.putString("Name", selectedValue.getKontaktName());
|
||||
korb.putInt("RecipientOid", selectedValue.get_personOid());
|
||||
Log.i("KontaktChatActivity", "EmpfängerOid: " + selectedValue.get_personOid());
|
||||
|
||||
Intent in = new Intent(getBaseContext(), ChatActivity.class);
|
||||
in.putExtras(korb);
|
||||
|
||||
//Gib Bild für den Chat mit
|
||||
if(selectedValue.getPicture() == null){
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
Bitmap a = BitmapFactory.decodeResource(getResources(), R.drawable.katze3);
|
||||
a.compress(Bitmap.CompressFormat.JPEG,0,stream);
|
||||
byte[] x = stream.toByteArray();
|
||||
in.putExtra("Bild", x);
|
||||
}else
|
||||
in.putExtra("Bild", selectedValue.getPicture());
|
||||
|
||||
startActivity(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop(){
|
||||
spiceManager.shouldStop();
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
spiceManager.start(this);
|
||||
}
|
||||
|
||||
private final class JsonSoapPrimitiveRequestListener implements RequestListener<SoapPrimitive> {
|
||||
|
||||
@Override
|
||||
public void onRequestFailure(SpiceException spiceException) {
|
||||
Toast.makeText(KontaktChatActivity.this, "An error occured while loading the contact list", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestSuccess(SoapPrimitive soapPrimitive) {
|
||||
Gson gson = new GsonBuilder().create();
|
||||
|
||||
Type listType = new TypeToken<ArrayList<ChatPerson>>(){}.getType();
|
||||
|
||||
ArrayList<ChatPerson> result = gson.fromJson(soapPrimitive.toString(), listType);
|
||||
|
||||
for(ChatPerson cp : result) {
|
||||
databaseHandler.addContact(new ContactListItem(cp.Name, cp.Oid));
|
||||
}
|
||||
|
||||
List<ContactListItem> lc = databaseHandler.getAllContacts();
|
||||
|
||||
ContactListItem[] Klientel = lc.toArray(new ContactListItem[lc.size()]);
|
||||
|
||||
// TODO: neuen Adapter schreiben
|
||||
setListAdapter(new KontaktAdapter(KontaktChatActivity.this, Klientel));
|
||||
databaseHandler.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,115 +0,0 @@
|
||||
package beyondsoft.bewomitarbeiterapp;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
/**
|
||||
* Created by bib on 02.05.2016.
|
||||
*/
|
||||
public class LoginActiviti extends ActionBarActivity {
|
||||
//##################### Variablen ####################
|
||||
protected Button loginbutton;
|
||||
protected Button beendenbutton;
|
||||
|
||||
protected EditText kunnr;
|
||||
protected EditText user;
|
||||
protected EditText paswd;
|
||||
protected String[] MitarbeiterloginString = new String[3];
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.login);
|
||||
|
||||
setzeButtonListener();
|
||||
setzeEditText();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//########################## Action events der Jeweiligen Buttons
|
||||
public void LoginApp(){
|
||||
|
||||
//Server Überprüfung mit den werten
|
||||
|
||||
//Hier mus Serveraufruf mit rückgabe wert als string array
|
||||
|
||||
MitarbeiterloginString[0]="placeholder";
|
||||
MitarbeiterloginString[1]="placeholder";
|
||||
MitarbeiterloginString[2]="placeholder";
|
||||
|
||||
|
||||
if(kunnr.getText().toString().equals(MitarbeiterloginString[0]) && user.getText().toString().equals(MitarbeiterloginString[1]) && paswd.getText().toString().equals(MitarbeiterloginString[2])) {
|
||||
|
||||
startActivity(new Intent(getBaseContext(), MainActivityMitarbeiter.class));
|
||||
|
||||
}else if(user.getText().toString().equals("demo")){
|
||||
|
||||
startActivity(new Intent(getBaseContext(), MainActivityMitarbeiter.class));
|
||||
|
||||
}else{
|
||||
|
||||
new AlertDialog.Builder(this).setTitle("Fehler").setMessage("Benutzername oder Passwort falsch!").setNeutralButton("Schließen", null).show();
|
||||
|
||||
kunnr.setText("");
|
||||
user.setText("");
|
||||
paswd.setText("");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void LogoutApp(){
|
||||
|
||||
System.exit(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void setzeButtonListener(){
|
||||
|
||||
//################## Kalender Button ######################
|
||||
loginbutton = (Button) findViewById(R.id.Loginbutton);
|
||||
loginbutton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
LoginApp();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
//################# Kassen Button #########################
|
||||
beendenbutton = (Button) findViewById(R.id.Beendenbutton);
|
||||
beendenbutton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
LogoutApp();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void setzeEditText(){
|
||||
kunnr = (EditText) findViewById(R.id.KundennrText);
|
||||
|
||||
user = (EditText) findViewById(R.id.UsernameText);
|
||||
|
||||
paswd = (EditText) findViewById(R.id.PWText);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,362 @@
|
||||
package beyondsoft.bewomitarbeiterapp;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Base64;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.android.volley.Request;
|
||||
import com.android.volley.RequestQueue;
|
||||
import com.android.volley.Response;
|
||||
import com.android.volley.VolleyError;
|
||||
import com.android.volley.toolbox.StringRequest;
|
||||
import com.android.volley.toolbox.Volley;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.octo.android.robospice.SpiceManager;
|
||||
import com.octo.android.robospice.UncachedSpiceService;
|
||||
import com.octo.android.robospice.persistence.exception.SpiceException;
|
||||
import com.octo.android.robospice.request.listener.RequestListener;
|
||||
|
||||
import org.ksoap2.serialization.PropertyInfo;
|
||||
import org.ksoap2.serialization.SoapPrimitive;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.security.InvalidAlgorithmParameterException;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.crypto.NoSuchPaddingException;
|
||||
|
||||
import soapConnection.ApplicationUser;
|
||||
import soapConnection.JsonSoapPrimitiveRequest;
|
||||
import soapConnection.SoapCalls;
|
||||
import soapConnection.SoapConnectionManager;
|
||||
import util.SecurityUtils;
|
||||
import util.Util;
|
||||
|
||||
/**
|
||||
* Created by bib on 02.05.2016.
|
||||
*/
|
||||
public class LoginActivity extends ActionBarActivity {
|
||||
private CheckBox mRememberMeCheckBoxView;
|
||||
private EditText mChatCodeView;
|
||||
private EditText mTenantView;
|
||||
private EditText mUsernameView;
|
||||
private EditText mPasswordView;
|
||||
private View mProgressView;
|
||||
private View mLoginFormView;
|
||||
|
||||
private SpiceManager spiceManager = new SpiceManager(UncachedSpiceService.class);
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_login);
|
||||
|
||||
mChatCodeView = (EditText) findViewById(R.id.token);
|
||||
mTenantView = (EditText) findViewById(R.id.tenant);
|
||||
mUsernameView = (EditText) findViewById(R.id.username);
|
||||
mPasswordView = (EditText) findViewById(R.id.password);
|
||||
mRememberMeCheckBoxView = (CheckBox) findViewById(R.id.remember_me_checkbox);
|
||||
mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
||||
@Override
|
||||
public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
|
||||
if (id == R.id.login || id == EditorInfo.IME_NULL) {
|
||||
attemptLogin();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
Button mSignInButton = (Button) findViewById(R.id.sign_in_button);
|
||||
mSignInButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
attemptLogin();
|
||||
}
|
||||
});
|
||||
|
||||
mLoginFormView = findViewById(R.id.login_form);
|
||||
mProgressView = findViewById(R.id.login_progress);
|
||||
|
||||
SharedPreferences settings = getSharedPreferences(Util.PREFS_NAME, 0);
|
||||
String savedToken = settings.getString(Util.PREFS_TOKEN_KEY, null);
|
||||
String savedTenant = settings.getString(Util.PREFS_TENANT_KEY, null);
|
||||
String savedUsername = settings.getString(Util.PREFS_USERNAME_KEY, null);
|
||||
String savedPassword = settings.getString(Util.PREFS_PASSWORD, null);
|
||||
|
||||
if(savedTenant != null && savedToken != null && savedUsername != null && savedPassword != null) {
|
||||
mRememberMeCheckBoxView.setChecked(true);
|
||||
|
||||
byte[] tokenByteArray = Base64.decode(savedToken, Base64.DEFAULT);
|
||||
ByteArrayInputStream tokenStream = new ByteArrayInputStream(tokenByteArray);
|
||||
|
||||
byte[] tenantByteArray = Base64.decode(savedTenant, Base64.DEFAULT);
|
||||
ByteArrayInputStream tenantStream = new ByteArrayInputStream(tenantByteArray);
|
||||
|
||||
byte[] usernameByteArray = Base64.decode(savedUsername, Base64.DEFAULT);
|
||||
ByteArrayInputStream usernameStream = new ByteArrayInputStream(usernameByteArray);
|
||||
|
||||
byte[] passwordByteArray = Base64.decode(savedPassword, Base64.DEFAULT);
|
||||
ByteArrayInputStream passwordStream = new ByteArrayInputStream(passwordByteArray);
|
||||
|
||||
try {
|
||||
mChatCodeView.setText(SecurityUtils.decrypt(tokenStream).toString());
|
||||
mTenantView.setText(SecurityUtils.decrypt(tenantStream).toString());
|
||||
mUsernameView.setText(SecurityUtils.decrypt(usernameStream).toString());
|
||||
mPasswordView.setText(SecurityUtils.decrypt(passwordStream).toString());
|
||||
} catch (IOException | NoSuchAlgorithmException | NoSuchPaddingException | InvalidAlgorithmParameterException | InvalidKeyException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
|
||||
super.onStart();
|
||||
spiceManager.start(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
|
||||
spiceManager.shouldStop();
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
private void attemptLogin() {
|
||||
|
||||
mTenantView.setError(null);
|
||||
mChatCodeView.setError(null);
|
||||
mUsernameView.setError(null);
|
||||
mPasswordView.setError(null);
|
||||
|
||||
final String username = mUsernameView.getText().toString();
|
||||
final String password = mPasswordView.getText().toString();
|
||||
final String tenant = mTenantView.getText().toString();
|
||||
String token = mChatCodeView.getText().toString();
|
||||
|
||||
boolean cancel = false;
|
||||
View focusView = null;
|
||||
|
||||
if (TextUtils.isEmpty(password)) {
|
||||
mPasswordView.setError(getString(R.string.error_invalid_input));
|
||||
focusView = mPasswordView;
|
||||
cancel = true;
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(username)) {
|
||||
mUsernameView.setError(getString(R.string.error_invalid_input));
|
||||
focusView = mUsernameView;
|
||||
cancel = true;
|
||||
}
|
||||
|
||||
if(TextUtils.isEmpty(tenant)) {
|
||||
mTenantView.setError(getString(R.string.error_invalid_input));
|
||||
focusView = mTenantView;
|
||||
cancel = true;
|
||||
}
|
||||
|
||||
if(TextUtils.isEmpty(token)) {
|
||||
mChatCodeView.setError(getString(R.string.error_invalid_input));
|
||||
focusView = mChatCodeView;
|
||||
cancel = true;
|
||||
}
|
||||
|
||||
if (cancel) {
|
||||
focusView.requestFocus();
|
||||
}
|
||||
else {
|
||||
showProgress(true);
|
||||
|
||||
RequestQueue queue = Volley.newRequestQueue(LoginActivity.this);
|
||||
String url = SoapCalls.TOKEN_CHECK_URL + token;
|
||||
|
||||
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
|
||||
@Override
|
||||
public void onResponse(String response) {
|
||||
if(response == null || TextUtils.isEmpty(response)) {
|
||||
showProgress(false);
|
||||
|
||||
clearSharedPreferences();
|
||||
|
||||
mPasswordView.setError(getString(R.string.error_invalid_input));
|
||||
mUsernameView.setError(getString(R.string.error_invalid_input));
|
||||
mChatCodeView.setError(getString(R.string.error_invalid_input));
|
||||
mTenantView.setError(getString(R.string.error_invalid_input));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<PropertyInfo> propertyInfos = new ArrayList<>();
|
||||
propertyInfos.add(SoapConnectionManager.BuildProperty("pTenant", tenant, String.class));
|
||||
propertyInfos.add(SoapConnectionManager.BuildProperty("pUsername", username, String.class));
|
||||
propertyInfos.add(SoapConnectionManager.BuildProperty("pPassword", password, String.class));
|
||||
|
||||
JsonSoapPrimitiveRequest request = new JsonSoapPrimitiveRequest(SoapCalls.LOGIN_CALL, propertyInfos);
|
||||
spiceManager.execute(request, new JsonSoapPrimitiveRequestListener());
|
||||
}
|
||||
}, new Response.ErrorListener() {
|
||||
@Override
|
||||
public void onErrorResponse(VolleyError error) {
|
||||
showProgress(false);
|
||||
Log.e("Error sending request", (error == null ? "error is null" : error.getMessage()));
|
||||
}
|
||||
});
|
||||
|
||||
queue.add(stringRequest);
|
||||
}
|
||||
}
|
||||
|
||||
public void rememberMeOnClick(View view) {
|
||||
CheckBox rememberMeCheckBox = (CheckBox) view;
|
||||
|
||||
if(!rememberMeCheckBox.isChecked()) {
|
||||
clearSharedPreferences();
|
||||
}
|
||||
}
|
||||
|
||||
private final class JsonSoapPrimitiveRequestListener implements RequestListener<SoapPrimitive> {
|
||||
|
||||
@Override
|
||||
public void onRequestFailure(SpiceException spiceException) {
|
||||
|
||||
showProgress(false);
|
||||
Log.e("Error", spiceException.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestSuccess(SoapPrimitive soapPrimitive) {
|
||||
//TODO: UserDC statt bool zurückgeben. Null bei fehlgeschlagenem Login
|
||||
|
||||
if(soapPrimitive == null) {
|
||||
showProgress(false);
|
||||
showLoginUIErrors(true, true, true, true);
|
||||
|
||||
Toast.makeText(LoginActivity.this, "Login returned null", Toast.LENGTH_SHORT).show();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Gson gson = new GsonBuilder().create();
|
||||
|
||||
//boolean loginResult = Boolean.valueOf(soapPrimitive.toString());
|
||||
//Employee loggedInUser = gson.fromJson(soapPrimitive.toString(), Employee.class);
|
||||
String abc = soapPrimitive.toString();
|
||||
|
||||
if(abc != null) {
|
||||
String[] blubb = abc.split(";");
|
||||
SoapConnectionManager.User = new ApplicationUser(blubb[1], blubb[2], Long.valueOf(blubb[0]), Long.valueOf(blubb[3]));
|
||||
|
||||
if(mRememberMeCheckBoxView.isChecked()) {
|
||||
ByteArrayOutputStream tokenOutputStream = new ByteArrayOutputStream();
|
||||
ByteArrayOutputStream tenantOutputStream = new ByteArrayOutputStream();
|
||||
ByteArrayOutputStream usernameOutputStream = new ByteArrayOutputStream();
|
||||
ByteArrayOutputStream passwordOutputStream = new ByteArrayOutputStream();
|
||||
|
||||
try {
|
||||
SecurityUtils.encrypt(mChatCodeView.getText().toString(), tokenOutputStream);
|
||||
SecurityUtils.encrypt(mTenantView.getText().toString(), tenantOutputStream);
|
||||
SecurityUtils.encrypt(mUsernameView.getText().toString(), usernameOutputStream);
|
||||
SecurityUtils.encrypt(mPasswordView.getText().toString(), passwordOutputStream);
|
||||
|
||||
SharedPreferences settings = getSharedPreferences(Util.PREFS_NAME, 0);
|
||||
SharedPreferences.Editor editor = settings.edit();
|
||||
|
||||
editor.putString(Util.PREFS_TOKEN_KEY, Base64.encodeToString(tokenOutputStream.toByteArray(), Base64.DEFAULT));
|
||||
editor.putString(Util.PREFS_TENANT_KEY, Base64.encodeToString(tenantOutputStream.toByteArray(), Base64.DEFAULT));
|
||||
editor.putString(Util.PREFS_USERNAME_KEY, Base64.encodeToString(usernameOutputStream.toByteArray(), Base64.DEFAULT));
|
||||
editor.putString(Util.PREFS_PASSWORD, Base64.encodeToString(passwordOutputStream.toByteArray(), Base64.DEFAULT));
|
||||
|
||||
editor.apply();
|
||||
|
||||
} catch (IOException | NoSuchAlgorithmException | NoSuchPaddingException | InvalidAlgorithmParameterException | InvalidKeyException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
Intent mainActivityMitarbeiter = new Intent(LoginActivity.this, MainActivityMitarbeiter.class);
|
||||
LoginActivity.this.startActivity(mainActivityMitarbeiter);
|
||||
}
|
||||
else {
|
||||
showProgress(false);
|
||||
showLoginUIErrors(true, true, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void showLoginUIErrors(boolean token, boolean tenant, boolean username, boolean password) {
|
||||
|
||||
mChatCodeView.setError(token ? getString(R.string.error_invalid_input) : null);
|
||||
|
||||
mTenantView.setError(tenant ? getString(R.string.error_invalid_input) : null);
|
||||
|
||||
mUsernameView.setError(username ? getString(R.string.error_invalid_input) : null);
|
||||
|
||||
mPasswordView.setError(password ? getString(R.string.error_invalid_input) : null);
|
||||
}
|
||||
|
||||
private void clearSharedPreferences() {
|
||||
|
||||
SharedPreferences settings = getSharedPreferences(Util.PREFS_NAME, 0);
|
||||
settings.edit().clear().commit();
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
|
||||
private void showProgress(final boolean show) {
|
||||
// On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
|
||||
// for very easy animations. If available, use these APIs to fade-in
|
||||
// the progress spinner.
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
|
||||
int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
|
||||
|
||||
mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
|
||||
mLoginFormView.animate().setDuration(shortAnimTime).alpha(
|
||||
show ? 0 : 1).setListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
});
|
||||
|
||||
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
mProgressView.animate().setDuration(shortAnimTime).alpha(
|
||||
show ? 1 : 0).setListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
// The ViewPropertyAnimator APIs are not available, so simply show
|
||||
// and hide the relevant UI components.
|
||||
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,6 @@ import android.widget.Button;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
@@ -27,6 +26,11 @@ import java.util.Calendar;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import soapConnection.DataIdentifier;
|
||||
import soapConnection.Packet;
|
||||
import soapConnection.SoapCalls;
|
||||
import soapConnection.SoapConnectionManager;
|
||||
|
||||
|
||||
public class MainActivityMitarbeiter extends Activity {
|
||||
|
||||
@@ -34,17 +38,16 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
protected Button chatbutton;
|
||||
protected Button logoutbutton;
|
||||
|
||||
|
||||
//########### Server Relevante Variablen #######################################################
|
||||
public static Socket socket;
|
||||
protected static final String dstAddress = "192.168.1.117"; //10.0.2.2"
|
||||
protected static final String dstAddress = SoapCalls.DESTINATION_ADDRESS;
|
||||
protected static final int dstPort = 5000;
|
||||
DataOutputStream st;
|
||||
public static BufferedReader in = null;
|
||||
//Name der Zum Server Gesndet wird
|
||||
DataOutputStream dataOutputStream;
|
||||
public static BufferedReader in = null;
|
||||
|
||||
//Name, der Zum Server gesendet wird
|
||||
protected String name;
|
||||
|
||||
//Name der vom Server Erhalten wird
|
||||
//Name, der vom Server erhalten wird
|
||||
//protected String recname;
|
||||
|
||||
File file;
|
||||
@@ -53,16 +56,12 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
|
||||
public static Thread listen;
|
||||
|
||||
public static boolean isThreadPause = false;
|
||||
|
||||
//Für Notification
|
||||
private static boolean isOnStop = false;
|
||||
private static boolean ankommenderName = false;
|
||||
|
||||
//Testweise
|
||||
// protected Map<String,String> MapMessage = new HashMap<>();
|
||||
|
||||
String personoid;
|
||||
//##############################################################################################
|
||||
int personOid;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -71,17 +70,11 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
|
||||
setzeButtonListener();
|
||||
|
||||
// Das ist der Name des Grade benutzen devices
|
||||
name= "Franz";
|
||||
name = SoapConnectionManager.User.getFullName();
|
||||
|
||||
personoid="1";
|
||||
//Erstelle für jedes SQLite DatenSatz ein File
|
||||
// CreateFile();
|
||||
personOid = SoapConnectionManager.User.getPersonOid() <= Integer.MAX_VALUE ? SoapConnectionManager.User.getPersonOid().intValue() : 0;
|
||||
|
||||
|
||||
//Starte hier die Server Connection + Daten receive und speichere daten local in den Datensatz
|
||||
StartServerConnection();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -110,7 +103,6 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
|
||||
public void setzeButtonListener() {
|
||||
|
||||
//################## Kalender Button ######################
|
||||
dokubutton = (Button) findViewById(R.id.Dokubutton);
|
||||
dokubutton.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
@@ -125,7 +117,7 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
public void onClick(View v) {
|
||||
|
||||
startActivity(new Intent(getBaseContext(),KontaktChatActivity.class));
|
||||
|
||||
//SendAfterGetConnection();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -133,63 +125,55 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
logoutbutton.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
|
||||
System.exit(0);
|
||||
System.exit(0);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//################ Server Gedöns Was im Hintergrund der Gesamten app laufen soll ###################
|
||||
public void StartServerConnection(){
|
||||
|
||||
Log.v("Status","Bin in start server connection");
|
||||
new Thread(new OpenConnection()).start();
|
||||
|
||||
//Starte hier die Server Connection + Daten receive und speichere daten local in den Datensatz
|
||||
|
||||
}
|
||||
//##################################################################################################
|
||||
|
||||
public class OpenConnection implements Runnable{
|
||||
public void run(){
|
||||
try {
|
||||
socket = new Socket(dstAddress,dstPort);
|
||||
// Log.v("Status: ","Verbindung wurde aufgebaut");
|
||||
socket = new Socket(dstAddress, dstPort);
|
||||
|
||||
//Prüfe und Sende die nicht Gesendeten Nachrichten
|
||||
Log.d("OpenConnection","Verbindung hergestellt");
|
||||
SendAfterGetConnection();
|
||||
|
||||
//nachricht an server senden welcher name jetz aktiv connected ist
|
||||
st = new DataOutputStream(socket.getOutputStream());
|
||||
name=name+"/1"+"?"+personoid;
|
||||
byte[] ts = name.getBytes();
|
||||
st.write(ts);
|
||||
st.flush();
|
||||
dataOutputStream = new DataOutputStream(socket.getOutputStream());
|
||||
// name = name + "/1" + "?" + personOid;
|
||||
// byte[] ts = name.getBytes();
|
||||
// dataOutputStream.write(ts);
|
||||
// dataOutputStream.flush();
|
||||
|
||||
// Starte SocketListener
|
||||
listen = new Thread(new SocketListener());
|
||||
listen.start();
|
||||
|
||||
} catch (Exception e) {
|
||||
Log.v("Connection: ","Konnte nicht Aufgebaut werden. Es wird erneut versucht");
|
||||
Log.e("Connection: ","Konnte nicht aufgebaut werden. Es wird erneut versucht. Nachricht: " + e.getMessage());
|
||||
socket = null;
|
||||
try {
|
||||
new Timer().schedule(new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
Log.v("Status", "Starte jetzt den Neu versuch");
|
||||
Log.i("Status", "Starte jetzt den Neu versuch");
|
||||
StartServerConnection();
|
||||
}
|
||||
}, 120000); //----> Versuche beim Scheitern nach 2 Minuten eine Neue Verbindung aufzubauen
|
||||
}catch(Exception s){
|
||||
Log.v("Fehler",s.getMessage());
|
||||
Log.e("Fehler", s.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class SocketListener implements Runnable {
|
||||
|
||||
String str;
|
||||
@@ -197,74 +181,73 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
public void run() {
|
||||
try {
|
||||
while (true) {
|
||||
if (socket != null) {
|
||||
if (socket.isConnected()) { //----------> isThreadPausabfrage dass könnte das problem mit dem Socketlistener vorort beheben
|
||||
if(!isThreadPause){
|
||||
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
||||
Log.v("Connection Steht ", "Message Erhalten");
|
||||
String s = in.readLine();
|
||||
if (socket != null) {
|
||||
if (socket.isConnected()) { //----------> isThreadPausabfrage das könnte das Problem mit dem SocketListener vorort beheben
|
||||
|
||||
String[] splitt = s.split(":");
|
||||
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
||||
Log.v("Connection Steht ", "Message Erhalten");
|
||||
String s = in.readLine();
|
||||
|
||||
str = s;
|
||||
String[] splitt = s.split(":");
|
||||
|
||||
if (s == null)
|
||||
break;
|
||||
str = s;
|
||||
|
||||
Calendar c = Calendar.getInstance();
|
||||
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
|
||||
String formattedDate = df.format(c.getTime());
|
||||
if (s == null) {
|
||||
break;
|
||||
}
|
||||
|
||||
boolean determind = false;
|
||||
Calendar c = Calendar.getInstance();
|
||||
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
|
||||
String formattedDate = df.format(c.getTime());
|
||||
|
||||
Log.v("MESSAGE",splitt[0]);
|
||||
CreateFile(splitt[0]);
|
||||
boolean determind = false;
|
||||
|
||||
//<<<<<<------------ Du ab nach oben
|
||||
//##############-----------------
|
||||
Log.v("MESSAGE", "Komme ich den in den Save Bereich Hinein");
|
||||
Log.v("MESSAGE",splitt[0]);
|
||||
CreateFile(splitt[0]);
|
||||
|
||||
WriteMessagesfromStorage(splitt[1] + "/" + determind + "%" + formattedDate + "\n");
|
||||
Log.v("MESSAGE", "Komme ich in den Save-Bereich hinein");
|
||||
|
||||
WriteMessagesfromStorage(splitt[1] + "/" + determind + "%" + formattedDate + "\n");
|
||||
|
||||
SetNotify(splitt[0], splitt[1]);
|
||||
|
||||
SetNotifi(splitt[0], splitt[1]);
|
||||
// adapter.notifyDataSetChanged();
|
||||
//#############------------------ mmmmmmmmmaaaaaaaaaaaannnnnnnnn
|
||||
}
|
||||
} else {
|
||||
if (in != null)
|
||||
if (in != null) {
|
||||
in.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}catch(Exception e){
|
||||
Log.v("Status ","Verbindung zum Server wurde seitens dem Server getrennt ");
|
||||
} catch(Exception e) {
|
||||
Log.v("Status ","Verbindung zum Server wurde serverseitig getrennt ");
|
||||
// Log.e(getClass().getName(),e.getMessage());
|
||||
in = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//##################### Close Connection #######################
|
||||
public class ConnectionClose implements Runnable{
|
||||
public void run(){
|
||||
try {
|
||||
if (st != null) {
|
||||
st.flush();
|
||||
st.close();
|
||||
if (dataOutputStream != null) {
|
||||
dataOutputStream.flush();
|
||||
dataOutputStream.close();
|
||||
}
|
||||
if (socket != null)
|
||||
|
||||
if (socket != null) {
|
||||
socket.close();
|
||||
}
|
||||
|
||||
if(in != null)
|
||||
if(in != null) {
|
||||
in = null;
|
||||
}
|
||||
|
||||
Log.v("Status","Socket succesfull closed");
|
||||
Log.v("Status","Socket succesfully closed");
|
||||
}catch(IOException se){
|
||||
Log.v("Fehler Aufgetreten",se.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
//##############################################################
|
||||
|
||||
public void CreateFile(String filename){
|
||||
|
||||
@@ -285,47 +268,63 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
} //---> Zu sortieren der message zum Jeweiligen kontakt
|
||||
|
||||
public void SendAfterGetConnection(){
|
||||
CreateCustomFileForUnSendMessage();
|
||||
|
||||
if(Unsendfile.canRead() && socket.isConnected()){
|
||||
try{
|
||||
Log.v("Info","Eine ungesendete NAchricht wurde gefunden");
|
||||
if(socket.isConnected()) {
|
||||
try {
|
||||
Packet p = new Packet();
|
||||
p.ChatName = SoapConnectionManager.User.getFullName();
|
||||
p.ChatDataIdentifier = DataIdentifier.LOGIN;
|
||||
p.SenderPersonOid = SoapConnectionManager.User.getPersonOid().intValue();
|
||||
//p.RecipientPersonOid = 3;
|
||||
p.ChatMessage = "Chromosomenfasching";
|
||||
|
||||
FileInputStream stream = new FileInputStream(Unsendfile);
|
||||
InputStreamReader in = new InputStreamReader(stream);
|
||||
BufferedReader readLn = new BufferedReader(in);
|
||||
|
||||
String line = readLn.readLine();
|
||||
String allLines="";
|
||||
|
||||
while (line != null) {
|
||||
allLines += line;
|
||||
|
||||
Log.v("Info","Eine ungesendete NAchricht 4");
|
||||
String[] splitt = line.split("/");
|
||||
|
||||
if(splitt.length >1 ) {
|
||||
String[] ArtDate = splitt[1].split("%");
|
||||
|
||||
final String message = splitt[0];
|
||||
final boolean art = Boolean.valueOf(ArtDate[0]);
|
||||
final String datetime = ArtDate[1];
|
||||
|
||||
Log.v("Info","Eine ungesendete NAchricht 5");
|
||||
//für jede Gelesene Line Sende Nachricht
|
||||
new Thread(new SendUnsendMS(message)).start();
|
||||
Log.v("Info","Eine ungesendete NAchricht 6");
|
||||
}
|
||||
line = readLn.readLine();
|
||||
}
|
||||
stream.close();
|
||||
in.close();
|
||||
Unsendfile.delete();
|
||||
}catch(Exception fe){
|
||||
Log.v("Status","Ein problem ist im BEreich Unsend Ms Aufgetreten");
|
||||
new Thread(new TestMessageSender(p.GetDataStream())).start();
|
||||
} catch(Exception e) {
|
||||
Log.e("SendAfterGetConnection", "Fehler beim Senden einer Nachricht an den Server: " + e.getMessage());
|
||||
}
|
||||
//recreate();
|
||||
}
|
||||
|
||||
// CreateCustomFileForUnSendMessage();
|
||||
//
|
||||
// if(Unsendfile.canRead() && socket.isConnected()){
|
||||
// try{
|
||||
// Log.v("Info","Eine ungesendete NAchricht wurde gefunden");
|
||||
//
|
||||
// FileInputStream stream = new FileInputStream(Unsendfile);
|
||||
// InputStreamReader in = new InputStreamReader(stream);
|
||||
// BufferedReader readLn = new BufferedReader(in);
|
||||
//
|
||||
// String line = readLn.readLine();
|
||||
// String allLines="";
|
||||
//
|
||||
// while (line != null) {
|
||||
// allLines += line;
|
||||
//
|
||||
// Log.v("Info","Eine ungesendete NAchricht 4");
|
||||
// String[] splitt = line.split("/");
|
||||
//
|
||||
// if(splitt.length >1 ) {
|
||||
// String[] ArtDate = splitt[1].split("%");
|
||||
//
|
||||
// final String message = splitt[0];
|
||||
// final boolean art = Boolean.valueOf(ArtDate[0]);
|
||||
// final String datetime = ArtDate[1];
|
||||
//
|
||||
// Log.v("Info","Eine ungesendete NAchricht 5");
|
||||
// //für jede Gelesene Line Sende Nachricht
|
||||
// new Thread(new SendUnsentMessages(message)).start();
|
||||
// Log.v("Info","Eine ungesendete NAchricht 6");
|
||||
// }
|
||||
// line = readLn.readLine();
|
||||
// }
|
||||
// stream.close();
|
||||
// in.close();
|
||||
// Unsendfile.delete();
|
||||
// }catch(Exception fe){
|
||||
// Log.v("Status","Ein problem ist im BEreich Unsend Ms Aufgetreten");
|
||||
// }
|
||||
// //recreate();
|
||||
// }
|
||||
}
|
||||
|
||||
public void CreateCustomFileForUnSendMessage(){
|
||||
@@ -343,9 +342,36 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
}
|
||||
}
|
||||
|
||||
public class SendUnsendMS implements Runnable{
|
||||
public class TestMessageSender implements Runnable {
|
||||
|
||||
byte[] packetToSend;
|
||||
|
||||
public TestMessageSender(byte[] packet2Send) {
|
||||
packetToSend = packet2Send;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
if(socket != null && dataOutputStream != null) {
|
||||
|
||||
Log.d("TestMessageSender", "Sende Packet... (" + packetToSend.length + ")");
|
||||
|
||||
dataOutputStream.write(packetToSend);
|
||||
dataOutputStream.flush();
|
||||
}
|
||||
else {
|
||||
Log.d("TestMessageSender", "Socket und/oder Stream ist null");
|
||||
}
|
||||
} catch(Exception e) {
|
||||
Log.e("TestMessageSender", "Fehler beim Senden der TestMessage " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class SendUnsentMessages implements Runnable{
|
||||
String al;
|
||||
SendUnsendMS(String unMS){
|
||||
SendUnsentMessages(String unMS){
|
||||
this.al = unMS;
|
||||
}
|
||||
public void run() {
|
||||
@@ -353,11 +379,11 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
|
||||
byte[] ts = al.getBytes();
|
||||
try {
|
||||
if (socket != null && st != null) {
|
||||
if (socket != null && dataOutputStream != null) {
|
||||
|
||||
//try catch bei catch SaveAfterLoseConnection();
|
||||
st.write(ts);
|
||||
st.flush();
|
||||
dataOutputStream.write(ts);
|
||||
dataOutputStream.flush();
|
||||
}
|
||||
}catch(Exception xs){
|
||||
}
|
||||
@@ -383,7 +409,7 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
}
|
||||
|
||||
//setze Notification
|
||||
public void SetNotifi(String Username,String message){
|
||||
public void SetNotify(String Username, String message){
|
||||
|
||||
//Convertiert in Pic Resource in ein Bitmap
|
||||
//BitmapFactory.decodeResource(getResources(), R.drawable.bslogo)
|
||||
@@ -422,14 +448,14 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
mNotifyMgr.notify(001, mBuilder.build());
|
||||
}
|
||||
|
||||
//###### Activiti abfragen ##################
|
||||
@Override
|
||||
public void onResume() {
|
||||
// Log.v("Stuss","Hier nochmals on creat aufrufen");
|
||||
isOnStop = false;
|
||||
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop(){
|
||||
// Thread t = new Thread(new ConnectionClose());
|
||||
// t.start();
|
||||
@@ -444,5 +470,4 @@ public class MainActivityMitarbeiter extends Activity {
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,16 +2,12 @@ package beyondsoft.bewomitarbeiterapp;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.text.Html;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.TextView;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -67,9 +63,9 @@ public class MessageAdapter extends ArrayAdapter<ChatMessageFormat> {
|
||||
holder = (ViewHolder) convertView.getTag();
|
||||
Log.v("Status","Bin ich hier ?? ");
|
||||
} else {*/
|
||||
convertView = inflater.inflate(layoutResource, parent, false);
|
||||
holder = new ViewHolder(convertView);
|
||||
convertView.setTag(holder);
|
||||
convertView = inflater.inflate(layoutResource, parent, false);
|
||||
holder = new ViewHolder(convertView);
|
||||
convertView.setTag(holder);
|
||||
//}
|
||||
|
||||
//set message content
|
||||
@@ -119,6 +115,4 @@ public class MessageAdapter extends ArrayAdapter<ChatMessageFormat> {
|
||||
send_tick = (TextView)v.findViewById(R.id.txt_msg_tick);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -9,13 +9,11 @@ import java.util.logging.Handler;
|
||||
/**
|
||||
* Created by bib on 02.05.2016.
|
||||
*/
|
||||
public class SplashScreenActiviti extends Activity {
|
||||
|
||||
public class SplashScreenActivity extends Activity {
|
||||
|
||||
private static final int SPLASH_DURATION = 4000;
|
||||
private Handler startMain;
|
||||
|
||||
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.splashscreen);
|
||||
@@ -26,13 +24,13 @@ public class SplashScreenActiviti extends Activity {
|
||||
int logoTimer = 0;
|
||||
while(logoTimer < 2125){
|
||||
sleep(75);
|
||||
logoTimer = logoTimer +100;
|
||||
};
|
||||
startActivity(new Intent(getBaseContext(),LoginActiviti.class));
|
||||
logoTimer = logoTimer + 100;
|
||||
}
|
||||
|
||||
startActivity(new Intent(getBaseContext(), LoginActivity.class));
|
||||
}
|
||||
|
||||
catch (InterruptedException e) {
|
||||
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -44,9 +42,4 @@ public class SplashScreenActiviti extends Activity {
|
||||
|
||||
logoTimer.start();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
package beyondsoft.bewomitarbeiterapp;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
|
||||
/**
|
||||
* Created by bib on 02.05.2016.
|
||||
*/
|
||||
public class WebdokuActiviti extends ActionBarActivity {
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.webdoku);
|
||||
|
||||
// Uri uri = Uri.parse("http://www.google.com");
|
||||
// Intent intent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
// startActivity(intent);
|
||||
|
||||
|
||||
String URL = "http://192.168.1.115/BewoPlanerMobil/login/demo";
|
||||
WebView view = (WebView) this.findViewById(R.id.webView1);
|
||||
|
||||
view.getSettings().setJavaScriptEnabled(true);
|
||||
view.loadUrl(URL);
|
||||
view.setWebViewClient(new WebViewClient());
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
view.setWebViewClient(new WebViewClient(){
|
||||
|
||||
public void onPageFinished(WebView view,String url){
|
||||
String username = "franz";
|
||||
String passwort = "walter";
|
||||
|
||||
view.loadUrl("javascript:document.getElementbyId('tb_login').value='"+username+"; " +
|
||||
"document.getElementsbyName('tb_password').value='"+passwort+";");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package beyondsoft.bewomitarbeiterapp;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
|
||||
import soapConnection.SoapCalls;
|
||||
|
||||
/**
|
||||
* Created by bib on 02.05.2016.
|
||||
*/
|
||||
public class WebdokuActivity extends ActionBarActivity {
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.webdoku);
|
||||
|
||||
WebView view = (WebView) this.findViewById(R.id.webView1);
|
||||
|
||||
view.getSettings().setJavaScriptEnabled(true);
|
||||
|
||||
//TODO: Url anhand des überprüften Tokens bestimmen (Welcher Server)
|
||||
view.loadUrl(SoapCalls.WEB_DOKU_URL);
|
||||
view.setWebViewClient(new WebViewClient());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package entities;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 05.07.2016.
|
||||
*/
|
||||
public class ChatPerson {
|
||||
public int Oid;
|
||||
public String Name;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package soapConnection;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 05.07.2016.
|
||||
*/
|
||||
public class ApplicationUser {
|
||||
private String fullName;
|
||||
private String username;
|
||||
private Long employeeOid;
|
||||
private Long personOid;
|
||||
|
||||
public String getFullName() {
|
||||
return fullName;
|
||||
}
|
||||
|
||||
public void setFullName(String fullName) {
|
||||
this.fullName = fullName;
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
public Long getEmployeeOid() {
|
||||
return employeeOid;
|
||||
}
|
||||
|
||||
public void setEmployeeOid(Long employeeOid) {
|
||||
this.employeeOid = employeeOid;
|
||||
}
|
||||
|
||||
public Long getPersonOid() {
|
||||
return personOid;
|
||||
}
|
||||
|
||||
public void setPersonOid(Long personOid) {
|
||||
this.personOid = personOid;
|
||||
}
|
||||
|
||||
public ApplicationUser(String fullName, String username, Long employeeOid, Long personOid) {
|
||||
this.fullName = fullName;
|
||||
this.username = username;
|
||||
this.employeeOid = employeeOid;
|
||||
this.personOid = personOid;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package soapConnection;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 05.07.2016.
|
||||
*/
|
||||
public enum DataIdentifier {
|
||||
MESSAGE(0),
|
||||
LOGIN(1),
|
||||
LOGOUT(2),
|
||||
NULL(3);
|
||||
|
||||
private final int value;
|
||||
DataIdentifier(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package soapConnection;
|
||||
|
||||
import com.octo.android.robospice.request.SpiceRequest;
|
||||
|
||||
import org.ksoap2.serialization.PropertyInfo;
|
||||
import org.ksoap2.serialization.SoapPrimitive;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 05.07.2016.
|
||||
*/
|
||||
public class JsonSoapPrimitiveRequest extends SpiceRequest<SoapPrimitive> {
|
||||
private String soapOperation;
|
||||
private ArrayList<PropertyInfo> soapPropertyInfos;
|
||||
|
||||
public JsonSoapPrimitiveRequest(String operation, ArrayList<PropertyInfo> propertyInfos) {
|
||||
super(SoapPrimitive.class);
|
||||
this.soapOperation = operation;
|
||||
this.soapPropertyInfos = propertyInfos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SoapPrimitive loadDataFromNetwork() throws Exception {
|
||||
return SoapConnectionManager.MakeCall(soapOperation, soapPropertyInfos);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package soapConnection;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 05.07.2016.
|
||||
*/
|
||||
public class Packet {
|
||||
public DataIdentifier ChatDataIdentifier;
|
||||
public String ChatName;
|
||||
public int SenderPersonOid;
|
||||
public int RecipientPersonOid;
|
||||
public String ChatMessage;
|
||||
|
||||
public Packet() {
|
||||
ChatDataIdentifier = DataIdentifier.NULL;
|
||||
ChatMessage = null;
|
||||
ChatName = null;
|
||||
SenderPersonOid = 0;
|
||||
RecipientPersonOid = 0;
|
||||
}
|
||||
|
||||
|
||||
public Packet(byte[] dataStream) {
|
||||
ChatDataIdentifier = DataIdentifier.values()[ByteBuffer.allocate(4).getInt()];
|
||||
|
||||
|
||||
}
|
||||
|
||||
public byte[] GetDataStream() {
|
||||
|
||||
String dataStreamAsString = "" + SenderPersonOid + ";" + RecipientPersonOid + ";" + ChatName.length() + ";" + ChatMessage.length() + ";";
|
||||
|
||||
dataStreamAsString += ChatName + ChatMessage;
|
||||
|
||||
byte[] blaaah = new byte[1024];
|
||||
|
||||
try {
|
||||
blaaah = dataStreamAsString.getBytes("UTF8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
Log.e("Packet.GetDataStream", e.getMessage());
|
||||
}
|
||||
|
||||
return blaaah;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package soapConnection;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 05.07.2016.
|
||||
*/
|
||||
public class SoapCalls {
|
||||
public static String GET_SERVER_ADDRESS_BY_TOKEN_CALL = "GetServerAddressByToken";
|
||||
public static String LOGIN_CALL = "Login";
|
||||
public static String GET_CONTACTS_FOR_PERSON = "GetContactsForPerson";
|
||||
|
||||
public static String DESTINATION_ADDRESS = "192.168.1.103";
|
||||
|
||||
public static String TOKEN_CHECK_URL = "http://" + DESTINATION_ADDRESS + "/bewoplanermobil/main/checktoken?token=";
|
||||
|
||||
public static String WEB_DOKU_URL = "http://192.168.1.103/BewoPlanerMobil/login/demo";
|
||||
|
||||
public static String WSDL_TARGET_NAME = "bliblablubb.org/";
|
||||
public static String SOAP_ADDRESS = "http://" + DESTINATION_ADDRESS + "/BeWoPlanerAndroid/AndroidSoapService.asmx";
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package soapConnection;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import org.ksoap2.SoapEnvelope;
|
||||
import org.ksoap2.serialization.PropertyInfo;
|
||||
import org.ksoap2.serialization.SoapObject;
|
||||
import org.ksoap2.serialization.SoapPrimitive;
|
||||
import org.ksoap2.serialization.SoapSerializationEnvelope;
|
||||
import org.ksoap2.transport.HttpTransportSE;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 05.07.2016.
|
||||
*/
|
||||
public class SoapConnectionManager {
|
||||
public static ApplicationUser User;
|
||||
|
||||
private static final String LOGTAG = "SoapConnectionManager";
|
||||
|
||||
private static final HttpTransportSE androidHttpTransport = new HttpTransportSE(SoapCalls.SOAP_ADDRESS);
|
||||
|
||||
public static SoapPrimitive MakeCall(String operation, ArrayList<PropertyInfo> propertyInfos) {
|
||||
|
||||
try {
|
||||
SoapObject request = new SoapObject(SoapCalls.WSDL_TARGET_NAME, operation);
|
||||
|
||||
if(propertyInfos != null) {
|
||||
for (PropertyInfo info : propertyInfos) {
|
||||
request.addProperty(info);
|
||||
}
|
||||
}
|
||||
|
||||
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
|
||||
envelope.dotNet = true;
|
||||
envelope.setOutputSoapObject(request);
|
||||
|
||||
androidHttpTransport.call(SoapCalls.WSDL_TARGET_NAME + operation, envelope);
|
||||
|
||||
return (SoapPrimitive) envelope.getResponse();
|
||||
}
|
||||
catch(IOException |XmlPullParserException exception) {
|
||||
Log.e(LOGTAG, exception.getMessage());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static PropertyInfo BuildProperty(String name, Object value, Class type) {
|
||||
|
||||
PropertyInfo propertyInfo = new PropertyInfo();
|
||||
|
||||
propertyInfo.setName(name);
|
||||
propertyInfo.setValue(value);
|
||||
propertyInfo.setType(type);
|
||||
|
||||
return propertyInfo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package util;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 06.07.2016.
|
||||
*/
|
||||
public class ArrayHandle {
|
||||
public static Object[] reverse(Object[] array) {
|
||||
List<Object> list = Arrays.asList(array);
|
||||
Collections.reverse(list);
|
||||
|
||||
return list.toArray();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package util;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.Serializable;
|
||||
import java.security.InvalidAlgorithmParameterException;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
import javax.crypto.BadPaddingException;
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.CipherInputStream;
|
||||
import javax.crypto.CipherOutputStream;
|
||||
import javax.crypto.IllegalBlockSizeException;
|
||||
import javax.crypto.NoSuchPaddingException;
|
||||
import javax.crypto.SealedObject;
|
||||
import javax.crypto.spec.IvParameterSpec;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 05.07.2016.
|
||||
*/
|
||||
public class SecurityUtils {
|
||||
private static final byte[] iV16 = { (byte)35, (byte)138, (byte)177, (byte)253, (byte)227, (byte)63, (byte)2, (byte)27, (byte)9, (byte)17, (byte)192, (byte)230, (byte)1, (byte)24, (byte)165, (byte)99 };
|
||||
|
||||
public static final byte[] key = { (byte)174, (byte)130, (byte)219, (byte)185, (byte)185, (byte)221, (byte)96, (byte)50, (byte)37, (byte)212, (byte)81, (byte)121, (byte)71, (byte)206, (byte)130, (byte)153};
|
||||
|
||||
private static final IvParameterSpec ivSpec16 = new IvParameterSpec(iV16);
|
||||
private static final String transformation = "AES/CBC/PKCS5Padding";
|
||||
|
||||
public static void encrypt(Serializable object, OutputStream ostream) throws IOException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException {
|
||||
try {
|
||||
SecretKeySpec sks = new SecretKeySpec(key, transformation);
|
||||
|
||||
Cipher cipher = Cipher.getInstance(transformation);
|
||||
cipher.init(Cipher.ENCRYPT_MODE, sks, ivSpec16);
|
||||
SealedObject sealedObject = new SealedObject(object, cipher);
|
||||
|
||||
CipherOutputStream cos = new CipherOutputStream(ostream, cipher);
|
||||
ObjectOutputStream outputStream = new ObjectOutputStream(cos);
|
||||
outputStream.writeObject(sealedObject);
|
||||
outputStream.close();
|
||||
} catch (IllegalBlockSizeException e) {
|
||||
Log.e("Encryption error", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static Object decrypt(InputStream istream) throws IOException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException {
|
||||
SecretKeySpec sks = new SecretKeySpec(key, transformation);
|
||||
Cipher cipher = Cipher.getInstance(transformation);
|
||||
cipher.init(Cipher.DECRYPT_MODE, sks, ivSpec16);
|
||||
|
||||
CipherInputStream cipherInputStream = new CipherInputStream(istream, cipher);
|
||||
ObjectInputStream inputStream = new ObjectInputStream(cipherInputStream);
|
||||
SealedObject sealedObject;
|
||||
try {
|
||||
sealedObject = (SealedObject) inputStream.readObject();
|
||||
return sealedObject.getObject(cipher);
|
||||
} catch (ClassNotFoundException | IllegalBlockSizeException | BadPaddingException e) {
|
||||
Log.e("Encryption error", e.getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
15
Android/BewoMitarbeiterApp/app/src/main/java/util/Util.java
Normal file
15
Android/BewoMitarbeiterApp/app/src/main/java/util/Util.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package util;
|
||||
|
||||
/**
|
||||
* Created by JettenM on 05.07.2016.
|
||||
*/
|
||||
public class Util {
|
||||
public static final String PREFS_NAME = "BeWoMitarbeiterPrefsFile";
|
||||
|
||||
public static final String PREFS_SERVERADDRESS_KEY = "serverAddress";
|
||||
|
||||
public static final String PREFS_TOKEN_KEY = "serverAddress";
|
||||
public static final String PREFS_TENANT_KEY = "tenant";
|
||||
public static final String PREFS_USERNAME_KEY = "username";
|
||||
public static final String PREFS_PASSWORD = "password";
|
||||
}
|
||||
6
BeWoChatServer/App.config
Normal file
6
BeWoChatServer/App.config
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
|
||||
</startup>
|
||||
</configuration>
|
||||
89
BeWoChatServer/BeWoChatServer.csproj
Normal file
89
BeWoChatServer/BeWoChatServer.csproj
Normal file
@@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>BeWoChatServer</RootNamespace>
|
||||
<AssemblyName>BeWoChatServer</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<StartupObject />
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Lib\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NHibernate, Version=3.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Lib\NHibernate.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Packet.cs" />
|
||||
<Compile Include="Server.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Data\Data.csproj">
|
||||
<Project>{b0d73e3d-4ae7-4024-93a6-db1f46d7ccee}</Project>
|
||||
<Name>Data</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Service\Service.csproj">
|
||||
<Project>{094331c3-ecee-4c89-bbfd-4c9ded89f0ef}</Project>
|
||||
<Name>Service</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Shared\Shared.csproj">
|
||||
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
|
||||
<Name>Shared</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
82
BeWoChatServer/Packet.cs
Normal file
82
BeWoChatServer/Packet.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
|
||||
using BS.Shared;
|
||||
|
||||
namespace BeWoChatServer
|
||||
{
|
||||
public class Packet
|
||||
{
|
||||
public Socket Socket { get; set; }
|
||||
public int ClientNumber { get; set; }
|
||||
public string ClientName { get; set; }
|
||||
public long SenderPersonOid { get; set; }
|
||||
public long RecipientPersonOid { get; set; }
|
||||
public DataIdentifier DataIdentifier { get; set; }
|
||||
public string ChatMessage { get; set; }
|
||||
|
||||
public byte[] DataBuffer = new byte[1024];
|
||||
|
||||
public Packet(Socket pSocket, int pClientNumber, string pClientName, long pSenderPersonOid, long pRecipientPersonOid)
|
||||
{
|
||||
Socket = pSocket;
|
||||
ClientNumber = pClientNumber;
|
||||
ClientName = pClientName;
|
||||
SenderPersonOid = pSenderPersonOid;
|
||||
RecipientPersonOid = pRecipientPersonOid;
|
||||
}
|
||||
|
||||
// 0 4 8 12 20 28
|
||||
// Description -> |dataIdentifier|name length|message length|sender person oid|recipient person oid| name | message |
|
||||
// Size in bytes -> | 4 | 4 | 4 | 8 | 8 |name length|message length|
|
||||
public Packet(byte[] dataStream)
|
||||
{
|
||||
DataIdentifier = (DataIdentifier)BitConverter.ToInt32(dataStream, 0);
|
||||
|
||||
var nameLength = BitConverter.ToInt32(dataStream, 4);
|
||||
|
||||
var messageLength = BitConverter.ToInt32(dataStream, 8);
|
||||
|
||||
SenderPersonOid = BitConverter.ToInt64(dataStream, 12);
|
||||
|
||||
RecipientPersonOid = BitConverter.ToInt64(dataStream, 20);
|
||||
|
||||
ClientName = nameLength > 0 ? Encoding.UTF8.GetString(dataStream, 28, nameLength) : null;
|
||||
|
||||
ChatMessage = messageLength > 0 ? Encoding.UTF8.GetString(dataStream, 28 + nameLength, messageLength) : null;
|
||||
}
|
||||
|
||||
public void GetData(string message)
|
||||
{
|
||||
//Aufbau Message:
|
||||
// die ersten fünf ";" ignorieren
|
||||
// SenderOid;RecipientOid;ClientNameLength;MessageLength;ChatDataIdentifier;ClientNameChatMessage
|
||||
|
||||
//23;281;20;389;1; 5 Semikola
|
||||
|
||||
var gesplittet = message.Split(';');
|
||||
|
||||
SenderPersonOid = Convert.ToInt64(gesplittet[0]);
|
||||
RecipientPersonOid = Convert.ToInt64(gesplittet[1]);
|
||||
|
||||
var chatNameLength = Convert.ToInt32(gesplittet[2]);
|
||||
var chatMessageLength = Convert.ToInt32(gesplittet[3]);
|
||||
|
||||
var headerLength = gesplittet[0].Length + gesplittet[1].Length + gesplittet[2].Length + gesplittet[3].Length + 5;
|
||||
var actualMessage = message.Substring(headerLength - 1);
|
||||
|
||||
ClientName = actualMessage.Substring(0, chatNameLength);
|
||||
ChatMessage = actualMessage.Substring(chatNameLength);
|
||||
}
|
||||
|
||||
// Java kennt nur unsigned bytes (-127 bis 128)
|
||||
public byte[] GetDataStream()
|
||||
{
|
||||
var result = "";
|
||||
|
||||
return Encoding.UTF8.GetBytes(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
36
BeWoChatServer/Properties/AssemblyInfo.cs
Normal file
36
BeWoChatServer/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
||||
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
||||
// die mit einer Assembly verknüpft sind.
|
||||
[assembly: AssemblyTitle("BeWoChatServer")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("BeWoChatServer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
|
||||
// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
|
||||
// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
|
||||
[assembly: Guid("ae6a4233-d1b0-4c13-bd70-5f1e3f60b4e7")]
|
||||
|
||||
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
||||
//
|
||||
// Hauptversion
|
||||
// Nebenversion
|
||||
// Buildnummer
|
||||
// Revision
|
||||
//
|
||||
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
||||
// übernehmen, indem Sie "*" eingeben:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
168
BeWoChatServer/Server.cs
Normal file
168
BeWoChatServer/Server.cs
Normal file
@@ -0,0 +1,168 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using BeWo.Data;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
|
||||
using BS.Shared;
|
||||
|
||||
namespace BeWoChatServer
|
||||
{
|
||||
public class Server
|
||||
{
|
||||
private static object _Lock = string.Empty;
|
||||
|
||||
private static readonly Dictionary<Socket, long> clientList = new Dictionary<Socket, long>();
|
||||
protected static Socket serverSocket;
|
||||
|
||||
private static AsyncCallback asyncCallback;
|
||||
|
||||
private static int clientCount;
|
||||
|
||||
static Packet dataPacketsdf;
|
||||
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Benutzt den DefaultHibernateSessionManager
|
||||
DefaultHibernateSessionManager.CurrentTenant = "demo";
|
||||
DefaultHibernateSessionManager.OpenSession();
|
||||
var test = DAOFactory.GenericDAO.LoadByID<ChatMessage>(1);
|
||||
|
||||
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
|
||||
var server = new IPEndPoint(IPAddress.Any, 5000);
|
||||
|
||||
serverSocket.Bind(server);
|
||||
serverSocket.Listen(4);
|
||||
|
||||
serverSocket.BeginAccept(OnClientConnected, null);
|
||||
|
||||
while (true) { }
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.WriteLine("ChatServerException: " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: Datenbankverbindung herstellen
|
||||
|
||||
public static void OnClientConnected(IAsyncResult asyncResult)
|
||||
{
|
||||
try
|
||||
{
|
||||
var workerSocket = serverSocket.EndAccept(asyncResult);
|
||||
|
||||
Interlocked.Increment(ref clientCount);
|
||||
|
||||
clientList.Add(workerSocket, 0);
|
||||
|
||||
WaitForClientData(workerSocket, clientCount, "LEER", 0, 0);
|
||||
|
||||
serverSocket.BeginAccept(OnClientConnected, null);
|
||||
}
|
||||
catch (SocketException e)
|
||||
{
|
||||
Debug.WriteLine("ChatServerException: " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public static void WaitForClientData(Socket socket, int clientNumber, string clientName, long oid, long recipientPersonOid)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (asyncCallback == null)
|
||||
{
|
||||
asyncCallback = OnReceiveData;
|
||||
}
|
||||
|
||||
var packet = new Packet(socket, clientNumber, clientName, oid, recipientPersonOid);
|
||||
|
||||
socket.BeginReceive(packet.DataBuffer, 0, packet.DataBuffer.Length, SocketFlags.None, asyncCallback, packet);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.WriteLine("ChatServerException: " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public static void OnReceiveData(IAsyncResult asyncResult)
|
||||
{
|
||||
var dataPacket = (Packet) asyncResult.AsyncState;
|
||||
|
||||
try
|
||||
{
|
||||
var responseByteCount = dataPacket.Socket.EndReceive(asyncResult);
|
||||
|
||||
var chars = new char[responseByteCount];
|
||||
|
||||
var decoder = Encoding.UTF8.GetDecoder();
|
||||
decoder.GetChars(dataPacket.DataBuffer, 0, responseByteCount, chars, 0);
|
||||
|
||||
if(chars.Count(f => f.Equals(';')) >= 4)
|
||||
{
|
||||
var message = new string(chars);
|
||||
|
||||
dataPacket.GetData(message);
|
||||
}
|
||||
|
||||
// Nur bei DataIdentifier.Login
|
||||
//TODO: SenderOid im Dictionary speichern
|
||||
switch(dataPacket.DataIdentifier) { case DataIdentifier.Login:
|
||||
var endPoint = dataPacket.Socket.RemoteEndPoint;
|
||||
|
||||
var endPointCollection = clientList.Select(s => s.Key.RemoteEndPoint).ToList();
|
||||
|
||||
var istEnthalten = endPointCollection.Contains(endPoint);
|
||||
if(istEnthalten)
|
||||
{
|
||||
clientList[dataPacket.Socket] = dataPacket.SenderPersonOid;
|
||||
}
|
||||
break;
|
||||
case DataIdentifier.Message:
|
||||
if(responseByteCount == 0)
|
||||
{
|
||||
clientList.Remove(dataPacket.Socket);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
Monitor.Enter(_Lock);
|
||||
|
||||
DefaultHibernateSessionManager.CurrentTenant = "demo";
|
||||
|
||||
}
|
||||
finally
|
||||
{
|
||||
Monitor.Exit(_Lock);
|
||||
}
|
||||
|
||||
|
||||
// in DB speichern und an evtl. an den Empfänger schicken, sofern dieser in der clientList enthalten ist
|
||||
}
|
||||
|
||||
break;
|
||||
case DataIdentifier.Logout:
|
||||
break;
|
||||
}
|
||||
|
||||
WaitForClientData(dataPacket.Socket, dataPacket.ClientNumber, dataPacket.ClientName, dataPacket.SenderPersonOid, dataPacket.RecipientPersonOid);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.WriteLine("ChatServerException: " + e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,6 +31,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReportingService", "ReportS
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeWoPlanerAndroid", "BeWoPlanerAndroid\BeWoPlanerAndroid.csproj", "{D3E18AE6-05A4-44B3-B0F6-6EF696DD306C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeWoChatServer", "BeWoChatServer\BeWoChatServer.csproj", "{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|.NET = Debug|.NET
|
||||
@@ -141,6 +143,16 @@ Global
|
||||
{D3E18AE6-05A4-44B3-B0F6-6EF696DD306C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D3E18AE6-05A4-44B3-B0F6-6EF696DD306C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{D3E18AE6-05A4-44B3-B0F6-6EF696DD306C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}.Debug|.NET.ActiveCfg = Debug|Any CPU
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}.Release|.NET.ActiveCfg = Release|Any CPU
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@@ -155,5 +167,6 @@ Global
|
||||
{284B02ED-114A-426C-9162-31BB6CF05589} = {FEB0336B-F053-40B6-92DD-7DE56AB9408A}
|
||||
{663EFCB5-9E3E-4C76-97EE-3188E072634C} = {FEB0336B-F053-40B6-92DD-7DE56AB9408A}
|
||||
{D3E18AE6-05A4-44B3-B0F6-6EF696DD306C} = {FEB0336B-F053-40B6-92DD-7DE56AB9408A}
|
||||
{4E069DC0-8153-41E0-A89A-FC1916DF4A5F} = {FEB0336B-F053-40B6-92DD-7DE56AB9408A}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq;
|
||||
using System.Web.Services;
|
||||
|
||||
using BeWo.Data.Access;
|
||||
@@ -7,13 +6,12 @@ using BeWo.Service.ServiceContracts;
|
||||
using BeWo.Service.ServiceImplementations;
|
||||
|
||||
using BeWoPlanerAndroid.Service;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
using NHibernate.Util;
|
||||
|
||||
namespace BeWoPlanerAndroid
|
||||
{
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</root>
|
||||
</log4net>
|
||||
<appSettings>
|
||||
<add key="MultitenancyPath" value="F:\Projects\BeWoPlaner\Host\Multitenancy\" />
|
||||
<add key="MultitenancyPath" value="F:\Projects\BeWo\Host\Multitenancy\" />
|
||||
<add key="BeWoPlanerAndroid.AndroidSoapService" value="http://localhost/AndroidSoapService.asmx" />
|
||||
</appSettings>
|
||||
<system.serviceModel>
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
<add key="PreserveLoginUrl" value="true" />
|
||||
<add key="ClientValidationEnabled" value="true" />
|
||||
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
|
||||
<add key="MultitenancyPath" value="F:\Projects\BeWoPlaner\Host\Multitenancy\" />
|
||||
<add key="MultitenancyPath" value="F:\Projects\BeWo\Host\Multitenancy\" />
|
||||
<!--<add key="MultitenancyPath" value="..\Host\Multitenancy"/>-->
|
||||
</appSettings>
|
||||
|
||||
|
||||
@@ -18,7 +18,9 @@ namespace BeWo.Data.Access
|
||||
if (HttpContext.Current == null)
|
||||
{
|
||||
// WCF Request
|
||||
return WCFHibernateSessionManager.CurrentSession;
|
||||
// DefaultHibernateSessionManager, wenn der SessionOperationContext null ist
|
||||
|
||||
return WCFHibernateSessionManager.CurrentSession ?? DefaultHibernateSessionManager.CurrentSession;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -119,6 +119,7 @@
|
||||
<Compile Include="Access\SearchDAO.cs" />
|
||||
<Compile Include="Access\UserDAO.cs" />
|
||||
<Compile Include="ASPHibernateSessionManager.cs" />
|
||||
<Compile Include="DefaultHibernateSessionManager.cs" />
|
||||
<Compile Include="Entities\AbsenceReason.cs" />
|
||||
<Compile Include="Entities\AccountingTransaction.cs" />
|
||||
<Compile Include="Entities\AdditionalService.cs" />
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace BeWo.Data
|
||||
{
|
||||
get
|
||||
{
|
||||
return OperationContext.Current.Extensions.Find<SessionOperationContextExt>();
|
||||
return OperationContext.Current == null ? null : OperationContext.Current.Extensions.Find<SessionOperationContextExt>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace BeWo.Data
|
||||
{
|
||||
get
|
||||
{
|
||||
return SessionOperationContextExt.Current.Session;
|
||||
return SessionOperationContextExt.Current == null ? null : SessionOperationContextExt.Current.Session;
|
||||
}
|
||||
|
||||
private set
|
||||
|
||||
@@ -119,7 +119,8 @@ namespace BS.Shared
|
||||
SupportConceptApprovalPeriod2Employee = 112,
|
||||
FinanzDokumente = 113,
|
||||
Bargeldkasse = 114,
|
||||
MedRecord = 115
|
||||
MedRecord = 115,
|
||||
ChatMessage = 116
|
||||
}
|
||||
|
||||
public enum SystemEntryID
|
||||
@@ -820,4 +821,12 @@ namespace BS.Shared
|
||||
SupportConcept,
|
||||
Employee
|
||||
}
|
||||
|
||||
public enum DataIdentifier
|
||||
{
|
||||
Message,
|
||||
Login,
|
||||
Logout,
|
||||
Null
|
||||
}
|
||||
}
|
||||
5
packages/EntityFramework.5.0.0/Content/App.config.transform
vendored
Normal file
5
packages/EntityFramework.5.0.0/Content/App.config.transform
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<configuration>
|
||||
<configSections>
|
||||
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
|
||||
</configSections>
|
||||
</configuration>
|
||||
5
packages/EntityFramework.5.0.0/Content/Web.config.transform
vendored
Normal file
5
packages/EntityFramework.5.0.0/Content/Web.config.transform
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<configuration>
|
||||
<configSections>
|
||||
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
|
||||
</configSections>
|
||||
</configuration>
|
||||
BIN
packages/EntityFramework.5.0.0/EntityFramework.5.0.0.nupkg
vendored
Normal file
BIN
packages/EntityFramework.5.0.0/EntityFramework.5.0.0.nupkg
vendored
Normal file
Binary file not shown.
BIN
packages/EntityFramework.5.0.0/lib/net40/EntityFramework.dll
vendored
Normal file
BIN
packages/EntityFramework.5.0.0/lib/net40/EntityFramework.dll
vendored
Normal file
Binary file not shown.
18061
packages/EntityFramework.5.0.0/lib/net40/EntityFramework.xml
vendored
Normal file
18061
packages/EntityFramework.5.0.0/lib/net40/EntityFramework.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/EntityFramework.5.0.0/lib/net45/EntityFramework.dll
vendored
Normal file
BIN
packages/EntityFramework.5.0.0/lib/net45/EntityFramework.dll
vendored
Normal file
Binary file not shown.
17968
packages/EntityFramework.5.0.0/lib/net45/EntityFramework.xml
vendored
Normal file
17968
packages/EntityFramework.5.0.0/lib/net45/EntityFramework.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/EntityFramework.5.0.0/tools/EntityFramework.PS3.psd1
vendored
Normal file
BIN
packages/EntityFramework.5.0.0/tools/EntityFramework.PS3.psd1
vendored
Normal file
Binary file not shown.
BIN
packages/EntityFramework.5.0.0/tools/EntityFramework.PowerShell.Utility.dll
vendored
Normal file
BIN
packages/EntityFramework.5.0.0/tools/EntityFramework.PowerShell.Utility.dll
vendored
Normal file
Binary file not shown.
BIN
packages/EntityFramework.5.0.0/tools/EntityFramework.PowerShell.dll
vendored
Normal file
BIN
packages/EntityFramework.5.0.0/tools/EntityFramework.PowerShell.dll
vendored
Normal file
Binary file not shown.
BIN
packages/EntityFramework.5.0.0/tools/EntityFramework.psd1
vendored
Normal file
BIN
packages/EntityFramework.5.0.0/tools/EntityFramework.psd1
vendored
Normal file
Binary file not shown.
777
packages/EntityFramework.5.0.0/tools/EntityFramework.psm1
vendored
Normal file
777
packages/EntityFramework.5.0.0/tools/EntityFramework.psm1
vendored
Normal file
@@ -0,0 +1,777 @@
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
$InitialDatabase = '0'
|
||||
|
||||
$knownExceptions = @(
|
||||
'System.Data.Entity.Migrations.Infrastructure.MigrationsException',
|
||||
'System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException',
|
||||
'System.Data.Entity.Migrations.Infrastructure.AutomaticDataLossException',
|
||||
'System.Data.Entity.Migrations.MigrationsPendingException',
|
||||
'System.Data.Entity.Migrations.ProjectTypeNotSupportedException'
|
||||
)
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Enables Code First Migrations in a project.
|
||||
|
||||
.DESCRIPTION
|
||||
Enables Migrations by scaffolding a migrations configuration class in the project. If the
|
||||
target database was created by an initializer, an initial migration will be created (unless
|
||||
automatic migrations are enabled via the EnableAutomaticMigrations parameter).
|
||||
|
||||
.PARAMETER ContextTypeName
|
||||
Specifies the context to use. If omitted, migrations will attempt to locate a
|
||||
single context type in the target project.
|
||||
|
||||
.PARAMETER EnableAutomaticMigrations
|
||||
Specifies whether automatic migrations will be enabled in the scaffolded migrations configuration.
|
||||
If ommitted, automatic migrations will be disabled.
|
||||
|
||||
.PARAMETER ProjectName
|
||||
Specifies the project that the scaffolded migrations configuration class will
|
||||
be added to. If omitted, the default project selected in package manager
|
||||
console is used.
|
||||
|
||||
.PARAMETER StartUpProjectName
|
||||
Specifies the configuration file to use for named connection strings. If
|
||||
omitted, the specified project's configuration file is used.
|
||||
|
||||
.PARAMETER ConnectionStringName
|
||||
Specifies the name of a connection string to use from the application's
|
||||
configuration file.
|
||||
|
||||
.PARAMETER ConnectionString
|
||||
Specifies the the connection string to use. If omitted, the context's
|
||||
default connection will be used.
|
||||
|
||||
.PARAMETER ConnectionProviderName
|
||||
Specifies the provider invariant name of the connection string.
|
||||
|
||||
.PARAMETER Force
|
||||
Specifies that the migrations configuration be overwritten when running more
|
||||
than once for a given project.
|
||||
#>
|
||||
function Enable-Migrations
|
||||
{
|
||||
[CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')]
|
||||
param (
|
||||
[string] $ContextTypeName,
|
||||
[alias('Auto')]
|
||||
[switch] $EnableAutomaticMigrations,
|
||||
[string] $ProjectName,
|
||||
[string] $StartUpProjectName,
|
||||
[parameter(ParameterSetName = 'ConnectionStringName')]
|
||||
[string] $ConnectionStringName,
|
||||
[parameter(ParameterSetName = 'ConnectionStringAndProviderName',
|
||||
Mandatory = $true)]
|
||||
[string] $ConnectionString,
|
||||
[parameter(ParameterSetName = 'ConnectionStringAndProviderName',
|
||||
Mandatory = $true)]
|
||||
[string] $ConnectionProviderName,
|
||||
[switch] $Force
|
||||
)
|
||||
|
||||
$runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConnectionStringName $ConnectionString $ConnectionProviderName
|
||||
|
||||
try
|
||||
{
|
||||
Invoke-RunnerCommand $runner System.Data.Entity.Migrations.EnableMigrationsCommand @( $EnableAutomaticMigrations.IsPresent, $Force.IsPresent ) @{ 'ContextTypeName' = $ContextTypeName }
|
||||
$error = Get-RunnerError $runner
|
||||
|
||||
if ($error)
|
||||
{
|
||||
if ($knownExceptions -notcontains $error.TypeName)
|
||||
{
|
||||
Write-Host $error.StackTrace
|
||||
}
|
||||
|
||||
throw $error.Message
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
Remove-Runner $runner
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Scaffolds a migration script for any pending model changes.
|
||||
|
||||
.DESCRIPTION
|
||||
Scaffolds a new migration script and adds it to the project.
|
||||
|
||||
.PARAMETER Name
|
||||
Specifies the name of the custom script.
|
||||
|
||||
.PARAMETER Force
|
||||
Specifies that the migration user code be overwritten when re-scaffolding an
|
||||
existing migration.
|
||||
|
||||
.PARAMETER ProjectName
|
||||
Specifies the project that contains the migration configuration type to be
|
||||
used. If ommitted, the default project selected in package manager console
|
||||
is used.
|
||||
|
||||
.PARAMETER StartUpProjectName
|
||||
Specifies the configuration file to use for named connection strings. If
|
||||
omitted, the specified project's configuration file is used.
|
||||
|
||||
.PARAMETER ConfigurationTypeName
|
||||
Specifies the migrations configuration to use. If omitted, migrations will
|
||||
attempt to locate a single migrations configuration type in the target
|
||||
project.
|
||||
|
||||
.PARAMETER ConnectionStringName
|
||||
Specifies the name of a connection string to use from the application's
|
||||
configuration file.
|
||||
|
||||
.PARAMETER ConnectionString
|
||||
Specifies the the connection string to use. If omitted, the context's
|
||||
default connection will be used.
|
||||
|
||||
.PARAMETER ConnectionProviderName
|
||||
Specifies the provider invariant name of the connection string.
|
||||
|
||||
.PARAMETER IgnoreChanges
|
||||
Scaffolds an empty migration ignoring any pending changes detected in the current model.
|
||||
This can be used to create an initial, empty migration to enable Migrations for an existing
|
||||
database. N.B. Doing this assumes that the target database schema is compatible with the
|
||||
current model.
|
||||
|
||||
#>
|
||||
function Add-Migration
|
||||
{
|
||||
[CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')]
|
||||
param (
|
||||
[parameter(Position = 0,
|
||||
Mandatory = $true)]
|
||||
[string] $Name,
|
||||
[switch] $Force,
|
||||
[string] $ProjectName,
|
||||
[string] $StartUpProjectName,
|
||||
[string] $ConfigurationTypeName,
|
||||
[parameter(ParameterSetName = 'ConnectionStringName')]
|
||||
[string] $ConnectionStringName,
|
||||
[parameter(ParameterSetName = 'ConnectionStringAndProviderName',
|
||||
Mandatory = $true)]
|
||||
[string] $ConnectionString,
|
||||
[parameter(ParameterSetName = 'ConnectionStringAndProviderName',
|
||||
Mandatory = $true)]
|
||||
[string] $ConnectionProviderName,
|
||||
[switch] $IgnoreChanges)
|
||||
|
||||
$runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName
|
||||
|
||||
try
|
||||
{
|
||||
Invoke-RunnerCommand $runner System.Data.Entity.Migrations.AddMigrationCommand @( $Name, $Force.IsPresent, $IgnoreChanges.IsPresent )
|
||||
$error = Get-RunnerError $runner
|
||||
|
||||
if ($error)
|
||||
{
|
||||
if ($knownExceptions -notcontains $error.TypeName)
|
||||
{
|
||||
Write-Host $error.StackTrace
|
||||
}
|
||||
|
||||
throw $error.Message
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
Remove-Runner $runner
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Applies any pending migrations to the database.
|
||||
|
||||
.DESCRIPTION
|
||||
Updates the database to the current model by applying pending migrations.
|
||||
|
||||
.PARAMETER SourceMigration
|
||||
Only valid with -Script. Specifies the name of a particular migration to use
|
||||
as the update's starting point. If ommitted, the last applied migration in
|
||||
the database will be used.
|
||||
|
||||
.PARAMETER TargetMigration
|
||||
Specifies the name of a particular migration to update the database to. If
|
||||
ommitted, the current model will be used.
|
||||
|
||||
.PARAMETER Script
|
||||
Generate a SQL script rather than executing the pending changes directly.
|
||||
|
||||
.PARAMETER Force
|
||||
Specifies that data loss is acceptable during automatic migration of the
|
||||
database.
|
||||
|
||||
.PARAMETER ProjectName
|
||||
Specifies the project that contains the migration configuration type to be
|
||||
used. If ommitted, the default project selected in package manager console
|
||||
is used.
|
||||
|
||||
.PARAMETER StartUpProjectName
|
||||
Specifies the configuration file to use for named connection strings. If
|
||||
omitted, the specified project's configuration file is used.
|
||||
|
||||
.PARAMETER ConfigurationTypeName
|
||||
Specifies the migrations configuration to use. If omitted, migrations will
|
||||
attempt to locate a single migrations configuration type in the target
|
||||
project.
|
||||
|
||||
.PARAMETER ConnectionStringName
|
||||
Specifies the name of a connection string to use from the application's
|
||||
configuration file.
|
||||
|
||||
.PARAMETER ConnectionString
|
||||
Specifies the the connection string to use. If omitted, the context's
|
||||
default connection will be used.
|
||||
|
||||
.PARAMETER ConnectionProviderName
|
||||
Specifies the provider invariant name of the connection string.
|
||||
#>
|
||||
function Update-Database
|
||||
{
|
||||
[CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')]
|
||||
param (
|
||||
[string] $SourceMigration,
|
||||
[string] $TargetMigration,
|
||||
[switch] $Script,
|
||||
[switch] $Force,
|
||||
[string] $ProjectName,
|
||||
[string] $StartUpProjectName,
|
||||
[string] $ConfigurationTypeName,
|
||||
[parameter(ParameterSetName = 'ConnectionStringName')]
|
||||
[string] $ConnectionStringName,
|
||||
[parameter(ParameterSetName = 'ConnectionStringAndProviderName',
|
||||
Mandatory = $true)]
|
||||
[string] $ConnectionString,
|
||||
[parameter(ParameterSetName = 'ConnectionStringAndProviderName',
|
||||
Mandatory = $true)]
|
||||
[string] $ConnectionProviderName)
|
||||
|
||||
$runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName
|
||||
|
||||
try
|
||||
{
|
||||
Invoke-RunnerCommand $runner System.Data.Entity.Migrations.UpdateDatabaseCommand @( $SourceMigration, $TargetMigration, $Script.IsPresent, $Force.IsPresent, $Verbose.IsPresent )
|
||||
$error = Get-RunnerError $runner
|
||||
|
||||
if ($error)
|
||||
{
|
||||
if ($knownExceptions -notcontains $error.TypeName)
|
||||
{
|
||||
Write-Host $error.StackTrace
|
||||
}
|
||||
|
||||
throw $error.Message
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
Remove-Runner $runner
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Displays the migrations that have been applied to the target database.
|
||||
|
||||
.DESCRIPTION
|
||||
Displays the migrations that have been applied to the target database.
|
||||
|
||||
.PARAMETER ProjectName
|
||||
Specifies the project that contains the migration configuration type to be
|
||||
used. If ommitted, the default project selected in package manager console
|
||||
is used.
|
||||
|
||||
.PARAMETER StartUpProjectName
|
||||
Specifies the configuration file to use for named connection strings. If
|
||||
omitted, the specified project's configuration file is used.
|
||||
|
||||
.PARAMETER ConfigurationTypeName
|
||||
Specifies the migrations configuration to use. If omitted, migrations will
|
||||
attempt to locate a single migrations configuration type in the target
|
||||
project.
|
||||
|
||||
.PARAMETER ConnectionStringName
|
||||
Specifies the name of a connection string to use from the application's
|
||||
configuration file.
|
||||
|
||||
.PARAMETER ConnectionString
|
||||
Specifies the the connection string to use. If omitted, the context's
|
||||
default connection will be used.
|
||||
|
||||
.PARAMETER ConnectionProviderName
|
||||
Specifies the provider invariant name of the connection string.
|
||||
#>
|
||||
function Get-Migrations
|
||||
{
|
||||
[CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')]
|
||||
param (
|
||||
[string] $ProjectName,
|
||||
[string] $StartUpProjectName,
|
||||
[string] $ConfigurationTypeName,
|
||||
[parameter(ParameterSetName = 'ConnectionStringName')]
|
||||
[string] $ConnectionStringName,
|
||||
[parameter(ParameterSetName = 'ConnectionStringAndProviderName',
|
||||
Mandatory = $true)]
|
||||
[string] $ConnectionString,
|
||||
[parameter(ParameterSetName = 'ConnectionStringAndProviderName',
|
||||
Mandatory = $true)]
|
||||
[string] $ConnectionProviderName)
|
||||
|
||||
$runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName
|
||||
|
||||
try
|
||||
{
|
||||
Invoke-RunnerCommand $runner System.Data.Entity.Migrations.GetMigrationsCommand
|
||||
$error = Get-RunnerError $runner
|
||||
|
||||
if ($error)
|
||||
{
|
||||
if ($knownExceptions -notcontains $error.TypeName)
|
||||
{
|
||||
Write-Host $error.StackTrace
|
||||
}
|
||||
|
||||
throw $error.Message
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
Remove-Runner $runner
|
||||
}
|
||||
}
|
||||
|
||||
function New-MigrationsRunner($ProjectName, $StartUpProjectName, $ConfigurationTypeName, $ConnectionStringName, $ConnectionString, $ConnectionProviderName)
|
||||
{
|
||||
$startUpProject = Get-MigrationsStartUpProject $StartUpProjectName $ProjectName
|
||||
Build-Project $startUpProject
|
||||
|
||||
$project = Get-MigrationsProject $ProjectName
|
||||
Build-Project $project
|
||||
|
||||
$installPath = Get-EntityFrameworkInstallPath $project
|
||||
$toolsPath = Join-Path $installPath tools
|
||||
|
||||
$info = New-Object System.AppDomainSetup -Property @{
|
||||
ShadowCopyFiles = 'true';
|
||||
ApplicationBase = $installPath;
|
||||
PrivateBinPath = 'tools'
|
||||
}
|
||||
|
||||
$targetFrameworkVersion = (New-Object System.Runtime.Versioning.FrameworkName ($project.Properties.Item('TargetFrameworkMoniker').Value)).Version
|
||||
|
||||
if ($targetFrameworkVersion -lt (New-Object Version @( 4, 5 )))
|
||||
{
|
||||
$info.PrivateBinPath += ';lib\net40'
|
||||
|
||||
$dteVersion = [System.Text.RegularExpressions.Regex]::Match($DTE.Version, '^(?<version>\d{1,2}(\.\d{1,2})?)( \(.+\))?$').Groups['version'].Value
|
||||
|
||||
if ((New-Object Version $dteVersion) -lt (New-Object Version @( 11, 0 )))
|
||||
{
|
||||
$info.ConfigurationFile = Join-Path $toolsPath 'Redirect.config'
|
||||
}
|
||||
else
|
||||
{
|
||||
$info.ConfigurationFile = Join-Path $toolsPath 'Redirect.VS11.config'
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$info.PrivateBinPath += ';lib\net45'
|
||||
$info.ConfigurationFile = [AppDomain]::CurrentDomain.SetupInformation.ConfigurationFile
|
||||
}
|
||||
|
||||
$domain = [AppDomain]::CreateDomain('Migrations', $null, $info)
|
||||
$domain.SetData('project', $project)
|
||||
$domain.SetData('startUpProject', $startUpProject)
|
||||
$domain.SetData('configurationTypeName', $ConfigurationTypeName)
|
||||
$domain.SetData('connectionStringName', $ConnectionStringName)
|
||||
$domain.SetData('connectionString', $ConnectionString)
|
||||
$domain.SetData('connectionProviderName', $ConnectionProviderName)
|
||||
|
||||
[AppDomain]::CurrentDomain.SetShadowCopyFiles()
|
||||
$utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path $toolsPath EntityFramework.PowerShell.Utility.dll))
|
||||
$dispatcher = $utilityAssembly.CreateInstance(
|
||||
'System.Data.Entity.Migrations.Utilities.DomainDispatcher',
|
||||
$false,
|
||||
[System.Reflection.BindingFlags]::Instance -bor [System.Reflection.BindingFlags]::Public,
|
||||
$null,
|
||||
$PSCmdlet,
|
||||
$null,
|
||||
$null)
|
||||
$domain.SetData('efDispatcher', $dispatcher)
|
||||
|
||||
return @{
|
||||
Domain = $domain;
|
||||
ToolsPath = $toolsPath
|
||||
}
|
||||
}
|
||||
|
||||
function Remove-Runner($runner)
|
||||
{
|
||||
[AppDomain]::Unload($runner.Domain)
|
||||
}
|
||||
|
||||
function Invoke-RunnerCommand($runner, $command, $parameters, $anonymousArguments)
|
||||
{
|
||||
$domain = $runner.Domain
|
||||
|
||||
if ($anonymousArguments)
|
||||
{
|
||||
$anonymousArguments.GetEnumerator() | %{
|
||||
$domain.SetData($_.Name, $_.Value)
|
||||
}
|
||||
}
|
||||
|
||||
$domain.CreateInstanceFrom(
|
||||
(Join-Path $runner.ToolsPath EntityFramework.PowerShell.dll),
|
||||
$command,
|
||||
$false,
|
||||
0,
|
||||
$null,
|
||||
$parameters,
|
||||
$null,
|
||||
$null) | Out-Null
|
||||
}
|
||||
|
||||
function Get-RunnerError($runner)
|
||||
{
|
||||
$domain = $runner.Domain
|
||||
|
||||
if (!$domain.GetData('wasError'))
|
||||
{
|
||||
return $null
|
||||
}
|
||||
|
||||
return @{
|
||||
Message = $domain.GetData('error.Message');
|
||||
TypeName = $domain.GetData('error.TypeName');
|
||||
StackTrace = $domain.GetData('error.StackTrace')
|
||||
}
|
||||
}
|
||||
|
||||
function Get-MigrationsProject($name, $hideMessage)
|
||||
{
|
||||
if ($name)
|
||||
{
|
||||
return Get-SingleProject $name
|
||||
}
|
||||
|
||||
$project = Get-Project
|
||||
$projectName = $project.Name
|
||||
|
||||
if (!$hideMessage)
|
||||
{
|
||||
Write-Verbose "Using NuGet project '$projectName'."
|
||||
}
|
||||
|
||||
return $project
|
||||
}
|
||||
|
||||
function Get-MigrationsStartUpProject($name, $fallbackName)
|
||||
{
|
||||
$startUpProject = $null
|
||||
|
||||
if ($name)
|
||||
{
|
||||
$startUpProject = Get-SingleProject $name
|
||||
}
|
||||
else
|
||||
{
|
||||
$startupProjectPaths = $DTE.Solution.SolutionBuild.StartupProjects
|
||||
|
||||
if ($startupProjectPaths)
|
||||
{
|
||||
if ($startupProjectPaths.Length -eq 1)
|
||||
{
|
||||
$startupProjectPath = $startupProjectPaths[0]
|
||||
|
||||
if (!(Split-Path -IsAbsolute $startupProjectPath))
|
||||
{
|
||||
$solutionPath = Split-Path $DTE.Solution.Properties.Item('Path').Value
|
||||
$startupProjectPath = Join-Path $solutionPath $startupProjectPath -Resolve
|
||||
}
|
||||
|
||||
$startupProject = Get-SolutionProjects | ?{
|
||||
try
|
||||
{
|
||||
$fullName = $_.FullName
|
||||
}
|
||||
catch [NotImplementedException]
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($fullName -and $fullName.EndsWith('\'))
|
||||
{
|
||||
$fullName = $fullName.Substring(0, $fullName.Length - 1)
|
||||
}
|
||||
|
||||
return $fullName -eq $startupProjectPath
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Verbose 'More than one start-up project found.'
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Verbose 'No start-up project found.'
|
||||
}
|
||||
}
|
||||
|
||||
if (!($startUpProject -and (Test-StartUpProject $startUpProject)))
|
||||
{
|
||||
$startUpProject = Get-MigrationsProject $fallbackName $true
|
||||
$startUpProjectName = $startUpProject.Name
|
||||
|
||||
Write-Warning "Cannot determine a valid start-up project. Using project '$startUpProjectName' instead. Your configuration file and working directory may not be set as expected. Use the -StartUpProjectName parameter to set one explicitly. Use the -Verbose switch for more information."
|
||||
}
|
||||
else
|
||||
{
|
||||
$startUpProjectName = $startUpProject.Name
|
||||
|
||||
Write-Verbose "Using StartUp project '$startUpProjectName'."
|
||||
}
|
||||
|
||||
return $startUpProject
|
||||
}
|
||||
|
||||
function Get-SolutionProjects()
|
||||
{
|
||||
$projects = New-Object System.Collections.Stack
|
||||
|
||||
$DTE.Solution.Projects | %{
|
||||
$projects.Push($_)
|
||||
}
|
||||
|
||||
while ($projects.Count -ne 0)
|
||||
{
|
||||
$project = $projects.Pop();
|
||||
|
||||
# NOTE: This line is similar to doing a "yield return" in C#
|
||||
$project
|
||||
|
||||
if ($project.ProjectItems)
|
||||
{
|
||||
$project.ProjectItems | ?{ $_.SubProject } | %{
|
||||
$projects.Push($_.SubProject)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Get-SingleProject($name)
|
||||
{
|
||||
$project = Get-Project $name
|
||||
|
||||
if ($project -is [array])
|
||||
{
|
||||
throw "More than one project '$name' was found. Specify the full name of the one to use."
|
||||
}
|
||||
|
||||
return $project
|
||||
}
|
||||
|
||||
function Test-StartUpProject($project)
|
||||
{
|
||||
if ($project.Kind -eq '{cc5fd16d-436d-48ad-a40c-5a424c6e3e79}')
|
||||
{
|
||||
$projectName = $project.Name
|
||||
Write-Verbose "Cannot use start-up project '$projectName'. The Windows Azure Project type isn't supported."
|
||||
|
||||
return $false
|
||||
}
|
||||
|
||||
return $true
|
||||
}
|
||||
|
||||
function Build-Project($project)
|
||||
{
|
||||
$configuration = $DTE.Solution.SolutionBuild.ActiveConfiguration.Name
|
||||
|
||||
$DTE.Solution.SolutionBuild.BuildProject($configuration, $project.UniqueName, $true)
|
||||
|
||||
if ($DTE.Solution.SolutionBuild.LastBuildInfo)
|
||||
{
|
||||
$projectName = $project.Name
|
||||
|
||||
throw "The project '$projectName' failed to build."
|
||||
}
|
||||
}
|
||||
|
||||
function Get-EntityFrameworkInstallPath($project)
|
||||
{
|
||||
$package = Get-Package -ProjectName $project.FullName | ?{ $_.Id -eq 'EntityFramework' }
|
||||
|
||||
if (!$package)
|
||||
{
|
||||
$projectName = $project.Name
|
||||
|
||||
throw "The EntityFramework package is not installed on project '$projectName'."
|
||||
}
|
||||
|
||||
return Get-PackageInstallPath $package
|
||||
}
|
||||
|
||||
function Get-PackageInstallPath($package)
|
||||
{
|
||||
$componentModel = Get-VsComponentModel
|
||||
$packageInstallerServices = $componentModel.GetService([NuGet.VisualStudio.IVsPackageInstallerServices])
|
||||
|
||||
$vsPackage = $packageInstallerServices.GetInstalledPackages() | ?{ $_.Id -eq $package.Id -and $_.Version -eq $package.Version }
|
||||
|
||||
return $vsPackage.InstallPath
|
||||
}
|
||||
|
||||
Export-ModuleMember @( 'Enable-Migrations', 'Add-Migration', 'Update-Database', 'Get-Migrations' ) -Variable InitialDatabase
|
||||
|
||||
# SIG # Begin signature block
|
||||
# MIIaRgYJKoZIhvcNAQcCoIIaNzCCGjMCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
|
||||
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
|
||||
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUc46O5H/xCa1Zd+kKsDgAx0de
|
||||
# pNmgghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5
|
||||
# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
|
||||
# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
|
||||
# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx
|
||||
# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
|
||||
# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
|
||||
# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
|
||||
# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9
|
||||
# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O
|
||||
# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o
|
||||
# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT
|
||||
# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n
|
||||
# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD
|
||||
# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO
|
||||
# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR
|
||||
# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
|
||||
# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
|
||||
# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
|
||||
# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
|
||||
# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI
|
||||
# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv
|
||||
# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL
|
||||
# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy
|
||||
# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+
|
||||
# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC
|
||||
# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
|
||||
# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
|
||||
# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
|
||||
# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL
|
||||
# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
|
||||
# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
|
||||
# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD
|
||||
# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
|
||||
# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R
|
||||
# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS
|
||||
# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK
|
||||
# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ
|
||||
# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl
|
||||
# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw
|
||||
# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS
|
||||
# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
|
||||
# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
|
||||
# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
|
||||
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
|
||||
# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v
|
||||
# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622
|
||||
# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5
|
||||
# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi
|
||||
# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG
|
||||
# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR
|
||||
# ARYRYopBdqAwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA
|
||||
# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
|
||||
# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
|
||||
# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT
|
||||
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
|
||||
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl
|
||||
# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ
|
||||
# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA
|
||||
# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc
|
||||
# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+
|
||||
# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc
|
||||
# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX
|
||||
# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV
|
||||
# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB
|
||||
# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt
|
||||
# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX
|
||||
# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z
|
||||
# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU
|
||||
# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0
|
||||
# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB
|
||||
# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM
|
||||
# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j
|
||||
# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO
|
||||
# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY
|
||||
# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K
|
||||
# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO
|
||||
# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC
|
||||
# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH
|
||||
# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB
|
||||
# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc
|
||||
# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv
|
||||
# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk
|
||||
# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj
|
||||
# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw
|
||||
# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
|
||||
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
|
||||
# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN
|
||||
# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj
|
||||
# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY
|
||||
# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co
|
||||
# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt
|
||||
# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23
|
||||
# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB
|
||||
# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2
|
||||
# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME
|
||||
# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB
|
||||
# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy
|
||||
# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT
|
||||
# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br
|
||||
# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB
|
||||
# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j
|
||||
# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw
|
||||
# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO
|
||||
# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K
|
||||
# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d
|
||||
# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK
|
||||
# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY
|
||||
# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP
|
||||
# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo
|
||||
# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh
|
||||
# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v
|
||||
# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E
|
||||
# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ
|
||||
# E6P9MYIEgzCCBH8CAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
|
||||
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
|
||||
# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ
|
||||
# zJMAAQAAAGYwCQYFKw4DAhoFAKCBsDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB
|
||||
# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU
|
||||
# SDInMyiqV3LEzPhzf6mjYJvp5qAwUAYKKwYBBAGCNwIBDDFCMECgIoAgAEUAbgB0
|
||||
# AGkAdAB5ACAARgByAGEAbQBlAHcAbwByAGuhGoAYaHR0cDovL21zZG4uY29tL2Rh
|
||||
# dGEvZWYgMA0GCSqGSIb3DQEBAQUABIIBAMTy2exDNM/cRmGrhj6rawr6XoQp77kh
|
||||
# +WOMUmSG5U4qSlP8g3fVFH030Xsxz5d8TunxEzRUyDhYHh3mQ56x4RCVJU/fdl8Q
|
||||
# dhXwn4VfV84G3+mIHVRCo8+8hm/o1l1K0sHhLCaPSoZht1bcKH09gK1VxoNhBt78
|
||||
# BFUHLTWw0sRwrEJRW1xZPwOoh2rv1cnYi7GPKFHiYrCV3NSHRkSJZmA42UYA1iZv
|
||||
# 3fF9QCQNlTDY4jiC2vsa/eWt0qhups1gQXdqg8y/Zvc5cEYxF+ByataJ6fI4w5HP
|
||||
# 5WNzsVl1O+6VFlj1qjMzOyVlsHWCOIfFfc8iLoWWy+A4W00yEeHIMT2hggIdMIIC
|
||||
# GQYJKoZIhvcNAQkGMYICCjCCAgYCAQEwgYUwdzELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
|
||||
# c29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAg
|
||||
# UENBAgphBRmWAAAAAAAbMAcGBSsOAwIaoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3
|
||||
# DQEHATAcBgkqhkiG9w0BCQUxDxcNMTIwNjI4MjA0MzM5WjAjBgkqhkiG9w0BCQQx
|
||||
# FgQU2luimdNA+66F/z6ooEia0K5OZC8wDQYJKoZIhvcNAQEFBQAEggEAPUTPALhi
|
||||
# x8qJIn6WmeZTiazQRH4/TVQHCJPDxhlaMgDUDsPwwmjrAfL/UnMz+TVi5ltSM0Hb
|
||||
# jGLfhTbaw/YcLUqztgxNq/vm0cFqU3n+rIGUBXFUwDoS6Ol6UTSoXkJVHyiOxHuU
|
||||
# Fdh33QDv9EVBbr1CQJLTs02d31Uwjg8vUt9+LDSYQWFlZH0+xsy1wStReGX4DSRz
|
||||
# QneatHmqk+Vej4/3iFKBlCJO1SPlXQLaFAUFsZr6yl6oTrpfatG6sA16/e8jjW4u
|
||||
# Kz0GzJYJ4DMVdSVGpsvVWMADsbEsjlr6yesOrN4ZDEBdv7Y3P518wK/iJ1/WdgRc
|
||||
# SA474q5bExc5pA==
|
||||
# SIG # End signature block
|
||||
18
packages/EntityFramework.5.0.0/tools/Redirect.VS11.config
vendored
Normal file
18
packages/EntityFramework.5.0.0/tools/Redirect.VS11.config
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="EntityFramework"
|
||||
culture="neutral"
|
||||
publicKeyToken="b77a5c561934e089" />
|
||||
<bindingRedirect oldVersion="5.0.0.0"
|
||||
newVersion="4.4.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.VisualStudio.Shell" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="2.0.0.0-10.0.0.0" newVersion="11.0.0.0"/>
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
14
packages/EntityFramework.5.0.0/tools/Redirect.config
vendored
Normal file
14
packages/EntityFramework.5.0.0/tools/Redirect.config
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="EntityFramework"
|
||||
culture="neutral"
|
||||
publicKeyToken="b77a5c561934e089" />
|
||||
<bindingRedirect oldVersion="5.0.0.0"
|
||||
newVersion="4.4.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
30
packages/EntityFramework.5.0.0/tools/about_EntityFramework.help.txt
vendored
Normal file
30
packages/EntityFramework.5.0.0/tools/about_EntityFramework.help.txt
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
TOPIC
|
||||
about_EntityFramework
|
||||
|
||||
SHORT DESCRIPTION
|
||||
Provides information about Entity Framework commands.
|
||||
|
||||
LONG DESCRIPTION
|
||||
This topic describes the Entity Framework commands. Entity Framework is
|
||||
Microsoft's recommended data access technology for new applications.
|
||||
|
||||
|
||||
The following Entity Framework cmdlets are included.
|
||||
|
||||
Cmdlet Description
|
||||
----------------- ---------------------------------------------------
|
||||
Enable-Migrations Enables Code First Migrations in a project.
|
||||
|
||||
Add-Migration Scaffolds a migration script for any pending model
|
||||
changes.
|
||||
|
||||
Update-Database Applies any pending migrations to the database.
|
||||
|
||||
Get-Migrations Displays the migrations that have been applied to
|
||||
the target database.
|
||||
|
||||
SEE ALSO
|
||||
Enable-Migrations
|
||||
Add-Migration
|
||||
Update-Database
|
||||
Get-Migrations
|
||||
176
packages/EntityFramework.5.0.0/tools/init.ps1
vendored
Normal file
176
packages/EntityFramework.5.0.0/tools/init.ps1
vendored
Normal file
@@ -0,0 +1,176 @@
|
||||
param($installPath, $toolsPath, $package, $project)
|
||||
|
||||
$importedModule = Get-Module | ?{ $_.Name -eq 'EntityFramework' }
|
||||
|
||||
if ($PSVersionTable.PSVersion -ge (New-Object Version @( 3, 0 )))
|
||||
{
|
||||
$thisModuleManifest = 'EntityFramework.PS3.psd1'
|
||||
}
|
||||
else
|
||||
{
|
||||
$thisModuleManifest = 'EntityFramework.psd1'
|
||||
}
|
||||
|
||||
$thisModule = Test-ModuleManifest (Join-Path $toolsPath $thisModuleManifest)
|
||||
$shouldImport = $true
|
||||
|
||||
if ($importedModule)
|
||||
{
|
||||
if ($importedModule.Version -le $thisModule.Version)
|
||||
{
|
||||
Remove-Module EntityFramework
|
||||
}
|
||||
else
|
||||
{
|
||||
$shouldImport = $false
|
||||
}
|
||||
}
|
||||
|
||||
if ($shouldImport)
|
||||
{
|
||||
Import-Module $thisModule
|
||||
}
|
||||
|
||||
# SIG # Begin signature block
|
||||
# MIIaSAYJKoZIhvcNAQcCoIIaOTCCGjUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
|
||||
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
|
||||
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU4JbMotbKQrAO4s/cceCMbJQG
|
||||
# 482gghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5
|
||||
# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
|
||||
# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
|
||||
# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx
|
||||
# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
|
||||
# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
|
||||
# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
|
||||
# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9
|
||||
# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O
|
||||
# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o
|
||||
# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT
|
||||
# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n
|
||||
# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD
|
||||
# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO
|
||||
# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR
|
||||
# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
|
||||
# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
|
||||
# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
|
||||
# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
|
||||
# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI
|
||||
# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv
|
||||
# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL
|
||||
# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy
|
||||
# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+
|
||||
# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC
|
||||
# A6KgAwIBAgIKYQKSSgAAAAAAIDANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
|
||||
# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
|
||||
# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
|
||||
# ZS1TdGFtcCBQQ0EwHhcNMTIwMTA5MjIyNTU5WhcNMTMwNDA5MjIyNTU5WjCBszEL
|
||||
# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
|
||||
# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
|
||||
# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOkI4RUMtMzBBNC03MTQ0MSUwIwYD
|
||||
# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
|
||||
# AQEFAAOCAQ8AMIIBCgKCAQEAzWPD96K1R9n5OZRTrGuPpnk4IfTRbj0VOBbBcyyZ
|
||||
# j/vgPFvhokyLsquLtPJKx7mTUNEm9YdTsHp180cPFytnLGTrYOdKjOCLXsRWaTc6
|
||||
# KgRdFwHIv6m308mro5GogeM/LbfY5MR4AHk5z/3HZOIjEnieDHYnSY+arA504wZV
|
||||
# VUnI7aF8cEVhfrJxFh7hwUG50tIy6VIk8zZQBNfdbzxJ1QvUdkD8ZWUTfpVROtX/
|
||||
# uJqnV2tLFeU3WB/cAA3FrurfgUf58FKu5s9arOAUSqZxlID6/bAjMGDpg2CsDiQe
|
||||
# /xHy56VVYpXun3+eKdbNSwp2g/BDBN8GSSDyU1pEsFF6OQIDAQABo4IBCTCCAQUw
|
||||
# HQYDVR0OBBYEFM0ZrGFNlGcr9q+UdVnb8FgAg6E6MB8GA1UdIwQYMBaAFCM0+NlS
|
||||
# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
|
||||
# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
|
||||
# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
|
||||
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
|
||||
# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAFEc1t82HdyA
|
||||
# vAKnxpnfFsiQBmkVmjK582QQ0orzYikbeY/KYKmzXcTkFi01jESb8fRcYaRBrpqL
|
||||
# ulDRanlqs2KMnU1RUAupjtS/ohDAR9VOdVKJHj+Wao8uQBQGcu4/cFmSXYXtg5n6
|
||||
# goSe5AMBIROrJ9bMcUnl2h3/bzwJTtWNZugMyX/uMRQCN197aeyJPkV/JUTnHxrW
|
||||
# xRrDSuTh8YSY50/5qZinGEbshGzsqQMK/Xx6Uh2ca6SoD5iSpJJ4XCt4432yx9m2
|
||||
# cH3fW3NTv6rUZlBL8Mk7lYXlwUplnSVYULsgVJF5OhsHXGpXKK8xx5/nwx3uR/0n
|
||||
# 13/PdNxlxT8wggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA
|
||||
# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
|
||||
# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
|
||||
# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT
|
||||
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
|
||||
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl
|
||||
# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ
|
||||
# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA
|
||||
# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc
|
||||
# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+
|
||||
# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc
|
||||
# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX
|
||||
# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV
|
||||
# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB
|
||||
# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt
|
||||
# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX
|
||||
# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z
|
||||
# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU
|
||||
# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0
|
||||
# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB
|
||||
# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM
|
||||
# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j
|
||||
# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO
|
||||
# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY
|
||||
# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K
|
||||
# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO
|
||||
# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC
|
||||
# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH
|
||||
# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB
|
||||
# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc
|
||||
# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv
|
||||
# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk
|
||||
# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj
|
||||
# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw
|
||||
# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
|
||||
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
|
||||
# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN
|
||||
# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj
|
||||
# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY
|
||||
# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co
|
||||
# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt
|
||||
# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23
|
||||
# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB
|
||||
# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2
|
||||
# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME
|
||||
# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB
|
||||
# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy
|
||||
# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT
|
||||
# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br
|
||||
# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB
|
||||
# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j
|
||||
# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw
|
||||
# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO
|
||||
# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K
|
||||
# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d
|
||||
# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK
|
||||
# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY
|
||||
# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP
|
||||
# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo
|
||||
# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh
|
||||
# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v
|
||||
# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E
|
||||
# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ
|
||||
# E6P9MYIEhTCCBIECAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
|
||||
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
|
||||
# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ
|
||||
# zJMAAQAAAGYwCQYFKw4DAhoFAKCBsDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB
|
||||
# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU
|
||||
# WQ2AdtM5zwQcEcFbsSevYrmN6UQwUAYKKwYBBAGCNwIBDDFCMECgIoAgAEUAbgB0
|
||||
# AGkAdAB5ACAARgByAGEAbQBlAHcAbwByAGuhGoAYaHR0cDovL21zZG4uY29tL2Rh
|
||||
# dGEvZWYgMA0GCSqGSIb3DQEBAQUABIIBAAp6IKF/Uj/9lpK3SAcA7JJxjVoqi+yI
|
||||
# n0i9qNP5b4+zTSrtpnPDibOaQvhdUlEsAlEjnJTRCwYR9zobPyxJfGoh9j/qkgcU
|
||||
# wWBIdmNhzMEzVDJwlE9puRipHQNP6ftcbaz9SOD40aOQ8skR9ecYuHW9SGG0levm
|
||||
# m2Q/UWxmxVvtv6HnYzWUn6vHrJmiRk+t1ckG9Dxq2GPnBA+hGrRdYaijPBSwSWcg
|
||||
# FnBsl4s88UVL7N8hpKYOQGnqGda6V1LJIgNPKoGNoPllFeJWXKgClvJ6majpd6dz
|
||||
# o8S6A9a19D2Dh1l0cbwpI2ZFZjfY9UOVSH33i6fk7CM0aCVe9z3dcB+hggIfMIIC
|
||||
# GwYJKoZIhvcNAQkGMYICDDCCAggCAQEwgYUwdzELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
|
||||
# c29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAg
|
||||
# UENBAgphApJKAAAAAAAgMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI
|
||||
# hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMjA2MjgyMDQzMzlaMCMGCSqGSIb3DQEJ
|
||||
# BDEWBBTcH0Qic4YQ6MzFbjR1RWKCxjK8pzANBgkqhkiG9w0BAQUFAASCAQAdMhoS
|
||||
# z2zXLJyB1RIjdnGlDxLKzXF+rxImjMI7VfId2vIg4FaGIPqnN0BBTp8o+HZCv3cM
|
||||
# ZV/okS8w9k/82jWjJ183l9fn3moQe4qbVlV6yUJvPFpW47LFrEAXgdmL8bgA/VOW
|
||||
# HtJRP52lPDsb7J1WjqNOh7KkyD5x0Y8Pwrb+Xc63ibtTjOeAttPxKk+1gZh95wUA
|
||||
# ykjw7RKZLHfyJ9Ph5lCkzDQrXXwGGPuzaZVO+pkowgy2yCPRecShGBCKbCyOZlhT
|
||||
# BS1WVJDHS95N732o0lPzWE5rTQe/awv8xkgCe9e8ci4S7/lSnj3aVOLbM3S8jG4x
|
||||
# Oi4rxrjYTjts1n2P
|
||||
# SIG # End signature block
|
||||
170
packages/EntityFramework.5.0.0/tools/install.ps1
vendored
Normal file
170
packages/EntityFramework.5.0.0/tools/install.ps1
vendored
Normal file
@@ -0,0 +1,170 @@
|
||||
param($installPath, $toolsPath, $package, $project)
|
||||
|
||||
function Invoke-ConnectionFactoryConfigurator($assemblyPath, $project)
|
||||
{
|
||||
$appDomain = [AppDomain]::CreateDomain(
|
||||
'EntityFramework.PowerShell',
|
||||
$null,
|
||||
(New-Object System.AppDomainSetup -Property @{ ShadowCopyFiles = 'true' }))
|
||||
|
||||
$appDomain.CreateInstanceFrom(
|
||||
$assemblyPath,
|
||||
'System.Data.Entity.ConnectionFactoryConfig.ConnectionFactoryConfigurator',
|
||||
$false,
|
||||
0,
|
||||
$null,
|
||||
$project,
|
||||
$null,
|
||||
$null) | Out-Null
|
||||
|
||||
[AppDomain]::Unload($appDomain)
|
||||
}
|
||||
|
||||
Invoke-ConnectionFactoryConfigurator (Join-Path $toolsPath EntityFramework.PowerShell.dll) $project
|
||||
|
||||
Write-Host
|
||||
Write-Host "Type 'get-help EntityFramework' to see all available Entity Framework commands."
|
||||
|
||||
# SIG # Begin signature block
|
||||
# MIIaRgYJKoZIhvcNAQcCoIIaNzCCGjMCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
|
||||
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
|
||||
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU4nG54zEClXzFX9aYwYpo8BH3
|
||||
# YWygghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5
|
||||
# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
|
||||
# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
|
||||
# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx
|
||||
# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
|
||||
# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
|
||||
# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
|
||||
# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9
|
||||
# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O
|
||||
# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o
|
||||
# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT
|
||||
# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n
|
||||
# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD
|
||||
# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO
|
||||
# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR
|
||||
# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
|
||||
# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
|
||||
# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
|
||||
# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
|
||||
# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI
|
||||
# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv
|
||||
# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL
|
||||
# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy
|
||||
# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+
|
||||
# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC
|
||||
# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
|
||||
# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
|
||||
# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
|
||||
# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL
|
||||
# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
|
||||
# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
|
||||
# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD
|
||||
# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
|
||||
# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R
|
||||
# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS
|
||||
# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK
|
||||
# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ
|
||||
# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl
|
||||
# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw
|
||||
# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS
|
||||
# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
|
||||
# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
|
||||
# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
|
||||
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
|
||||
# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v
|
||||
# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622
|
||||
# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5
|
||||
# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi
|
||||
# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG
|
||||
# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR
|
||||
# ARYRYopBdqAwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA
|
||||
# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
|
||||
# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
|
||||
# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT
|
||||
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
|
||||
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl
|
||||
# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ
|
||||
# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA
|
||||
# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc
|
||||
# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+
|
||||
# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc
|
||||
# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX
|
||||
# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV
|
||||
# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB
|
||||
# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt
|
||||
# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX
|
||||
# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z
|
||||
# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU
|
||||
# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0
|
||||
# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB
|
||||
# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM
|
||||
# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j
|
||||
# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO
|
||||
# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY
|
||||
# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K
|
||||
# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO
|
||||
# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC
|
||||
# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH
|
||||
# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB
|
||||
# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc
|
||||
# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv
|
||||
# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk
|
||||
# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj
|
||||
# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw
|
||||
# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
|
||||
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
|
||||
# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN
|
||||
# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj
|
||||
# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY
|
||||
# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co
|
||||
# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt
|
||||
# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23
|
||||
# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB
|
||||
# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2
|
||||
# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME
|
||||
# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB
|
||||
# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy
|
||||
# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT
|
||||
# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br
|
||||
# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB
|
||||
# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j
|
||||
# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw
|
||||
# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO
|
||||
# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K
|
||||
# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d
|
||||
# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK
|
||||
# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY
|
||||
# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP
|
||||
# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo
|
||||
# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh
|
||||
# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v
|
||||
# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E
|
||||
# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ
|
||||
# E6P9MYIEgzCCBH8CAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
|
||||
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
|
||||
# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ
|
||||
# zJMAAQAAAGYwCQYFKw4DAhoFAKCBsDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB
|
||||
# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU
|
||||
# aRQ2a/UgAzqOb3Wvyd0Y2tRWtIEwUAYKKwYBBAGCNwIBDDFCMECgIoAgAEUAbgB0
|
||||
# AGkAdAB5ACAARgByAGEAbQBlAHcAbwByAGuhGoAYaHR0cDovL21zZG4uY29tL2Rh
|
||||
# dGEvZWYgMA0GCSqGSIb3DQEBAQUABIIBAMQdz1xbjYGj57Z6LNm3laDw2S6QJFye
|
||||
# QUSbvlY7kcxqlHQrERkp3wwR34emJSnTayLTcTPaCCvzUaGsZi86i+IW6HdA/3A/
|
||||
# IwEZgAkai/qXZCYEEBvV9ja+iMRowFPAySU+ROh4LFbCTLzm4vez6qaLyui/JQNr
|
||||
# 46DZptV5XM0idAbgOfmtCMMipqRkrNqt7Zj8cuxu3cJBKOvhUOdLfEIxq1UW9pNy
|
||||
# 8c/aOStE0kLFInw3G1GL9IJnS43eTcgeIDMkrwX70o+rLS7lN1U3txL25IrBTUcY
|
||||
# Q6dxj4zSDxIjn3Tq2jqa8B6lR1OMEahj4INmR6vC+mFNspHODHWgt7GhggIdMIIC
|
||||
# GQYJKoZIhvcNAQkGMYICCjCCAgYCAQEwgYUwdzELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
|
||||
# c29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAg
|
||||
# UENBAgphBRmWAAAAAAAbMAcGBSsOAwIaoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3
|
||||
# DQEHATAcBgkqhkiG9w0BCQUxDxcNMTIwNjI4MjA0MzU0WjAjBgkqhkiG9w0BCQQx
|
||||
# FgQUlE+8FmmwI9Hd6gz+luAdOPsKxHgwDQYJKoZIhvcNAQEFBQAEggEAiJCupwRm
|
||||
# YW3NHK2EdgaQ+VCIjXwVrEj6ElX4c30nAYXxnCOIesErL/N/jMYnM3Fo+GNsOikL
|
||||
# x9Mzo4sZv/c6bchLtnagS6MzQyDFiBPF+pngSMg2PpIDHsIBg2vPzClWx6+hCDxE
|
||||
# Yf9f7/s/vQEpEbHLjzQZJqoji2LV5HRxnHbT3J13atUF2yqgzyTRlOF2MPp3vLX1
|
||||
# 7q5KnOBrWsfyxoYskJEddsbH7zilomWyVZ2zcpG8Ui/h2xoN50AXtMQntx9VYxwT
|
||||
# D5U5ECSdKzXeUIwktYBPtxor5yGBda63PNxjUHYXSRvFrdnLtXTiMiIQzEzJUdk9
|
||||
# 6p75IHbjyjvZfg==
|
||||
# SIG # End signature block
|
||||
BIN
packages/EntityFramework.5.0.0/tools/migrate.exe
vendored
Normal file
BIN
packages/EntityFramework.5.0.0/tools/migrate.exe
vendored
Normal file
Binary file not shown.
BIN
packages/Microsoft.AspNet.Mvc.4.0.20710.0/Microsoft.AspNet.Mvc.4.0.20710.0.nupkg
vendored
Normal file
BIN
packages/Microsoft.AspNet.Mvc.4.0.20710.0/Microsoft.AspNet.Mvc.4.0.20710.0.nupkg
vendored
Normal file
Binary file not shown.
BIN
packages/Microsoft.AspNet.Mvc.4.0.20710.0/lib/net40/System.Web.Mvc.dll
vendored
Normal file
BIN
packages/Microsoft.AspNet.Mvc.4.0.20710.0/lib/net40/System.Web.Mvc.dll
vendored
Normal file
Binary file not shown.
10254
packages/Microsoft.AspNet.Mvc.4.0.20710.0/lib/net40/System.Web.Mvc.xml
vendored
Normal file
10254
packages/Microsoft.AspNet.Mvc.4.0.20710.0/lib/net40/System.Web.Mvc.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
BIN
packages/Microsoft.AspNet.Providers.Core.1.2/Microsoft.AspNet.Providers.Core.1.2.nupkg
vendored
Normal file
BIN
packages/Microsoft.AspNet.Providers.Core.1.2/Microsoft.AspNet.Providers.Core.1.2.nupkg
vendored
Normal file
Binary file not shown.
BIN
packages/Microsoft.AspNet.Providers.Core.1.2/lib/net40/System.Web.Providers.dll
vendored
Normal file
BIN
packages/Microsoft.AspNet.Providers.Core.1.2/lib/net40/System.Web.Providers.dll
vendored
Normal file
Binary file not shown.
377
packages/Microsoft.AspNet.Providers.Core.1.2/readme.html
vendored
Normal file
377
packages/Microsoft.AspNet.Providers.Core.1.2/readme.html
vendored
Normal file
@@ -0,0 +1,377 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
||||
<title>ASP.NET Universal Providers Readme</title>
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
body{
|
||||
margin-left:1in;
|
||||
margin-top:.75in;
|
||||
margin-right:1.7in;
|
||||
font-family:calibri;
|
||||
font-size:11pt;
|
||||
line-height:1.15em;
|
||||
background-color:white;
|
||||
}
|
||||
|
||||
h1{
|
||||
margin-left:-.2in;
|
||||
font-family:Arial, Verdana, sans-serif;
|
||||
font-size:20pt;
|
||||
}
|
||||
|
||||
h2{
|
||||
margin-left:-.2in;
|
||||
margin-top:1.8em;
|
||||
font-family:Arial, Verdana, sans-serif;
|
||||
font-size:16pt;
|
||||
}
|
||||
|
||||
h3{
|
||||
margin-left:-.2in;
|
||||
font-family:Verdana, sans-serif;
|
||||
font-size:13.5pt;
|
||||
}
|
||||
|
||||
table{
|
||||
border:thin gray groove;
|
||||
}
|
||||
|
||||
thead{
|
||||
background-color:black;
|
||||
color:white;
|
||||
font-weight:bold;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
td{
|
||||
border:1px solid black;
|
||||
}
|
||||
|
||||
p.indent1{
|
||||
margin-left:.25in;
|
||||
}
|
||||
|
||||
|
||||
code{
|
||||
font-family:"Courier New";
|
||||
font-size:10pt;
|
||||
color:#006600;
|
||||
}
|
||||
|
||||
pre{
|
||||
font-family:"Courier New";
|
||||
font-size:10pt;
|
||||
padding:8px;
|
||||
color:#006600;
|
||||
}
|
||||
|
||||
span.highlight{
|
||||
background-color:Yellow;
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<h1>ASP.NET Universal Providers</h1>
|
||||
|
||||
<p>Last update: 15 August 2012</p>
|
||||
|
||||
|
||||
<p>The
|
||||
<a href="http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.aspx">SqlMembershipProvider</a>,
|
||||
<a href="http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx">SqlRoleProvider</a>,
|
||||
<a href="http://msdn.microsoft.com/en-us/library/system.web.profile.sqlprofileprovider.aspx">SqlProfileProvider</a> classes that shipped in ASP.NET through version 4 support only Microsoft SQL Server and Microsoft SQL Server Express. They do not support newer offerings such as
|
||||
<a href="http://msdn.microsoft.com/en-us/library/ee336241.aspx">Microsoft SQL Azure</a> and
|
||||
<a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=033cfb76-5382-44fb-bc7e-b3c8174832e2">Microsoft SQL Server Compact</a>. </p>
|
||||
<p>ASP.NET Universal Providers have been created in order to extend support to all editions of SQL Server 2005 and later and to SQL Azure. If you use these providers to develop your application, the application will be ready for cloud environments like Azure.</p>
|
||||
<p>Other than supporting additional storage options, the providers work like the existing SQL-based providers. Except as noted below, using ASP.NET Universal Providers requires no change in any of your applications.</p>
|
||||
<ul>
|
||||
<li><a href="#Installing_and_Configuring_ASP.NET_Unive">Installing and
|
||||
Configuring ASP.NET Universal Providers</a></li>
|
||||
<li><a href="#Selecting_a_Data_Store">Selecting a Data Store</a></li>
|
||||
<li><a href="#Storing_Data_in_Session_State_using_ASP">Storing Data in
|
||||
Session State using ASP.NET Universal Providers</a></li>
|
||||
<li><a href="#Deploying_to_a_Cloud_Environment">Deploying to a Cloud
|
||||
Environment</a></li>
|
||||
<li><a href="#Known_Issues">Known Issues</a></li>
|
||||
<li><a href="#Additional_Resources">Additional Resources</a></li>
|
||||
<li><a href="#Disclaimer">Disclaimer</a><br />
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="Installing_and_Configuring_ASP.NET_Unive">Installing and Configuring ASP.NET Universal Providers</a></h2>
|
||||
|
||||
|
||||
|
||||
<p>To install ASP.NET Universal Providers, you use a NuGet package, which installs all required files (including this documentation). The NuGet package automatically enables the new providers when it is installed. By default, the NuGet package configures provider to use SQL Server Express. To use SQL Server Compact or SQL Azure, you must change the connection string for the provider, as explained
|
||||
<a href="#Selecting_a_Data_Store">later in this document</a>.</p>
|
||||
|
||||
<p>To enable the providers, the NuGet package adds configuration entries in the
|
||||
<em>web.config</em> file. The configuration for these providers is the same as the existing
|
||||
<code>SqlMembershipProvider</code> class, but the <code>type</code> parameter is set to the type of the new providers, as shown in the following table:</p>
|
||||
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<td>SQL Provider Types</td>
|
||||
<td>Equivalent Type for Universal Providers</td>
|
||||
</thead>
|
||||
<tr>
|
||||
<td ><code>System.Web.Security.SqlMembershipProvider</code></td>
|
||||
<td ><code>System.Web.Providers.DefaultMembershipProvider</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>System.Web.Profile.SqlProfileProvider</code></td>
|
||||
<td><code>System.Web.Providers.DefaultProfileProvider</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>System.Web.Security.SqlRoleProvider</code></td>
|
||||
<td><code>System.Web.Providers.DefaultRoleProvider</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>(Built into default provider)</td>
|
||||
<td><code>System.Web.Providers.DefaultSessionStateProvider</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>In the <em>web.config</em> file, the configuration looks like the following example (the connection string has been wrapped for readability). The differences from the configuration for older SQL-based providers are highlighted. Notice that a section has been added to define custom session-state handling using a custom provider, as described later under
|
||||
<a href="#Storing_Data_in_Session_State_using_ASP">Storing Data in Session State using ASP.NET Universal Providers</a>.</p>
|
||||
<pre><configuration>
|
||||
<connectionStrings>
|
||||
<add name="DefaultConnection"
|
||||
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnetdb;Integrated Security=True"
|
||||
providerName="System.Data.SqlClient" />
|
||||
</connectionStrings>
|
||||
|
||||
<system.web>
|
||||
<membership <span class="highlight">defaultProvider="DefaultMembershipProvider"</span>>
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="DefaultMembershipProvider"
|
||||
<span class="highlight">type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
|
||||
</span> connectionStringName="DefaultConnection"
|
||||
enablePasswordRetrieval="false"
|
||||
enablePasswordReset="true"
|
||||
requiresQuestionAndAnswer="false"
|
||||
requiresUniqueEmail="false"
|
||||
maxInvalidPasswordAttempts="5"
|
||||
minRequiredPasswordLength="6"
|
||||
minRequiredNonalphanumericCharacters="0"
|
||||
passwordAttemptWindow="10"
|
||||
applicationName="/" />
|
||||
</providers>
|
||||
</membership>
|
||||
|
||||
<profile <span class="highlight">defaultProvider="DefaultProfileProvider"</span>>
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="DefaultProfileProvider"
|
||||
<span class="highlight">type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
|
||||
</span> connectionStringName="DefaultConnection"
|
||||
applicationName="/" />
|
||||
</providers>
|
||||
</profile>
|
||||
|
||||
<roleManager <span class="highlight">defaultProvider="DefaultRoleProvider"</span> enabled="false">
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="DefaultRoleProvider"
|
||||
<span class="highlight">type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
|
||||
</span> connectionStringName="DefaultConnection"
|
||||
applicationName="/" />
|
||||
</providers>
|
||||
</roleManager>
|
||||
|
||||
<sessionState mode="Custom" customProvider="DefaultSessionProvider">
|
||||
<providers>
|
||||
<add name="DefaultSessionProvider"
|
||||
<span class="highlight">type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
|
||||
</span> connectionStringName="DefaultConnection"
|
||||
applicationName="/" />
|
||||
</providers>
|
||||
</sessionState>
|
||||
</system.web> </pre>
|
||||
|
||||
<h2><a name="Selecting_a_Data_Store">Selecting a Data Store</a></h2>
|
||||
<p>If you want to use SQL Server LocalDB database,change the connection string as shown in the following example:</p>
|
||||
<pre>
|
||||
<connectionStrings>
|
||||
<add name="DefaultConnection" providerName="System.Data.SqlClient"
|
||||
connectionString="Data Source=(LocalDb)\v11.0;
|
||||
Initial Catalog=aspnet-ProjectName-GUID;Integrated Security=SSPI;
|
||||
AttachDBFilename=|DataDirectory|\aspnet-ProjectName-GUID.mdf" />
|
||||
<connectionStrings>
|
||||
</pre>
|
||||
<p>If you want to use SQL Server Express database,change the connection string as shown in the following example:</p>
|
||||
<pre>
|
||||
<connectionStrings>
|
||||
<add name="DefaultConnection" providerName="System.Data.SqlClient"
|
||||
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnetdb;
|
||||
Integrated Security=True" providerName="System.Data.SqlClient"/>
|
||||
<connectionStrings>
|
||||
</pre>
|
||||
|
||||
<p>If you want to use SQL Server Compact, change the connection string as shown in the following example:</p>
|
||||
|
||||
<pre><connectionStrings>
|
||||
<add name="DefaultConnection" connectionString="Data Source=|DataDirectory|\aspnet.sdf"
|
||||
providerName="System.Data.SqlServerCe.4.0"/>
|
||||
</connectionStrings></pre>
|
||||
<p>If you want to use SQL Azure, change the connection string as shown in the
|
||||
following example (wrapped for readability):</p>
|
||||
<pre><connectionStrings>
|
||||
<add name="DefaultConnection"
|
||||
connectionString="data source=myDNSName;
|
||||
User ID=myUserName;Password=myPassword;
|
||||
Encrypt=true;Trusted_Connection=false=false"
|
||||
providerName="System.Data.SqlClient"/>
|
||||
<connectionStrings></pre>
|
||||
|
||||
<h2><a name="Storing_Data_in_Session_State_using_ASP">Storing Data in Session State using ASP.NET Universal Providers</a></h2>
|
||||
|
||||
<p>By default, ASP.NET stores session data using an in-process (in-memory) session provider. This provider allows you to put any object in session state, because session state simply holds a reference to the object, not the object itself.</p>
|
||||
<p>However, cloud environments might run your application on multiple computers. Therefore, for cloud-based applications, the application must store session state in some form of storage (like a database) that be accessed by more than one machine. This puts some restrictions on what data you store in session state — essentially, the data must be serializable. </p>
|
||||
<p>When you install ASP.NET Universal Providers, the installation process configures session state to use the
|
||||
<code>System.Web.Providers.DefaultSessionStateProvider</code> type, as shown in the
|
||||
<em>web.config</em> file example earlier. This type stores session state in a database.</p>
|
||||
<p>Session data must be serializable. If you attempt to store something in session state that is not serializable, you will receive the following error: </p>
|
||||
|
||||
<p class="indent1"><code>Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. the same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode. </code></p>
|
||||
|
||||
<p>There are two ways to resolve this issue: by marking the type as serializable or by using a surrogate serializer.</p>
|
||||
|
||||
<h3>Marking Types as Serializable</h3>
|
||||
|
||||
<p>If you have access to the source code for the type that is being stored in session state, you can mark the type using the
|
||||
<code>Serializable</code> attribute, as in the following example. If the type contains additional classes, all the contained classes must be serializable as well.</p>
|
||||
<pre><span class="highlight">[Serializable]</span>
|
||||
public class Address { }
|
||||
|
||||
<span class="highlight">[Serializable]</span>
|
||||
public class Person {
|
||||
public Address Work;
|
||||
public Address Home;
|
||||
}</pre>
|
||||
|
||||
<h3>Using a Surrogate Serializer in .NET Framework 4.5</h3>
|
||||
|
||||
<p>If it's not practical to mark the type as serializable in source code, and if you are using .NET Framework 4.5, you can use a surrogate serializer. (This technique does not work in .NET Framework 4.)</p>
|
||||
<p>Create a class that implements the
|
||||
<a href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializationsurrogate.aspx">ISerializationSurrogate</a> interface. In this class, you implement
|
||||
<a href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializationsurrogate.getobjectdata.aspx">GetObjectData</a> and
|
||||
<a href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializationsurrogate.setobjectdata.aspx">SetObjectData</a> methods in order to serialize and deserialze the data, respectively. In
|
||||
<code>GetObjectData</code> you invoke
|
||||
<a href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.serializationinfo.addvalue.aspx">SerializationInfo.AddValue</a> (using the appropriate overload for the data type of your data) to add individual fields of the object to serialize to a
|
||||
<a href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.serializationinfo.aspx">SerializationInfo</a> object. In
|
||||
<code>SetObjectData</code> you extract the serialized version back to its original value in the object. Here's an example:</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<pre>public class EmployeeSerializationSurrogate : ISerializationSurrogate
|
||||
{
|
||||
// Serialize the Employee object to save the object name and address fields.
|
||||
public void GetObjectData(Object obj, SerializationInfo info, StreamingContext context)
|
||||
{
|
||||
Employee emp = (Employee)obj;
|
||||
info.AddValue("name", emp.name);
|
||||
info.AddValue("address", emp.address);
|
||||
}
|
||||
|
||||
// Deserialize the Employee object to set the object name and address fields.
|
||||
public Object SetObjectData(Object obj, SerializationInfo info, StreamingContext context,
|
||||
ISurrogateSelector selector)
|
||||
{
|
||||
Employee emp = (Employee)obj;
|
||||
emp.name = info.GetString("name");
|
||||
emp.address = info.GetString("address");
|
||||
return null;
|
||||
}
|
||||
}</pre>
|
||||
<p>You then register the serializer and the class to be serialized using the
|
||||
<a href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.surrogateselector.aspx">SurrogateSelector</a> class in code, like this:</p>
|
||||
<pre>protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
SurrogateSelector ss = new SurrogateSelector();
|
||||
ss.AddSurrogate(typeof(Employee), new StreamingContext(StreamingContextStates.All), new EmployeeSerializationSurrogate());
|
||||
SessionStateUtility.SerializationSurrogateSelector = ss;
|
||||
}</pre>
|
||||
<h2><a name="Deploying_to_a_Cloud_Environment">Deploying to a Cloud Environment</a></h2>
|
||||
|
||||
<p>If you are deploying to a cloud environment that has multiple web server instances, you should change session state mode from "InProc" to "Custom". In addition, change the connection string named "DefaultConnection" to connect to an instance of SQL Server (including SQL Azure and SQL Compact) instead of to SQL Server Express.</p>
|
||||
|
||||
<h2><a name="Known_Issues">Known Issues</a></h2>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<p>During the installation process, NuGet performs an exact match on items in the
|
||||
<em>web.config</em> file. If you have customized any of the elements in <em>web.config</em> that are updated by the installation process for ASP.NET Universal Providers, the installation process will not find these elements. Instead of updating the elements, the installation process will assume that they do not exist and add them. As a result, the
|
||||
<em>web.config</em> will effectively contain duplicate elements.</p>
|
||||
<p>If your application is experiencing issues that indicate problems in the <em>web.config</em> file, make sure that the file contains the elements that are illustrated earlier in this document and remove any duplicate elements.</p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>If you are working in Visual Studio and use <strong>Server Explorer</strong> to open the database that contains the membership, role, profile, or session provider tables, and if you then try to run the application, you might see an error like the following: </p>
|
||||
<p><code>Cannot open database "aspnet" requested by the login. The login failed. Login failed for user 'yourname.'</code></p>
|
||||
<p>To resolve this issue, right-click the database in <strong>Server Explorer</strong> and then click
|
||||
<strong>Close Connection</strong>. </p>
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<p>The new providers do not use the same tables, stored procedures, and database objects as the SQL-based providers. If you switch to the new providers in an existing application, the data from the existing tables will not be available. We are considering creating a conversion utility to help you move existing applications to the new providers.</p>
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<p>Web Parts personalization will not work with Universal Providers. You must use the SQL Personalization provider. That in turn does not work with LocalDB, so you must use SQL Server Express.</p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>This release requires that the ASP.NET application be running under full trust.</p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2><a name="Additional_Resources">Additional Resources</a></h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://msdn.microsoft.com/en-us/library/tw292whz.aspx">Managing Users by Using Membership</a></li>
|
||||
<li><a href="http://msdn.microsoft.com/en-us/library/9ab2fxh0.aspx">Managing Authorization Using Roles</a></li>
|
||||
<li><a href="http://msdn.microsoft.com/en-us/library/014bec1k.aspx">ASP.NET Profile Providers</a></li>
|
||||
<li><a href="http://msdn.microsoft.com/en-us/library/ee336241.aspx">Microsoft SQL Azure</a></li>
|
||||
<li>
|
||||
<a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=033cfb76-5382-44fb-bc7e-b3c8174832e2">Microsoft SQL Server Compact</a></li>
|
||||
<li>
|
||||
<a href="http://docs.nuget.org/docs/creating-packages/configuration-file-and-source-code-transformations">Configuration File and Source Code Transformations</a></li>
|
||||
<li><a href="http://go.microsoft.com/fwlink/?LinkId=261899">Migration for user accounts from the SQL MembershipProvider to the Universal Providers</a></li>
|
||||
</ul>
|
||||
<h2><a name="Disclaimer">Disclaimer</a></h2>
|
||||
|
||||
|
||||
<p>This is a preliminary document and may be changed substantially prior to final commercial release of the software described herein.</p>
|
||||
<p>The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.</p>
|
||||
<p>This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
|
||||
<p>Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.</p>
|
||||
<p>Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.</p>
|
||||
<p>Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place or event is intended or should be inferred.</p>
|
||||
<p>© 2011 Microsoft Corporation. All rights reserved.</p>
|
||||
<p>Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.</p>
|
||||
<p>The names of actual companies and products mentioned herein may be the trademarks of their respective owners.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
BIN
packages/Microsoft.AspNet.Providers.LocalDB.1.1/Microsoft.AspNet.Providers.LocalDB.1.1.nupkg
vendored
Normal file
BIN
packages/Microsoft.AspNet.Providers.LocalDB.1.1/Microsoft.AspNet.Providers.LocalDB.1.1.nupkg
vendored
Normal file
Binary file not shown.
33
packages/Microsoft.AspNet.Providers.LocalDB.1.1/content/web.config.transform
vendored
Normal file
33
packages/Microsoft.AspNet.Providers.LocalDB.1.1/content/web.config.transform
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
<configuration>
|
||||
<system.web>
|
||||
<profile defaultProvider="DefaultProfileProvider" >
|
||||
<providers>
|
||||
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/>
|
||||
</providers>
|
||||
</profile>
|
||||
<membership defaultProvider="DefaultMembershipProvider">
|
||||
<providers>
|
||||
<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection"
|
||||
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
|
||||
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
|
||||
applicationName="/" />
|
||||
</providers>
|
||||
</membership>
|
||||
<roleManager defaultProvider="DefaultRoleProvider">
|
||||
<providers>
|
||||
<add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
|
||||
</providers>
|
||||
</roleManager>
|
||||
<!--
|
||||
If you are deploying to a cloud environment that has multiple web server instances,
|
||||
you should change session state mode from "InProc" to "Custom". In addition,
|
||||
change the connection string named "DefaultConnection" to connect to an instance
|
||||
of SQL Server (including SQL Azure and SQL Compact) instead of to SQL Server Express.
|
||||
-->
|
||||
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
|
||||
<providers>
|
||||
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection"/>
|
||||
</providers>
|
||||
</sessionState>
|
||||
</system.web>
|
||||
</configuration>
|
||||
220
packages/Microsoft.AspNet.Providers.LocalDB.1.1/tools/Install.ps1
vendored
Normal file
220
packages/Microsoft.AspNet.Providers.LocalDB.1.1/tools/Install.ps1
vendored
Normal file
@@ -0,0 +1,220 @@
|
||||
param($installPath, $toolsPath, $package, $project)
|
||||
|
||||
try {
|
||||
# Set up variables
|
||||
$timestamp = (Get-Date).ToString('yyyyMMddHHmmss')
|
||||
$projectName = [IO.Path]::GetFileName($project.ProjectName.Trim([IO.PATH]::DirectorySeparatorChar, [IO.PATH]::AltDirectorySeparatorChar))
|
||||
$catalogName = "aspnet-$projectName-$timestamp"
|
||||
$connectionString ="Data Source=(LocalDb)\v11.0;Initial Catalog=$catalogName;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\$catalogName.mdf"
|
||||
$connectionStringToken = 'Data Source=(LocalDb)\v11.0;'
|
||||
$config = $project.ProjectItems | Where-Object { $_.Name -eq "Web.config" }
|
||||
$configPath = ($config.Properties | Where-Object { $_.Name -eq "FullPath" }).Value
|
||||
|
||||
#Load the Config File
|
||||
$xml = New-Object System.Xml.XmlDocument
|
||||
$xml.Load($configPath)
|
||||
|
||||
function CommentNode($node) {
|
||||
if (!$node) {
|
||||
return;
|
||||
}
|
||||
|
||||
$commentNode = $xml.CreateComment($node.OuterXml)
|
||||
$parent = $node.ParentNode
|
||||
$parent.InsertBefore($commentNode, $node) | Out-Null
|
||||
$parent.RemoveChild($node) | Out-Null
|
||||
}
|
||||
|
||||
# Comment out older providers
|
||||
$node = $xml.SelectSingleNode("/configuration/system.web/membership/providers/add[@type='System.Web.Security.SqlMembershipProvider']")
|
||||
$addedNode = $xml.SelectSingleNode("/configuration/system.web/membership/providers/add[@name='DefaultMembershipProvider']")
|
||||
|
||||
if ($node) {
|
||||
# Copy all attributes other than 'name', 'type' and 'connectionStringName' to the newly added node.
|
||||
$node.Attributes | Where { ! (@('name', 'type', 'connectionStringName') -contains $_.name) } | ForEach {
|
||||
$addedNode.SetAttribute($_.name, $_.value)
|
||||
}
|
||||
}
|
||||
|
||||
$oldConnectionNode = $xml.SelectSingleNode("/configuration/connectionStrings/add[@name='$($node.connectionStringName)']")
|
||||
CommentNode $node
|
||||
CommentNode $oldConnectionNode
|
||||
|
||||
$node = $xml.SelectSingleNode("/configuration/system.web/profile/providers/add[@type='System.Web.Profile.SqlProfileProvider']")
|
||||
$oldConnectionNode = $xml.SelectSingleNode("/configuration/connectionStrings/add[@name='$($node.connectionStringName)']")
|
||||
CommentNode $node
|
||||
CommentNode $oldConnectionNode
|
||||
|
||||
$node = $xml.SelectSingleNode("/configuration/system.web/roleManager/providers/add[@type='System.Web.Security.SqlRoleProvider']")
|
||||
$oldConnectionNode = $xml.SelectSingleNode("/configuration/connectionStrings/add[@name='$($node.connectionStringName)']")
|
||||
$connectionStringsToComment += $node.connectionStringName
|
||||
CommentNode $node
|
||||
CommentNode $oldConnectionNode
|
||||
|
||||
# Verify that the connectionStrings node exists
|
||||
$connectionStrings = $xml.SelectSingleNode("/configuration/connectionStrings")
|
||||
if (!$connectionStrings) {
|
||||
$connectionStrings = $xml.CreateElement("connectionStrings")
|
||||
$xml.configuration.AppendChild($connectionStrings) | Out-Null
|
||||
}
|
||||
|
||||
if (!($connectionStrings.SelectNodes("add[@name='DefaultConnection']") | Where { $_.connectionString.StartsWith($connectionStringToken, 'OrdinalIgnoreCase') })) {
|
||||
# If there aren't any connection strings that look like ours, proceed to add one
|
||||
$newConnectionNode = $xml.CreateElement("add")
|
||||
$newConnectionNode.SetAttribute("name", 'DefaultConnection')
|
||||
$newConnectionNode.SetAttribute("providerName", "System.Data.SqlClient")
|
||||
$newConnectionNode.SetAttribute("connectionString", $connectionString)
|
||||
|
||||
$connectionStrings.AppendChild($newConnectionNode) | Out-Null
|
||||
}
|
||||
|
||||
# Save the Config File
|
||||
$xml.Save($configPath)
|
||||
|
||||
} catch {
|
||||
Write-Error "Unable to update the web.config file at $configPath. Add the following connection string to your config: <add name=`"DefaultConnection`" providerName=`"System.Data.SqlClient`" connectionString=`"$connectionString`" />"
|
||||
}
|
||||
|
||||
# SIG # Begin signature block
|
||||
# MIIaRAYJKoZIhvcNAQcCoIIaNTCCGjECAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
|
||||
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
|
||||
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUM2fyakiWFghUj5OcFEF6koKx
|
||||
# /6OgghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5
|
||||
# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
|
||||
# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN
|
||||
# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx
|
||||
# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
|
||||
# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
|
||||
# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
|
||||
# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9
|
||||
# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O
|
||||
# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o
|
||||
# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT
|
||||
# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n
|
||||
# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD
|
||||
# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO
|
||||
# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR
|
||||
# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
|
||||
# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z
|
||||
# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
|
||||
# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw
|
||||
# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI
|
||||
# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv
|
||||
# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL
|
||||
# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy
|
||||
# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+
|
||||
# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC
|
||||
# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV
|
||||
# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
|
||||
# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt
|
||||
# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL
|
||||
# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
|
||||
# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q
|
||||
# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD
|
||||
# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
|
||||
# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R
|
||||
# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS
|
||||
# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK
|
||||
# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ
|
||||
# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl
|
||||
# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw
|
||||
# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS
|
||||
# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
|
||||
# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
|
||||
# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
|
||||
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
|
||||
# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v
|
||||
# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622
|
||||
# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5
|
||||
# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi
|
||||
# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG
|
||||
# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR
|
||||
# ARYRYopBdqAwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA
|
||||
# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv
|
||||
# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
|
||||
# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT
|
||||
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
|
||||
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl
|
||||
# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ
|
||||
# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA
|
||||
# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc
|
||||
# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+
|
||||
# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc
|
||||
# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX
|
||||
# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV
|
||||
# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB
|
||||
# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt
|
||||
# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX
|
||||
# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z
|
||||
# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU
|
||||
# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0
|
||||
# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB
|
||||
# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM
|
||||
# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j
|
||||
# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO
|
||||
# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY
|
||||
# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K
|
||||
# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO
|
||||
# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC
|
||||
# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH
|
||||
# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB
|
||||
# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc
|
||||
# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv
|
||||
# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk
|
||||
# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj
|
||||
# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw
|
||||
# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
|
||||
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
|
||||
# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN
|
||||
# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj
|
||||
# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY
|
||||
# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co
|
||||
# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt
|
||||
# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23
|
||||
# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB
|
||||
# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2
|
||||
# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME
|
||||
# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB
|
||||
# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy
|
||||
# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT
|
||||
# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br
|
||||
# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB
|
||||
# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j
|
||||
# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw
|
||||
# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO
|
||||
# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K
|
||||
# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d
|
||||
# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK
|
||||
# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY
|
||||
# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP
|
||||
# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo
|
||||
# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh
|
||||
# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v
|
||||
# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E
|
||||
# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ
|
||||
# E6P9MYIEgTCCBH0CAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
|
||||
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
|
||||
# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ
|
||||
# zJMAAQAAAGYwCQYFKw4DAhoFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB
|
||||
# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU
|
||||
# 9xYM6Gt10B10F4T8cFicUQvWvVIwTgYKKwYBBAGCNwIBDDFAMD6gJIAiAE0AaQBj
|
||||
# AHIAbwBzAG8AZgB0ACAAQQBTAFAALgBOAEUAVKEWgBRodHRwOi8vd3d3LmFzcC5u
|
||||
# ZXQvIDANBgkqhkiG9w0BAQEFAASCAQCuP8jCT3sq6XqWKCAcNJF601H1Zr+nKpXF
|
||||
# UkZm2Og5DjNN0EovL6vbw5GFU3+jnvW3NTGF3w8Ni/IkJj9KLbnz/MamhpoCY2N8
|
||||
# p3adGz5bvVxacZsiIcq3LRcOiasKCxuFu/bemfulxcOeho9rVc3zudiu3GbgsErb
|
||||
# ZH098KrmX7Vc/0VZgR9hlhN9QNXY0+ZkuKaB2URiowz8CePkSaMW5kuCF3H5eUpA
|
||||
# WUImlvqdgCsNDwUxIAVr5gkDjFZwky+VhNPT8e/ZtQiXxZBnftYujuRpp2wZTwLk
|
||||
# vAz/SA/X+mTKZJwtZloO4//l5WnBj2tg6ML3U4qk+mvhZIylsCy/oYICHTCCAhkG
|
||||
# CSqGSIb3DQEJBjGCAgowggIGAgEBMIGFMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
|
||||
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
|
||||
# ZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD
|
||||
# QQIKYQUZlgAAAAAAGzAHBgUrDgMCGqBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0B
|
||||
# BwEwHAYJKoZIhvcNAQkFMQ8XDTEyMDYwNDE2NTkzMFowIwYJKoZIhvcNAQkEMRYE
|
||||
# FEHQYQK8DGgOoGQf028vCOnG6FGYMA0GCSqGSIb3DQEBBQUABIIBAGzVRWMbRJoL
|
||||
# kuebcjjH8n5+KlB8oAcCLRgU+unIJP105kip47XIqvUH/8AOFVN4Oto6RVtqwNA2
|
||||
# a+uYuSdfwdZjKNL/SjkXd0vSB5j86xEx7ac6Apd+/6YES1SsuAm2OR7swBkXiTId
|
||||
# EIlkZ1XekIZ7dHz4bu+Ee5FoVm2wKn4RZbTtEcyGHr/BAPHXwWuoObDrt6KJW+qK
|
||||
# ivYWvN05JqNal/Zsd3P+azKaEk9FJncuK1zdSJXmixam8ZHm+ixNlwO3nX5bi8ix
|
||||
# yJORXvJZGE2QrSufiH/+HhONa8n6YMRuWw6Ws/2io5w+NGlThiTe0n3AuKbB773Z
|
||||
# YZgAzu+XkmI=
|
||||
# SIG # End signature block
|
||||
BIN
packages/Microsoft.AspNet.Razor.2.0.20715.0/Microsoft.AspNet.Razor.2.0.20715.0.nupkg
vendored
Normal file
BIN
packages/Microsoft.AspNet.Razor.2.0.20715.0/Microsoft.AspNet.Razor.2.0.20715.0.nupkg
vendored
Normal file
Binary file not shown.
BIN
packages/Microsoft.AspNet.Razor.2.0.20715.0/lib/net40/System.Web.Razor.dll
vendored
Normal file
BIN
packages/Microsoft.AspNet.Razor.2.0.20715.0/lib/net40/System.Web.Razor.dll
vendored
Normal file
Binary file not shown.
4359
packages/Microsoft.AspNet.Razor.2.0.20715.0/lib/net40/System.Web.Razor.xml
vendored
Normal file
4359
packages/Microsoft.AspNet.Razor.2.0.20715.0/lib/net40/System.Web.Razor.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Microsoft.AspNet.Web.Optimization.1.0.0/Microsoft.AspNet.Web.Optimization.1.0.0.nupkg
vendored
Normal file
BIN
packages/Microsoft.AspNet.Web.Optimization.1.0.0/Microsoft.AspNet.Web.Optimization.1.0.0.nupkg
vendored
Normal file
Binary file not shown.
BIN
packages/Microsoft.AspNet.Web.Optimization.1.0.0/lib/net40/System.Web.Optimization.dll
vendored
Normal file
BIN
packages/Microsoft.AspNet.Web.Optimization.1.0.0/lib/net40/System.Web.Optimization.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Microsoft.AspNet.WebApi.4.0.20710.0/Microsoft.AspNet.WebApi.4.0.20710.0.nupkg
vendored
Normal file
BIN
packages/Microsoft.AspNet.WebApi.4.0.20710.0/Microsoft.AspNet.WebApi.4.0.20710.0.nupkg
vendored
Normal file
Binary file not shown.
BIN
packages/Microsoft.AspNet.WebApi.Client.4.0.20710.0/Microsoft.AspNet.WebApi.Client.4.0.20710.0.nupkg
vendored
Normal file
BIN
packages/Microsoft.AspNet.WebApi.Client.4.0.20710.0/Microsoft.AspNet.WebApi.Client.4.0.20710.0.nupkg
vendored
Normal file
Binary file not shown.
BIN
packages/Microsoft.AspNet.WebApi.Client.4.0.20710.0/lib/net40/System.Net.Http.Formatting.dll
vendored
Normal file
BIN
packages/Microsoft.AspNet.WebApi.Client.4.0.20710.0/lib/net40/System.Net.Http.Formatting.dll
vendored
Normal file
Binary file not shown.
1489
packages/Microsoft.AspNet.WebApi.Client.4.0.20710.0/lib/net40/System.Net.Http.Formatting.xml
vendored
Normal file
1489
packages/Microsoft.AspNet.WebApi.Client.4.0.20710.0/lib/net40/System.Net.Http.Formatting.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Microsoft.AspNet.WebApi.Core.4.0.20710.0/Microsoft.AspNet.WebApi.Core.4.0.20710.0.nupkg
vendored
Normal file
BIN
packages/Microsoft.AspNet.WebApi.Core.4.0.20710.0/Microsoft.AspNet.WebApi.Core.4.0.20710.0.nupkg
vendored
Normal file
Binary file not shown.
13
packages/Microsoft.AspNet.WebApi.Core.4.0.20710.0/content/web.config.transform
vendored
Normal file
13
packages/Microsoft.AspNet.WebApi.Core.4.0.20710.0/content/web.config.transform
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
|
||||
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
|
||||
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
|
||||
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
|
||||
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
BIN
packages/Microsoft.AspNet.WebApi.Core.4.0.20710.0/lib/net40/System.Web.Http.dll
vendored
Normal file
BIN
packages/Microsoft.AspNet.WebApi.Core.4.0.20710.0/lib/net40/System.Web.Http.dll
vendored
Normal file
Binary file not shown.
4679
packages/Microsoft.AspNet.WebApi.Core.4.0.20710.0/lib/net40/System.Web.Http.xml
vendored
Normal file
4679
packages/Microsoft.AspNet.WebApi.Core.4.0.20710.0/lib/net40/System.Web.Http.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
BIN
packages/Microsoft.AspNet.WebApi.WebHost.4.0.20710.0/lib/net40/System.Web.Http.WebHost.dll
vendored
Normal file
BIN
packages/Microsoft.AspNet.WebApi.WebHost.4.0.20710.0/lib/net40/System.Web.Http.WebHost.dll
vendored
Normal file
Binary file not shown.
136
packages/Microsoft.AspNet.WebApi.WebHost.4.0.20710.0/lib/net40/System.Web.Http.WebHost.xml
vendored
Normal file
136
packages/Microsoft.AspNet.WebApi.WebHost.4.0.20710.0/lib/net40/System.Web.Http.WebHost.xml
vendored
Normal file
@@ -0,0 +1,136 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>System.Web.Http.WebHost</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Web.Http.GlobalConfiguration">
|
||||
<summary> Provides a global <see cref="T:System.Web.Http.HttpConfiguration" /> for ASP.NET applications. </summary>
|
||||
</member>
|
||||
<member name="P:System.Web.Http.GlobalConfiguration.Configuration"></member>
|
||||
<member name="P:System.Web.Http.GlobalConfiguration.DefaultHandler">
|
||||
<summary> Gets the default message handler that will be called for all requests. </summary>
|
||||
</member>
|
||||
<member name="T:System.Web.Http.RouteCollectionExtensions">
|
||||
<summary> Extension methods for <see cref="T:System.Web.Routing.RouteCollection" /></summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.RouteCollectionExtensions.MapHttpRoute(System.Web.Routing.RouteCollection,System.String,System.String)">
|
||||
<summary>Maps the specified route template.</summary>
|
||||
<returns>A reference to the mapped route.</returns>
|
||||
<param name="routes">A collection of routes for the application.</param>
|
||||
<param name="name">The name of the route to map.</param>
|
||||
<param name="routeTemplate">The route template for the route.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.RouteCollectionExtensions.MapHttpRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Object)">
|
||||
<summary>Maps the specified route template and sets default route.</summary>
|
||||
<returns>A reference to the mapped route.</returns>
|
||||
<param name="routes">A collection of routes for the application.</param>
|
||||
<param name="name">The name of the route to map.</param>
|
||||
<param name="routeTemplate">The route template for the route.</param>
|
||||
<param name="defaults">An object that contains default route values.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.RouteCollectionExtensions.MapHttpRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Object,System.Object)">
|
||||
<summary>Maps the specified route template and sets default route values and constraints.</summary>
|
||||
<returns>A reference to the mapped route.</returns>
|
||||
<param name="routes">A collection of routes for the application.</param>
|
||||
<param name="name">The name of the route to map.</param>
|
||||
<param name="routeTemplate">The route template for the route.</param>
|
||||
<param name="defaults">An object that contains default route values.</param>
|
||||
<param name="constraints">A set of expressions that specify values for routeTemplate.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.RouteCollectionExtensions.MapHttpRoute(System.Web.Routing.RouteCollection,System.String,System.String,System.Object,System.Object,System.Net.Http.HttpMessageHandler)">
|
||||
<summary>Maps the specified route template and sets default route values, constraints, and end-point message handler.</summary>
|
||||
<returns>A reference to the mapped route.</returns>
|
||||
<param name="routes">A collection of routes for the application.</param>
|
||||
<param name="name">The name of the route to map.</param>
|
||||
<param name="routeTemplate">The route template for the route.</param>
|
||||
<param name="defaults">An object that contains default route values.</param>
|
||||
<param name="constraints">A set of expressions that specify values for routeTemplate.</param>
|
||||
<param name="handler">The handler to which the request will be dispatched.</param>
|
||||
</member>
|
||||
<member name="T:System.Web.Http.WebHost.HttpControllerHandler">
|
||||
<summary> A <see cref="T:System.Web.IHttpAsyncHandler" /> that passes ASP.NET requests into the <see cref="T:System.Web.Http.HttpServer" /> pipeline and write the result back. </summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.HttpControllerHandler.#ctor(System.Web.Routing.RouteData)">
|
||||
<summary> Initializes a new instance of the <see cref="T:System.Web.Http.WebHost.HttpControllerHandler" /> class. </summary>
|
||||
<param name="routeData">The route data.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.HttpControllerHandler.BeginProcessRequest(System.Web.HttpContextBase,System.AsyncCallback,System.Object)">
|
||||
<summary> Begins the process request. </summary>
|
||||
<returns>An <see cref="T:System.IAsyncResult" /> that contains information about the status of the process. </returns>
|
||||
<param name="httpContextBase">The HTTP context base.</param>
|
||||
<param name="callback">The callback.</param>
|
||||
<param name="state">The state.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.HttpControllerHandler.EndProcessRequest(System.IAsyncResult)">
|
||||
<summary> Provides an asynchronous process End method when the process ends. </summary>
|
||||
<param name="result">An <see cref="T:System.IAsyncResult" /> that contains information about the status of the process.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Http.WebHost.HttpControllerHandler.IsReusable">
|
||||
<summary> Gets a value indicating whether another request can use the <see cref="T:System.Web.IHttpHandler" /> instance. </summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.HttpControllerHandler.ProcessRequest(System.Web.HttpContextBase)">
|
||||
<summary> Processes the request. </summary>
|
||||
<param name="httpContextBase">The HTTP context base.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.HttpControllerHandler.System#Web#IHttpAsyncHandler#BeginProcessRequest(System.Web.HttpContext,System.AsyncCallback,System.Object)">
|
||||
<summary> Begins processing the request. </summary>
|
||||
<returns>An <see cref="T:System.IAsyncResult" /> that contains information about the status of the process. </returns>
|
||||
<param name="httpContext">The HTTP context.</param>
|
||||
<param name="callback">The callback.</param>
|
||||
<param name="state">The state.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.HttpControllerHandler.System#Web#IHttpAsyncHandler#EndProcessRequest(System.IAsyncResult)">
|
||||
<summary> Provides an asynchronous process End method when the process ends. </summary>
|
||||
<param name="result">An <see cref="T:System.IAsyncResult" /> that contains information about the status of the process.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Http.WebHost.HttpControllerHandler.System#Web#IHttpHandler#IsReusable">
|
||||
<summary> Gets a value indicating whether another request can use the <see cref="T:System.Web.IHttpHandler" /> instance. </summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.HttpControllerHandler.System#Web#IHttpHandler#ProcessRequest(System.Web.HttpContext)">
|
||||
<summary> Processes the request. </summary>
|
||||
<param name="httpContext">The HTTP context base.</param>
|
||||
</member>
|
||||
<member name="T:System.Web.Http.WebHost.HttpControllerRouteHandler">
|
||||
<summary> A <see cref="T:System.Web.Routing.IRouteHandler" /> that returns instances of <see cref="T:System.Web.Http.WebHost.HttpControllerHandler" /> that can pass requests to a given <see cref="T:System.Web.Http.HttpServer" /> instance. </summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.HttpControllerRouteHandler.#ctor">
|
||||
<summary> Initializes a new instance of the <see cref="T:System.Web.Http.WebHost.HttpControllerRouteHandler" /> class. </summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.HttpControllerRouteHandler.GetHttpHandler(System.Web.Routing.RequestContext)">
|
||||
<summary> Provides the object that processes the request. </summary>
|
||||
<returns> An object that processes the request. </returns>
|
||||
<param name="requestContext">An object that encapsulates information about the request.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Http.WebHost.HttpControllerRouteHandler.Instance">
|
||||
<summary> Gets the singleton <see cref="T:System.Web.Http.WebHost.HttpControllerRouteHandler" /> instance. </summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.HttpControllerRouteHandler.System#Web#Routing#IRouteHandler#GetHttpHandler(System.Web.Routing.RequestContext)">
|
||||
<summary> Provides the object that processes the request. </summary>
|
||||
<returns> An object that processes the request. </returns>
|
||||
<param name="requestContext">An object that encapsulates information about the request.</param>
|
||||
</member>
|
||||
<member name="T:System.Web.Http.WebHost.PreApplicationStartCode">
|
||||
<summary>Provides a registration point for the simple membership pre-application start code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.PreApplicationStartCode.Start">
|
||||
<summary>Registers the simple membership pre-application start code.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.Http.WebHost.WebHostBufferPolicySelector">
|
||||
<summary>Represents the web host buffer policy selector.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.WebHostBufferPolicySelector.#ctor">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.Http.WebHost.WebHostBufferPolicySelector" /> class.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.WebHostBufferPolicySelector.UseBufferedInputStream(System.Object)">
|
||||
<summary>Gets a value that indicates whether the host should buffer the entity body of the HTTP request.</summary>
|
||||
<returns>true if buffering should be used; otherwise a streamed request should be used.</returns>
|
||||
<param name="hostContext">The host context.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Http.WebHost.WebHostBufferPolicySelector.UseBufferedOutputStream(System.Net.Http.HttpResponseMessage)">
|
||||
<summary>Uses a buffered output stream for the web host.</summary>
|
||||
<returns>A buffered output stream.</returns>
|
||||
<param name="response">The response.</param>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
BIN
packages/Microsoft.AspNet.WebPages.2.0.20710.0/Microsoft.AspNet.WebPages.2.0.20710.0.nupkg
vendored
Normal file
BIN
packages/Microsoft.AspNet.WebPages.2.0.20710.0/Microsoft.AspNet.WebPages.2.0.20710.0.nupkg
vendored
Normal file
Binary file not shown.
BIN
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.Helpers.dll
vendored
Normal file
BIN
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.Helpers.dll
vendored
Normal file
Binary file not shown.
833
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.Helpers.xml
vendored
Normal file
833
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.Helpers.xml
vendored
Normal file
@@ -0,0 +1,833 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>System.Web.Helpers</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Web.Helpers.Chart">
|
||||
<summary>Displays data in the form of a graphical chart.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.#ctor(System.Int32,System.Int32,System.String,System.String)">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.Helpers.Chart" /> class.</summary>
|
||||
<param name="width">The width, in pixels, of the complete chart image.</param>
|
||||
<param name="height">The height, in pixels, of the complete chart image.</param>
|
||||
<param name="theme">(Optional) The template (theme) to apply to the chart.</param>
|
||||
<param name="themePath">(Optional) The template (theme) path and file name to apply to the chart.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.AddLegend(System.String,System.String)">
|
||||
<summary>Adds a legend to the chart.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="title">The text of the legend title.</param>
|
||||
<param name="name">The unique name of the legend.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.AddSeries(System.String,System.String,System.String,System.String,System.String,System.Int32,System.Collections.IEnumerable,System.String,System.Collections.IEnumerable,System.String)">
|
||||
<summary>Provides data points and series attributes for the chart.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="name">The unique name of the series.</param>
|
||||
<param name="chartType">The chart type of a series.</param>
|
||||
<param name="chartArea">The name of the chart area that is used to plot the data series.</param>
|
||||
<param name="axisLabel">The axis label text for the series.</param>
|
||||
<param name="legend">The name of the series that is associated with the legend.</param>
|
||||
<param name="markerStep">The granularity of data point markers.</param>
|
||||
<param name="xValue">The values to plot along the x-axis.</param>
|
||||
<param name="xField">The name of the field for x-values.</param>
|
||||
<param name="yValues">The values to plot along the y-axis.</param>
|
||||
<param name="yFields">A comma-separated list of name or names of the field or fields for y-values.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.AddTitle(System.String,System.String)">
|
||||
<summary>Adds a title to the chart.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="text">The title text.</param>
|
||||
<param name="name">The unique name of the title.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.DataBindCrossTable(System.Collections.IEnumerable,System.String,System.String,System.String,System.String,System.String)">
|
||||
<summary>Binds a chart to a data table, where one series is created for each unique value in a column.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="dataSource">The chart data source.</param>
|
||||
<param name="groupByField">The name of the column that is used to group data into the series.</param>
|
||||
<param name="xField">The name of the column for x-values.</param>
|
||||
<param name="yFields">A comma-separated list of names of the columns for y-values.</param>
|
||||
<param name="otherFields">Other data point properties that can be bound.</param>
|
||||
<param name="pointSortOrder">The order in which the series will be sorted. The default is "Ascending".</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.DataBindTable(System.Collections.IEnumerable,System.String)">
|
||||
<summary>Creates and binds series data to the specified data table, and optionally populates multiple x-values.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="dataSource">The chart data source. This can be can be any <see cref="T:System.Collections.IEnumerable" /> object.</param>
|
||||
<param name="xField">The name of the table column used for the series x-values.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.Chart.FileName">
|
||||
<summary>Gets or sets the name of the file that contains the chart image.</summary>
|
||||
<returns>The name of the file.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.GetBytes(System.String)">
|
||||
<summary>Returns a chart image as a byte array.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="format">The image format. The default is "jpeg".</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.GetFromCache(System.String)">
|
||||
<summary>Retrieves the specified chart from the cache.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="key">The ID of the cache item that contains the chart to retrieve. The key is set when you call the <see cref="M:System.Web.Helpers.Chart.SaveToCache(System.String,System.Int32,System.Boolean)" /> method.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.Chart.Height">
|
||||
<summary>Gets or sets the height, in pixels, of the chart image.</summary>
|
||||
<returns>The chart height.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.Save(System.String,System.String)">
|
||||
<summary>Saves a chart image to the specified file.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="path">The location and name of the image file.</param>
|
||||
<param name="format">The image file format, such as "png" or "jpeg".</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.SaveToCache(System.String,System.Int32,System.Boolean)">
|
||||
<summary>Saves a chart in the system cache.</summary>
|
||||
<returns>The ID of the cache item that contains the chart.</returns>
|
||||
<param name="key">The ID of the chart in the cache.</param>
|
||||
<param name="minutesToCache">The number of minutes to keep the chart image in the cache. The default is 20.</param>
|
||||
<param name="slidingExpiration">true to indicate that the chart cache item's expiration is reset each time the item is accessed, or false to indicate that the expiration is based on an absolute interval since the time that the item was added to the cache. The default is true.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.SaveXml(System.String)">
|
||||
<summary>Saves a chart as an XML file.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="path">The path and name of the XML file.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.SetXAxis(System.String,System.Double,System.Double)">
|
||||
<summary>Sets values for the horizontal axis.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="title">The title of the x-axis.</param>
|
||||
<param name="min">The minimum value for the x-axis.</param>
|
||||
<param name="max">The maximum value for the x-axis.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.SetYAxis(System.String,System.Double,System.Double)">
|
||||
<summary>Sets values for the vertical axis.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="title">The title of the y-axis.</param>
|
||||
<param name="min">The minimum value for the y-axis.</param>
|
||||
<param name="max">The maximum value for the y-axis.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.ToWebImage(System.String)">
|
||||
<summary>Creates a <see cref="T:System.Web.Helpers.WebImage" /> object based on the current <see cref="T:System.Web.Helpers.Chart" /> object.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="format">The format of the image to save the <see cref="T:System.Web.Helpers.WebImage" /> object as. The default is "jpeg". The <paramref name="format" /> parameter is not case sensitive.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.Chart.Width">
|
||||
<summary>Gets or set the width, in pixels, of the chart image.</summary>
|
||||
<returns>The chart width.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.Write(System.String)">
|
||||
<summary>Renders the output of the <see cref="T:System.Web.Helpers.Chart" /> object as an image.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="format">The format of the image. The default is "jpeg".</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Chart.WriteFromCache(System.String,System.String)">
|
||||
<summary>Renders the output of a <see cref="T:System.Web.Helpers.Chart" /> object that has been cached as an image.</summary>
|
||||
<returns>The chart.</returns>
|
||||
<param name="key">The ID of the chart in the cache.</param>
|
||||
<param name="format">The format of the image. The default is "jpeg".</param>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.ChartTheme">
|
||||
<summary>Specifies visual themes for a <see cref="T:System.Web.Helpers.Chart" /> object.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.ChartTheme.Blue">
|
||||
<summary>A theme for 2D charting that features a visual container with a blue gradient, rounded edges, drop-shadowing, and high-contrast gridlines.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.ChartTheme.Green">
|
||||
<summary>A theme for 2D charting that features a visual container with a green gradient, rounded edges, drop-shadowing, and low-contrast gridlines.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.ChartTheme.Vanilla">
|
||||
<summary>A theme for 2D charting that features no visual container and no gridlines.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.ChartTheme.Vanilla3D">
|
||||
<summary>A theme for 3D charting that features no visual container, limited labeling and, sparse, high-contrast gridlines.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.ChartTheme.Yellow">
|
||||
<summary>A theme for 2D charting that features a visual container that has a yellow gradient, rounded edges, drop-shadowing, and high-contrast gridlines.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.Crypto">
|
||||
<summary>Provides methods to generate hash values and encrypt passwords or other sensitive data.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Crypto.GenerateSalt(System.Int32)">
|
||||
<summary>Generates a cryptographically strong sequence of random byte values.</summary>
|
||||
<returns>The generated salt value as a base-64-encoded string.</returns>
|
||||
<param name="byteLength">The number of cryptographically random bytes to generate.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Crypto.Hash(System.Byte[],System.String)">
|
||||
<summary>Returns a hash value for the specified byte array.</summary>
|
||||
<returns>The hash value for <paramref name="input" /> as a string of hexadecimal characters.</returns>
|
||||
<param name="input">The data to provide a hash value for.</param>
|
||||
<param name="algorithm">The algorithm that is used to generate the hash value. The default is "sha256".</param>
|
||||
<exception cref="System.ArgumentNullException">
|
||||
<paramref name="input" /> is null.</exception>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Crypto.Hash(System.String,System.String)">
|
||||
<summary>Returns a hash value for the specified string.</summary>
|
||||
<returns>The hash value for <paramref name="input" /> as a string of hexadecimal characters.</returns>
|
||||
<param name="input">The data to provide a hash value for.</param>
|
||||
<param name="algorithm">The algorithm that is used to generate the hash value. The default is "sha256".</param>
|
||||
<exception cref="System.ArgumentNullException">
|
||||
<paramref name="input" /> is null.</exception>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Crypto.HashPassword(System.String)">
|
||||
<summary>Returns an RFC 2898 hash value for the specified password.</summary>
|
||||
<returns>The hash value for <paramref name="password" /> as a base-64-encoded string.</returns>
|
||||
<param name="password">The password to generate a hash value for.</param>
|
||||
<exception cref="System.ArgumentNullException">
|
||||
<paramref name="password" /> is null.</exception>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Crypto.SHA1(System.String)">
|
||||
<summary>Returns a SHA-1 hash value for the specified string.</summary>
|
||||
<returns>The SHA-1 hash value for <paramref name="input" /> as a string of hexadecimal characters.</returns>
|
||||
<param name="input">The data to provide a hash value for.</param>
|
||||
<exception cref="System.ArgumentNullException">
|
||||
<paramref name="input" /> is null.</exception>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Crypto.SHA256(System.String)">
|
||||
<summary>Returns a SHA-256 hash value for the specified string.</summary>
|
||||
<returns>The SHA-256 hash value for <paramref name="input" /> as a string of hexadecimal characters.</returns>
|
||||
<param name="input">The data to provide a hash value for.</param>
|
||||
<exception cref="System.ArgumentNullException">
|
||||
<paramref name="input" /> is null.</exception>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Crypto.VerifyHashedPassword(System.String,System.String)">
|
||||
<summary>Determines whether the specified RFC 2898 hash and password are a cryptographic match.</summary>
|
||||
<returns>true if the hash value is a cryptographic match for the password; otherwise, false.</returns>
|
||||
<param name="hashedPassword">The previously-computed RFC 2898 hash value as a base-64-encoded string.</param>
|
||||
<param name="password">The plaintext password to cryptographically compare with <paramref name="hashedPassword" />.</param>
|
||||
<exception cref="System.ArgumentNullException">
|
||||
<paramref name="hashedPassword" /> or <paramref name="password" /> is null.</exception>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.DynamicJsonArray">
|
||||
<summary>Represents a series of values as a JavaScript-like array by using the dynamic capabilities of the Dynamic Language Runtime (DLR).</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonArray.#ctor(System.Object[])">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.Helpers.DynamicJsonArray" /> class using the specified array element values.</summary>
|
||||
<param name="arrayValues">An array of objects that contains the values to add to the <see cref="T:System.Web.Helpers.DynamicJsonArray" /> instance.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonArray.GetEnumerator">
|
||||
<summary>Returns an enumerator that can be used to iterate through the elements of the <see cref="T:System.Web.Helpers.DynamicJsonArray" /> instance.</summary>
|
||||
<returns>An enumerator that can be used to iterate through the elements of the JSON array.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.DynamicJsonArray.Item(System.Int32)">
|
||||
<summary>Returns the value at the specified index in the <see cref="T:System.Web.Helpers.DynamicJsonArray" /> instance.</summary>
|
||||
<returns>The value at the specified index.</returns>
|
||||
<param name="index">The zero-based index of the value in the JSON array to return.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.DynamicJsonArray.Length">
|
||||
<summary>Returns the number of elements in the <see cref="T:System.Web.Helpers.DynamicJsonArray" /> instance.</summary>
|
||||
<returns>The number of elements in the JSON array.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonArray.op_Implicit(System.Web.Helpers.DynamicJsonArray)~System.Object[]">
|
||||
<summary>Converts a <see cref="T:System.Web.Helpers.DynamicJsonArray" /> instance to an array of objects.</summary>
|
||||
<returns>The array of objects that represents the JSON array.</returns>
|
||||
<param name="obj">The JSON array to convert.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonArray.op_Implicit(System.Web.Helpers.DynamicJsonArray)~System.Array">
|
||||
<summary>Converts a <see cref="T:System.Web.Helpers.DynamicJsonArray" /> instance to an array of objects.</summary>
|
||||
<returns>The array of objects that represents the JSON array.</returns>
|
||||
<param name="obj">The JSON array to convert.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonArray.System#Collections#Generic#IEnumerable{T}#GetEnumerator">
|
||||
<summary>Returns an enumerator that can be used to iterate through a collection.</summary>
|
||||
<returns>An enumerator that can be used to iterate through the collection.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonArray.TryConvert(System.Dynamic.ConvertBinder,System.Object@)">
|
||||
<summary>Converts the <see cref="T:System.Web.Helpers.DynamicJsonArray" /> instance to a compatible type.</summary>
|
||||
<returns>true if the conversion was successful; otherwise, false.</returns>
|
||||
<param name="binder">Provides information about the conversion operation.</param>
|
||||
<param name="result">When this method returns, contains the result of the type conversion operation. This parameter is passed uninitialized.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonArray.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
|
||||
<summary>Tests the <see cref="T:System.Web.Helpers.DynamicJsonArray" /> instance for dynamic members (which are not supported) in a way that does not cause an exception to be thrown.</summary>
|
||||
<returns>true in all cases.</returns>
|
||||
<param name="binder">Provides information about the get operation.</param>
|
||||
<param name="result">When this method returns, contains null. This parameter is passed uninitialized.</param>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.DynamicJsonObject">
|
||||
<summary>Represents a collection of values as a JavaScript-like object by using the capabilities of the Dynamic Language Runtime.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonObject.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.Helpers.DynamicJsonObject" /> class using the specified field values.</summary>
|
||||
<param name="values">A dictionary of property names and values to add to the <see cref="T:System.Web.Helpers.DynamicJsonObject" /> instance as dynamic members.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonObject.GetDynamicMemberNames">
|
||||
<summary>Returns a list that contains the name of all dynamic members (JSON fields) of the <see cref="T:System.Web.Helpers.DynamicJsonObject" /> instance.</summary>
|
||||
<returns>A list that contains the name of every dynamic member (JSON field).</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonObject.TryConvert(System.Dynamic.ConvertBinder,System.Object@)">
|
||||
<summary>Converts the <see cref="T:System.Web.Helpers.DynamicJsonObject" /> instance to a compatible type.</summary>
|
||||
<returns>true in all cases.</returns>
|
||||
<param name="binder">Provides information about the conversion operation.</param>
|
||||
<param name="result">When this method returns, contains the result of the type conversion operation. This parameter is passed uninitialized.</param>
|
||||
<exception cref="T:System.InvalidOperationException">The <see cref="T:System.Web.Helpers.DynamicJsonObject" /> instance could not be converted to the specified type.</exception>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonObject.TryGetIndex(System.Dynamic.GetIndexBinder,System.Object[],System.Object@)">
|
||||
<summary>Gets the value of a <see cref="T:System.Web.Helpers.DynamicJsonObject" /> field using the specified index.</summary>
|
||||
<returns>true in all cases.</returns>
|
||||
<param name="binder">Provides information about the indexed get operation.</param>
|
||||
<param name="indexes">An array that contains a single object that indexes the field by name. The object must be convertible to a string that specifies the name of the JSON field to return. If multiple indexes are specified, <paramref name="result" /> contains null when this method returns.</param>
|
||||
<param name="result">When this method returns, contains the value of the indexed field, or null if the get operation was unsuccessful. This parameter is passed uninitialized.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonObject.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
|
||||
<summary>Gets the value of a <see cref="T:System.Web.Helpers.DynamicJsonObject" /> field using the specified name.</summary>
|
||||
<returns>true in all cases.</returns>
|
||||
<param name="binder">Provides information about the get operation.</param>
|
||||
<param name="result">When this method returns, contains the value of the field, or null if the get operation was unsuccessful. This parameter is passed uninitialized.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonObject.TrySetIndex(System.Dynamic.SetIndexBinder,System.Object[],System.Object)">
|
||||
<summary>Sets the value of a <see cref="T:System.Web.Helpers.DynamicJsonObject" /> field using the specified index.</summary>
|
||||
<returns>true in all cases.</returns>
|
||||
<param name="binder">Provides information about the indexed set operation.</param>
|
||||
<param name="indexes">An array that contains a single object that indexes the field by name. The object must be convertible to a string that specifies the name of the JSON field to return. If multiple indexes are specified, no field is changed or added.</param>
|
||||
<param name="value">The value to set the field to.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.DynamicJsonObject.TrySetMember(System.Dynamic.SetMemberBinder,System.Object)">
|
||||
<summary>Sets the value of a <see cref="T:System.Web.Helpers.DynamicJsonObject" /> field using the specified name.</summary>
|
||||
<returns>true in all cases.</returns>
|
||||
<param name="binder">Provides information about the set operation.</param>
|
||||
<param name="value">The value to set the field to.</param>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.Json">
|
||||
<summary>Provides methods for working with data in JavaScript Object Notation (JSON) format.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Json.Decode``1(System.String)">
|
||||
<summary>Converts data in JavaScript Object Notation (JSON) format into the specified strongly typed data list.</summary>
|
||||
<returns>The JSON-encoded data converted to a strongly typed list.</returns>
|
||||
<param name="value">The JSON-encoded string to convert.</param>
|
||||
<typeparam name="T">The type of the strongly typed list to convert JSON data into.</typeparam>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Json.Decode(System.String)">
|
||||
<summary>Converts data in JavaScript Object Notation (JSON) format into a data object.</summary>
|
||||
<returns>The JSON-encoded data converted to a data object.</returns>
|
||||
<param name="value">The JSON-encoded string to convert.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Json.Decode(System.String,System.Type)">
|
||||
<summary>Converts data in JavaScript Object Notation (JSON) format into a data object of a specified type.</summary>
|
||||
<returns>The JSON-encoded data converted to the specified type.</returns>
|
||||
<param name="value">The JSON-encoded string to convert.</param>
|
||||
<param name="targetType">The type that the <paramref name="value" /> data should be converted to.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Json.Encode(System.Object)">
|
||||
<summary>Converts a data object to a string that is in the JavaScript Object Notation (JSON) format.</summary>
|
||||
<returns>Returns a string of data converted to the JSON format.</returns>
|
||||
<param name="value">The data object to convert.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.Json.Write(System.Object,System.IO.TextWriter)">
|
||||
<summary>Converts a data object to a string in JavaScript Object Notation (JSON) format and adds the string to the specified <see cref="T:System.IO.TextWriter" /> object.</summary>
|
||||
<param name="value">The data object to convert.</param>
|
||||
<param name="writer">The object that contains the converted JSON data.</param>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.ObjectInfo">
|
||||
<summary>Renders the property names and values of the specified object and of any subobjects that it references.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.ObjectInfo.Print(System.Object,System.Int32,System.Int32)">
|
||||
<summary>Renders the property names and values of the specified object and of any subobjects.</summary>
|
||||
<returns>For a simple variable, returns the type and the value. For an object that contains multiple items, returns the property name or key and the value for each property.</returns>
|
||||
<param name="value">The object to render information for.</param>
|
||||
<param name="depth">Optional. Specifies the depth of nested subobjects to render information for. The default is 10.</param>
|
||||
<param name="enumerationLength">Optional. Specifies the maximum number of characters that the method displays for object values. The default is 1000.</param>
|
||||
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||
<paramref name="depth" /> is less than zero.</exception>
|
||||
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||
<paramref name="enumerationLength" /> is less than or equal to zero.</exception>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.ServerInfo">
|
||||
<summary>Displays information about the web server environment that hosts the current web page.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.ServerInfo.GetHtml">
|
||||
<summary>Displays information about the web server environment.</summary>
|
||||
<returns>A string of name-value pairs that contains information about the web server. </returns>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.SortDirection">
|
||||
<summary>Specifies the direction in which to sort a list of items.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.SortDirection.Ascending">
|
||||
<summary>Sort from smallest to largest —for example, from 1 to 10.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.SortDirection.Descending">
|
||||
<summary>Sort from largest to smallest — for example, from 10 to 1.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.WebCache">
|
||||
<summary>Provides a cache to store frequently accessed data.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebCache.Get(System.String)">
|
||||
<summary>Retrieves the specified item from the <see cref="T:System.Web.Helpers.WebCache" /> object.</summary>
|
||||
<returns>The item retrieved from the cache, or null if the item is not found.</returns>
|
||||
<param name="key">The identifier for the cache item to retrieve.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebCache.Remove(System.String)">
|
||||
<summary>Removes the specified item from the <see cref="T:System.Web.Helpers.WebCache" /> object.</summary>
|
||||
<returns>The item removed from the <see cref="T:System.Web.Helpers.WebCache" /> object. If the item is not found, returns null.</returns>
|
||||
<param name="key">The identifier for the cache item to remove.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebCache.Set(System.String,System.Object,System.Int32,System.Boolean)">
|
||||
<summary>Inserts an item into the <see cref="T:System.Web.Helpers.WebCache" /> object.</summary>
|
||||
<param name="key">The identifier for the cache item.</param>
|
||||
<param name="value">The data to insert into the cache.</param>
|
||||
<param name="minutesToCache">Optional. The number of minutes to keep an item in the cache. The default is 20.</param>
|
||||
<param name="slidingExpiration">Optional. true to indicate that the cache item expiration is reset each time the item is accessed, or false to indicate that the expiration is based the absolute time since the item was added to the cache. The default is true. In that case, if you also use the default value for the <paramref name="minutesToCache" /> parameter, a cached item expires 20 minutes after it was last accessed.</param>
|
||||
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="minutesToCache" /> is less than or equal to zero.</exception>
|
||||
<exception cref="T:System.ArgumentOutOfRangeException">Sliding expiration is enabled and the value of <paramref name="minutesToCache" /> is greater than a year.</exception>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.WebGrid">
|
||||
<summary>Displays data on a web page using an HTML table element.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGrid.#ctor(System.Collections.Generic.IEnumerable{System.Object},System.Collections.Generic.IEnumerable{System.String},System.String,System.Int32,System.Boolean,System.Boolean,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.Helpers.WebGrid" /> class.</summary>
|
||||
<param name="source">The data to display.</param>
|
||||
<param name="columnNames">A collection that contains the names of the data columns to display. By default, this value is auto-populated according to the values in the <paramref name="source" /> parameter.</param>
|
||||
<param name="defaultSort">The name of the data column that is used to sort the grid by default.</param>
|
||||
<param name="rowsPerPage">The number of rows that are displayed on each page of the grid when paging is enabled. The default is 10.</param>
|
||||
<param name="canPage">true to specify that paging is enabled for the <see cref="T:System.Web.Helpers.WebGrid" /> instance; otherwise false. The default is true. </param>
|
||||
<param name="canSort">true to specify that sorting is enabled for the <see cref="T:System.Web.Helpers.WebGrid" /> instance; otherwise, false. The default is true.</param>
|
||||
<param name="ajaxUpdateContainerId">The value of the HTML id attribute that is used to mark the HTML element that gets dynamic Ajax updates that are associated with the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</param>
|
||||
<param name="ajaxUpdateCallback">The name of the JavaScript function that is called after the HTML element specified by the <see cref="P:System.Web.Helpers.WebGrid.AjaxUpdateContainerId" /> property has been updated. If the name of a function is not provided, no function will be called. If the specified function does not exist, a JavaScript error will occur if it is invoked.</param>
|
||||
<param name="fieldNamePrefix">The prefix that is applied to all query-string fields that are associated with the <see cref="T:System.Web.Helpers.WebGrid" /> instance. This value is used in order to support multiple <see cref="T:System.Web.Helpers.WebGrid" /> instances on the same web page.</param>
|
||||
<param name="pageFieldName">The name of the query-string field that is used to specify the current page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</param>
|
||||
<param name="selectionFieldName">The name of the query-string field that is used to specify the currently selected row of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</param>
|
||||
<param name="sortFieldName">The name of the query-string field that is used to specify the name of the data column that the <see cref="T:System.Web.Helpers.WebGrid" /> instance is sorted by.</param>
|
||||
<param name="sortDirectionFieldName">The name of the query-string field that is used to specify the direction in which the <see cref="T:System.Web.Helpers.WebGrid" /> instance is sorted.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.AjaxUpdateCallback">
|
||||
<summary>Gets the name of the JavaScript function to call after the HTML element that is associated with the <see cref="T:System.Web.Helpers.WebGrid" /> instance has been updated in response to an Ajax update request.</summary>
|
||||
<returns>The name of the function.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.AjaxUpdateContainerId">
|
||||
<summary>Gets the value of the HTML id attribute that marks an HTML element on the web page that gets dynamic Ajax updates that are associated with the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The value of the id attribute.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGrid.Bind(System.Collections.Generic.IEnumerable{System.Object},System.Collections.Generic.IEnumerable{System.String},System.Boolean,System.Int32)">
|
||||
<summary>Binds the specified data to the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The bound and populated <see cref="T:System.Web.Helpers.WebGrid" /> instance.</returns>
|
||||
<param name="source">The data to display.</param>
|
||||
<param name="columnNames">A collection that contains the names of the data columns to bind.</param>
|
||||
<param name="autoSortAndPage">true to enable sorting and paging of the <see cref="T:System.Web.Helpers.WebGrid" /> instance; otherwise, false.</param>
|
||||
<param name="rowCount">The number of rows to display on each page of the grid.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.CanSort">
|
||||
<summary>Gets a value that indicates whether the <see cref="T:System.Web.Helpers.WebGrid" /> instance supports sorting.</summary>
|
||||
<returns>true if the instance supports sorting; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGrid.Column(System.String,System.String,System.Func`2,System.Boolean,System.Object)">
|
||||
<summary>Creates a new <see cref="T:System.Web.Helpers.WebGridColumn" /> instance.</summary>
|
||||
<returns>The new column.</returns>
|
||||
<param name="columnName">The name of the data column to associate with the <see cref="T:System.Web.Helpers.WebGridColumn" /> instance.</param>
|
||||
<param name="header">The text that is rendered in the header of the HTML table column that is associated with the <see cref="T:System.Web.Helpers.WebGridColumn" /> instance.</param>
|
||||
<param name="format">The function that is used to format the data values that are associated with the <see cref="T:System.Web.Helpers.WebGridColumn" /> instance.</param>
|
||||
<param name="style">A string that specifies the name of the CSS class that is used to style the HTML table cells that are associated with the <see cref="T:System.Web.Helpers.WebGridColumn" /> instance.</param>
|
||||
<param name="canSort">true to enable sorting in the <see cref="T:System.Web.Helpers.WebGrid" /> instance by the data values that are associated with the <see cref="T:System.Web.Helpers.WebGridColumn" /> instance; otherwise, false. The default is true.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.ColumnNames">
|
||||
<summary>Gets a collection that contains the name of each data column that is bound to the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The collection of data column names.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGrid.Columns(System.Web.Helpers.WebGridColumn[])">
|
||||
<summary>Returns an array that contains the specified <see cref="T:System.Web.Helpers.WebGridColumn" /> instances.</summary>
|
||||
<returns>An array of columns.</returns>
|
||||
<param name="columnSet">A variable number of <see cref="T:System.Web.Helpers.WebGridColumn" /> column instances.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.FieldNamePrefix">
|
||||
<summary>Gets the prefix that is applied to all query-string fields that are associated with the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The query-string field prefix of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGrid.GetContainerUpdateScript(System.String)">
|
||||
<summary>Returns a JavaScript statement that can be used to update the HTML element that is associated with the <see cref="T:System.Web.Helpers.WebGrid" /> instance on the specified web page.</summary>
|
||||
<returns>A JavaScript statement that can be used to update the HTML element in a web page that is associated with the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</returns>
|
||||
<param name="path">The URL of the web page that contains the <see cref="T:System.Web.Helpers.WebGrid" /> instance that is being updated. The URL can include query-string arguments.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGrid.GetHtml(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Boolean,System.String,System.Collections.Generic.IEnumerable{System.Web.Helpers.WebGridColumn},System.Collections.Generic.IEnumerable{System.String},System.Web.Helpers.WebGridPagerModes,System.String,System.String,System.String,System.String,System.Int32,System.Object)">
|
||||
<summary>Returns the HTML markup that is used to render the <see cref="T:System.Web.Helpers.WebGrid" /> instance and using the specified paging options.</summary>
|
||||
<returns>The HTML markup that represents the fully-populated <see cref="T:System.Web.Helpers.WebGrid" /> instance.</returns>
|
||||
<param name="tableStyle">The name of the CSS class that is used to style the whole table.</param>
|
||||
<param name="headerStyle">The name of the CSS class that is used to style the table header.</param>
|
||||
<param name="footerStyle">The name of the CSS class that is used to style the table footer.</param>
|
||||
<param name="rowStyle">The name of the CSS class that is used to style each table row.</param>
|
||||
<param name="alternatingRowStyle">The name of the CSS class that is used to style even-numbered table rows.</param>
|
||||
<param name="selectedRowStyle">The name of the CSS class that is used to style the selected table row. (Only one row can be selected at a time.)</param>
|
||||
<param name="caption">The table caption.</param>
|
||||
<param name="displayHeader">true to display the table header; otherwise, false. The default is true.</param>
|
||||
<param name="fillEmptyRows">true to insert additional rows in the last page when there are insufficient data items to fill the last page; otherwise, false. The default is false. Additional rows are populated using the text specified by the <paramref name="emptyRowCellValue" /> parameter.</param>
|
||||
<param name="emptyRowCellValue">The text that is used to populate additional rows in a page when there are insufficient data items to fill the last page. The <paramref name="fillEmptyRows" /> parameter must be set to true to display these additional rows.</param>
|
||||
<param name="columns">A collection of <see cref="T:System.Web.Helpers.WebGridColumn" /> instances that specify how each column is displayed. This includes which data column is associated with each grid column, and how to format the data values that each grid column contains.</param>
|
||||
<param name="exclusions">A collection that contains the names of the data columns to exclude when the grid auto-populates columns.</param>
|
||||
<param name="mode">A bitwise combination of the enumeration values that specify methods that are provided for moving between pages of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</param>
|
||||
<param name="firstText">The text for the HTML link element that is used to link to the first page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance. The <see cref="F:System.Web.Helpers.WebGridPagerModes.FirstLast" /> flag of the <paramref name="mode" /> parameter must be set to display this page navigation element.</param>
|
||||
<param name="previousText">The text for the HTML link element that is used to link to previous page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance. The <see cref="F:System.Web.Helpers.WebGridPagerModes.NextPrevious" /> flag of the <paramref name="mode" /> parameter must be set to display this page navigation element.</param>
|
||||
<param name="nextText">The text for the HTML link element that is used to link to the next page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance. The <see cref="F:System.Web.Helpers.WebGridPagerModes.NextPrevious" /> flag of the <paramref name="mode" /> parameter must be set to display this page navigation element.</param>
|
||||
<param name="lastText">The text for the HTML link element that is used to link to the last page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance. The <see cref="F:System.Web.Helpers.WebGridPagerModes.FirstLast" /> flag of the <paramref name="mode" /> parameter must be set to display this page navigation element.</param>
|
||||
<param name="numericLinksCount">The number of numeric page links that are provided to nearby <see cref="T:System.Web.Helpers.WebGrid" /> pages. The text of each numeric page link contains the page number. The <see cref="F:System.Web.Helpers.WebGridPagerModes.Numeric" /> flag of the <paramref name="mode" /> parameter must be set to display these page navigation elements.</param>
|
||||
<param name="htmlAttributes">An object that represents a collection of attributes (names and values) to set for the HTML table element that represents the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGrid.GetPageUrl(System.Int32)">
|
||||
<summary>Returns a URL that can be used to display the specified data page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>A URL that can be used to display the specified data page of the grid.</returns>
|
||||
<param name="pageIndex">The index of the <see cref="T:System.Web.Helpers.WebGrid" /> page to display.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGrid.GetSortUrl(System.String)">
|
||||
<summary>Returns a URL that can be used to sort the <see cref="T:System.Web.Helpers.WebGrid" /> instance by the specified column.</summary>
|
||||
<returns>A URL that can be used to sort the grid.</returns>
|
||||
<param name="column">The name of the data column to sort by.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.HasSelection">
|
||||
<summary>Gets a value that indicates whether a row in the <see cref="T:System.Web.Helpers.WebGrid" /> instance is selected.</summary>
|
||||
<returns>true if a row is currently selected; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.IsAjaxEnabled">
|
||||
<summary>Returns a value that indicates whether the <see cref="T:System.Web.Helpers.WebGrid" /> instance can use Ajax calls to refresh the display.</summary>
|
||||
<returns>true if the instance supports Ajax calls; otherwise, false..</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.PageCount">
|
||||
<summary>Gets the number of pages that the <see cref="T:System.Web.Helpers.WebGrid" /> instance contains.</summary>
|
||||
<returns>The page count.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.PageFieldName">
|
||||
<summary>Gets the full name of the query-string field that is used to specify the current page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The full name of the query string field that is used to specify the current page of the grid.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.PageIndex">
|
||||
<summary>Gets or sets the index of the current page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The index of the current page.</returns>
|
||||
<exception cref="T:System.NotSupportedException">The <see cref="P:System.Web.Helpers.WebGrid.PageIndex" /> property cannot be set because paging is not enabled.</exception>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGrid.Pager(System.Web.Helpers.WebGridPagerModes,System.String,System.String,System.String,System.String,System.Int32)">
|
||||
<summary>Returns the HTML markup that is used to provide the specified paging support for the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The HTML markup that provides paging support for the grid.</returns>
|
||||
<param name="mode">A bitwise combination of the enumeration values that specify the methods that are provided for moving between the pages of the grid. The default is the bitwise OR of the <see cref="F:System.Web.Helpers.WebGridPagerModes.NextPrevious" /> and <see cref="F:System.Web.Helpers.WebGridPagerModes.Numeric" /> flags.</param>
|
||||
<param name="firstText">The text for the HTML link element that navigates to the first page of the grid.</param>
|
||||
<param name="previousText">The text for the HTML link element that navigates to the previous page of the grid.</param>
|
||||
<param name="nextText">The text for the HTML link element that navigates to the next page of the grid.</param>
|
||||
<param name="lastText">The text for the HTML link element that navigates to the last page of the grid.</param>
|
||||
<param name="numericLinksCount">The number of numeric page links to display. The default is 5.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.Rows">
|
||||
<summary>Gets a list that contains the rows that are on the current page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance after the grid has been sorted.</summary>
|
||||
<returns>The list of rows.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.RowsPerPage">
|
||||
<summary>Gets the number of rows that are displayed on each page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The number of rows that are displayed on each page of the grid.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.SelectedIndex">
|
||||
<summary>Gets or sets the index of the selected row relative to the current page of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The index of the selected row relative to the current page.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.SelectedRow">
|
||||
<summary>Gets the currently selected row of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The currently selected row.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.SelectionFieldName">
|
||||
<summary>Gets the full name of the query-string field that is used to specify the selected row of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The full name of the query string field that is used to specify the selected row of the grid.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.SortColumn">
|
||||
<summary>Gets or sets the name of the data column that the <see cref="T:System.Web.Helpers.WebGrid" /> instance is sorted by.</summary>
|
||||
<returns>The name of the data column that is used to sort the grid.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.SortDirection">
|
||||
<summary>Gets or sets the direction in which the <see cref="T:System.Web.Helpers.WebGrid" /> instance is sorted.</summary>
|
||||
<returns>The sort direction.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.SortDirectionFieldName">
|
||||
<summary>Gets the full name of the query-string field that is used to specify the sort direction of the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The full name of the query string field that is used to specify the sort direction of the grid.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.SortFieldName">
|
||||
<summary>Gets the full name of the query-string field that is used to specify the name of the data column that the <see cref="T:System.Web.Helpers.WebGrid" /> instance is sorted by.</summary>
|
||||
<returns>The full name of the query-string field that is used to specify the name of the data column that the grid is sorted by.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGrid.Table(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Boolean,System.String,System.Collections.Generic.IEnumerable{System.Web.Helpers.WebGridColumn},System.Collections.Generic.IEnumerable{System.String},System.Func`2,System.Boolean)">
|
||||
<summary>Returns the HTML markup that is used to render the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
<returns>The HTML markup that represents the fully-populated <see cref="T:System.Web.Helpers.WebGrid" /> instance.</returns>
|
||||
<param name="tableStyle">The name of the CSS class that is used to style the whole table.</param>
|
||||
<param name="headerStyle">The name of the CSS class that is used to style the table header.</param>
|
||||
<param name="footerStyle">The name of the CSS class that is used to style the table footer.</param>
|
||||
<param name="rowStyle">The name of the CSS class that is used to style each table row.</param>
|
||||
<param name="alternatingRowStyle">The name of the CSS class that is used to style even-numbered table rows.</param>
|
||||
<param name="selectedRowStyle">The name of the CSS class that is used use to style the selected table row.</param>
|
||||
<param name="caption">The table caption.</param>
|
||||
<param name="displayHeader">true to display the table header; otherwise, false. The default is true.</param>
|
||||
<param name="fillEmptyRows">true to insert additional rows in the last page when there are insufficient data items to fill the last page; otherwise, false. The default is false. Additional rows are populated using the text specified by the <paramref name="emptyRowCellValue" /> parameter.</param>
|
||||
<param name="emptyRowCellValue">The text that is used to populate additional rows in the last page when there are insufficient data items to fill the last page. The <paramref name="fillEmptyRows" /> parameter must be set to true to display these additional rows.</param>
|
||||
<param name="columns">A collection of <see cref="T:System.Web.Helpers.WebGridColumn" /> instances that specify how each column is displayed. This includes which data column is associated with each grid column, and how to format the data values that each grid column contains.</param>
|
||||
<param name="exclusions">A collection that contains the names of the data columns to exclude when the grid auto-populates columns.</param>
|
||||
<param name="footer">A function that returns the HTML markup that is used to render the table footer.</param>
|
||||
<param name="htmlAttributes">An object that represents a collection of attributes (names and values) to set for the HTML table element that represents the <see cref="T:System.Web.Helpers.WebGrid" /> instance.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGrid.TotalRowCount">
|
||||
<summary>Gets the total number of rows that the <see cref="T:System.Web.Helpers.WebGrid" /> instance contains.</summary>
|
||||
<returns>The total number of rows in the grid. This value includes all rows from every page, but does not include the additional rows inserted in the last page when there are insufficient data items to fill the last page.</returns>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.WebGridColumn">
|
||||
<summary>Represents a column in a <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGridColumn.#ctor">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.Helpers.WebGridColumn" /> class.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGridColumn.CanSort">
|
||||
<summary>Gets or sets a value that indicates whether the <see cref="T:System.Web.Helpers.WebGrid" /> column can be sorted.</summary>
|
||||
<returns>true to indicate that the column can be sorted; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGridColumn.ColumnName">
|
||||
<summary>Gets or sets the name of the data item that is associated with the <see cref="T:System.Web.Helpers.WebGrid" /> column.</summary>
|
||||
<returns>The name of the data item.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGridColumn.Format">
|
||||
<summary>Gets or sets a function that is used to format the data item that is associated with the <see cref="T:System.Web.Helpers.WebGrid" /> column.</summary>
|
||||
<returns>The function that is used to format that data item that is associated with the column.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGridColumn.Header">
|
||||
<summary>Gets or sets the text that is rendered in the header of the <see cref="T:System.Web.Helpers.WebGrid" /> column.</summary>
|
||||
<returns>The text that is rendered to the column header.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGridColumn.Style">
|
||||
<summary>Gets or sets the CSS class attribute that is rendered as part of the HTML table cells that are associated with the <see cref="T:System.Web.Helpers.WebGrid" /> column.</summary>
|
||||
<returns>The CSS class attribute that is applied to cells that are associated with the column.</returns>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.WebGridPagerModes">
|
||||
<summary>Specifies flags that describe the methods that are provided for moving between the pages of a <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.WebGridPagerModes.Numeric">
|
||||
<summary>Indicates that methods for moving to a nearby <see cref="F:System.Web.Helpers.WebGrid" /> page by using a page number are provided.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.WebGridPagerModes.NextPrevious">
|
||||
<summary>Indicates that methods for moving to the next or previous <see cref="F:System.Web.Helpers.WebGrid" /> page are provided.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.WebGridPagerModes.FirstLast">
|
||||
<summary>Indicates that methods for moving directly to the first or last <see cref="F:System.Web.Helpers.WebGrid" /> page are provided.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.Helpers.WebGridPagerModes.All">
|
||||
<summary>Indicates that all methods for moving between <see cref="T:System.Web.Helpers.WebGrid" /> pages are provided.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.WebGridRow">
|
||||
<summary>Represents a row in a <see cref="T:System.Web.Helpers.WebGrid" /> instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGridRow.#ctor(System.Web.Helpers.WebGrid,System.Object,System.Int32)">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.Helpers.WebGridRow" /> class using the specified <see cref="T:System.Web.Helpers.WebGrid" /> instance, row value, and index.</summary>
|
||||
<param name="webGrid">The <see cref="T:System.Web.Helpers.WebGrid" /> instance that contains the row.</param>
|
||||
<param name="value">An object that contains a property member for each value in the row.</param>
|
||||
<param name="rowIndex">The index of the row.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGridRow.GetEnumerator">
|
||||
<summary>Returns an enumerator that can be used to iterate through the values of the <see cref="T:System.Web.Helpers.WebGridRow" /> instance.</summary>
|
||||
<returns>An enumerator that can be used to iterate through the values of the row.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGridRow.GetSelectLink(System.String)">
|
||||
<summary>Returns an HTML element (a link) that users can use to select the row.</summary>
|
||||
<returns>The link that users can click to select the row.</returns>
|
||||
<param name="text">The inner text of the link element. If <paramref name="text" /> is empty or null, "Select" is used.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGridRow.GetSelectUrl">
|
||||
<summary>Returns the URL that can be used to select the row.</summary>
|
||||
<returns>The URL that is used to select a row.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGridRow.Item(System.Int32)">
|
||||
<summary>Returns the value at the specified index in the <see cref="T:System.Web.Helpers.WebGridRow" /> instance.</summary>
|
||||
<returns>The value at the specified index.</returns>
|
||||
<param name="index">The zero-based index of the value in the row to return.</param>
|
||||
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||
<paramref name="index" /> is less than 0 or greater than or equal to the number of values in the row.</exception>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGridRow.Item(System.String)">
|
||||
<summary>Returns the value that has the specified name in the <see cref="T:System.Web.Helpers.WebGridRow" /> instance.</summary>
|
||||
<returns>The specified value.</returns>
|
||||
<param name="name">The name of the value in the row to return.</param>
|
||||
<exception cref="T:System.ArgumentException">
|
||||
<paramref name="name" /> is null or empty.</exception>
|
||||
<exception cref="T:System.InvalidOperationException">
|
||||
<paramref name="name" /> specifies a value that does not exist.</exception>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGridRow.System#Collections#IEnumerable#GetEnumerator">
|
||||
<summary>Returns an enumerator that can be used to iterate through a collection.</summary>
|
||||
<returns>An enumerator that can be used to iterate through the collection.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGridRow.ToString">
|
||||
<summary>Returns a string that represents all of the values of the <see cref="T:System.Web.Helpers.WebGridRow" /> instance.</summary>
|
||||
<returns>A string that represents the row's values.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebGridRow.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
|
||||
<summary>Returns the value of a <see cref="T:System.Web.Helpers.WebGridRow" /> member that is described by the specified binder.</summary>
|
||||
<returns>true if the value of the item was successfully retrieved; otherwise, false.</returns>
|
||||
<param name="binder">The getter of the bound property member.</param>
|
||||
<param name="result">When this method returns, contains an object that holds the value of the item described by <paramref name="binder" />. This parameter is passed uninitialized.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGridRow.Value">
|
||||
<summary>Gets an object that contains a property member for each value in the row.</summary>
|
||||
<returns>An object that contains each value in the row as a property.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebGridRow.WebGrid">
|
||||
<summary>Gets the <see cref="T:System.Web.Helpers.WebGrid" /> instance that the row belongs to.</summary>
|
||||
<returns>The <see cref="T:System.Web.Helpers.WebGrid" /> instance that contains the row.</returns>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.WebImage">
|
||||
<summary>Represents an object that lets you display and manage images in a web page.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.#ctor(System.Byte[])">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.Helpers.WebImage" /> class using a byte array to represent the image.</summary>
|
||||
<param name="content">The image.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.#ctor(System.IO.Stream)">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.Helpers.WebImage" /> class using a stream to represent the image.</summary>
|
||||
<param name="imageStream">The image.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.#ctor(System.String)">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.Helpers.WebImage" /> class using a path to represent the image location.</summary>
|
||||
<param name="filePath">The path of the file that contains the image.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.AddImageWatermark(System.String,System.Int32,System.Int32,System.String,System.String,System.Int32,System.Int32)">
|
||||
<summary>Adds a watermark image using a path to the watermark image.</summary>
|
||||
<returns>The watermarked image.</returns>
|
||||
<param name="watermarkImageFilePath">The path of a file that contains the watermark image.</param>
|
||||
<param name="width">The width, in pixels, of the watermark image.</param>
|
||||
<param name="height">The height, in pixels, of the watermark image.</param>
|
||||
<param name="horizontalAlign">The horizontal alignment for watermark image. Values can be "Left", "Right", or "Center".</param>
|
||||
<param name="verticalAlign">The vertical alignment for the watermark image. Values can be "Top", "Middle", or "Bottom".</param>
|
||||
<param name="opacity">The opacity for the watermark image, specified as a value between 0 and 100.</param>
|
||||
<param name="padding">The size, in pixels, of the padding around the watermark image.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.AddImageWatermark(System.Web.Helpers.WebImage,System.Int32,System.Int32,System.String,System.String,System.Int32,System.Int32)">
|
||||
<summary>Adds a watermark image using the specified image object.</summary>
|
||||
<returns>The watermarked image.</returns>
|
||||
<param name="watermarkImage">A <see cref="T:System.Web.Helpers.WebImage" /> object.</param>
|
||||
<param name="width">The width, in pixels, of the watermark image.</param>
|
||||
<param name="height">The height, in pixels, of the watermark image.</param>
|
||||
<param name="horizontalAlign">The horizontal alignment for watermark image. Values can be "Left", "Right", or "Center".</param>
|
||||
<param name="verticalAlign">The vertical alignment for the watermark image. Values can be "Top", "Middle", or "Bottom".</param>
|
||||
<param name="opacity">The opacity for the watermark image, specified as a value between 0 and 100.</param>
|
||||
<param name="padding">The size, in pixels, of the padding around the watermark image.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.AddTextWatermark(System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Int32,System.Int32)">
|
||||
<summary>Adds watermark text to the image.</summary>
|
||||
<returns>The watermarked image.</returns>
|
||||
<param name="text">The text to use as a watermark.</param>
|
||||
<param name="fontColor">The color of the watermark text.</param>
|
||||
<param name="fontSize">The font size of the watermark text.</param>
|
||||
<param name="fontStyle">The font style of the watermark text.</param>
|
||||
<param name="fontFamily">The font type of the watermark text.</param>
|
||||
<param name="horizontalAlign">The horizontal alignment for watermark text. Values can be "Left", "Right", or "Center".</param>
|
||||
<param name="verticalAlign">The vertical alignment for the watermark text. Values can be "Top", "Middle", or "Bottom".</param>
|
||||
<param name="opacity">The opacity for the watermark image, specified as a value between 0 and 100.</param>
|
||||
<param name="padding">The size, in pixels, of the padding around the watermark text.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.Clone">
|
||||
<summary>Copies the <see cref="T:System.Web.Helpers.WebImage" /> object.</summary>
|
||||
<returns>The image.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.Crop(System.Int32,System.Int32,System.Int32,System.Int32)">
|
||||
<summary>Crops an image.</summary>
|
||||
<returns>The cropped image.</returns>
|
||||
<param name="top">The number of pixels to remove from the top.</param>
|
||||
<param name="left">The number of pixels to remove from the left.</param>
|
||||
<param name="bottom">The number of pixels to remove from the bottom.</param>
|
||||
<param name="right">The number of pixels to remove from the right.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebImage.FileName">
|
||||
<summary>Gets or sets the file name of the <see cref="T:System.Web.Helpers.WebImage" /> object.</summary>
|
||||
<returns>The file name.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.FlipHorizontal">
|
||||
<summary>Flips an image horizontally.</summary>
|
||||
<returns>The flipped image.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.FlipVertical">
|
||||
<summary>Flips an image vertically.</summary>
|
||||
<returns>The flipped image.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.GetBytes(System.String)">
|
||||
<summary>Returns the image as a byte array.</summary>
|
||||
<returns>The image.</returns>
|
||||
<param name="requestedFormat">The <see cref="P:System.Web.Helpers.WebImage.ImageFormat" /> value of the <see cref="T:System.Web.Helpers.WebImage" /> object.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.GetImageFromRequest(System.String)">
|
||||
<summary>Returns an image that has been uploaded using the browser.</summary>
|
||||
<returns>The image.</returns>
|
||||
<param name="postedFileName">(Optional) The name of the file that has been posted. If no file name is specified, the first file that was uploaded is returned.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebImage.Height">
|
||||
<summary>Gets the height, in pixels, of the image.</summary>
|
||||
<returns>The height.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebImage.ImageFormat">
|
||||
<summary>Gets the format of the image (for example, "jpeg" or "png").</summary>
|
||||
<returns>The file format of the image.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.Resize(System.Int32,System.Int32,System.Boolean,System.Boolean)">
|
||||
<summary>Resizes an image.</summary>
|
||||
<returns>The resized image.</returns>
|
||||
<param name="width">The width, in pixels, of the <see cref="T:System.Web.Helpers.WebImage" /> object.</param>
|
||||
<param name="height">The height, in pixels, of the <see cref="T:System.Web.Helpers.WebImage" /> object.</param>
|
||||
<param name="preserveAspectRatio">true to preserve the aspect ratio of the image; otherwise, false.</param>
|
||||
<param name="preventEnlarge">true to prevent the enlargement of the image; otherwise, false.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.RotateLeft">
|
||||
<summary>Rotates an image to the left.</summary>
|
||||
<returns>The rotated image.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.RotateRight">
|
||||
<summary>Rotates an image to the right.</summary>
|
||||
<returns>The rotated image.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.Save(System.String,System.String,System.Boolean)">
|
||||
<summary>Saves the image using the specified file name.</summary>
|
||||
<returns>The image.</returns>
|
||||
<param name="filePath">The path to save the image to.</param>
|
||||
<param name="imageFormat">The format to use when the image file is saved, such as "gif", or "png".</param>
|
||||
<param name="forceCorrectExtension">true to force the correct file-name extension to be used for the format that is specified in <paramref name="imageFormat" />; otherwise, false. If there is a mismatch between the file type and the specified file-name extension, and if <paramref name="forceCorrectExtension" /> is true, the correct extension will be appended to the file name. For example, a PNG file named Photograph.txt is saved using the name Photograph.txt.png.</param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebImage.Width">
|
||||
<summary>Gets the width, in pixels, of the image.</summary>
|
||||
<returns>The width.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebImage.Write(System.String)">
|
||||
<summary>Renders an image to the browser.</summary>
|
||||
<returns>The image.</returns>
|
||||
<param name="requestedFormat">(Optional) The file format to use when the image is written.</param>
|
||||
</member>
|
||||
<member name="T:System.Web.Helpers.WebMail">
|
||||
<summary>Provides a way to construct and send an email message using Simple Mail Transfer Protocol (SMTP).</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebMail.EnableSsl">
|
||||
<summary>Gets or sets a value that indicates whether Secure Sockets Layer (SSL) is used to encrypt the connection when an email message is sent.</summary>
|
||||
<returns>true if SSL is used to encrypt the connection; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebMail.From">
|
||||
<summary>Gets or sets the email address of the sender.</summary>
|
||||
<returns>The email address of the sender.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebMail.Password">
|
||||
<summary>Gets or sets the password of the sender's email account.</summary>
|
||||
<returns>The sender's password.</returns>
|
||||
</member>
|
||||
<member name="M:System.Web.Helpers.WebMail.Send(System.String,System.String,System.String,System.String,System.String,System.Collections.Generic.IEnumerable{System.String},System.Boolean,System.Collections.Generic.IEnumerable{System.String},System.String,System.String,System.String,System.String,System.String)">
|
||||
<summary>Sends the specified message to an SMTP server for delivery.</summary>
|
||||
<param name="to">The email address of the recipient or recipients. Separate multiple recipients using a semicolon (;).</param>
|
||||
<param name="subject">The subject line for the email message.</param>
|
||||
<param name="body">The body of the email message. If <paramref name="isBodyHtml" /> is true, HTML in the body is interpreted as markup.</param>
|
||||
<param name="from">(Optional) The email address of the message sender, or null to not specify a sender. The default value is null.</param>
|
||||
<param name="cc">(Optional) The email addresses of additional recipients to send a copy of the message to, or null if there are no additional recipients. Separate multiple recipients using a semicolon (;). The default value is null.</param>
|
||||
<param name="filesToAttach">(Optional) A collection of file names that specifies the files to attach to the email message, or null if there are no files to attach. The default value is null.</param>
|
||||
<param name="isBodyHtml">(Optional) true to specify that the email message body is in HTML format; false to indicate that the body is in plain-text format. The default value is true.</param>
|
||||
<param name="additionalHeaders">(Optional) A collection of headers to add to the normal SMTP headers included in this email message, or null to send no additional headers. The default value is null.</param>
|
||||
<param name="bcc">(Optional) The email addresses of additional recipients to send a "blind" copy of the message to, or null if there are no additional recipients. Separate multiple recipients using a semicolon (;). The default value is null.</param>
|
||||
<param name="contentEncoding">(Optional) The encoding to use for the body of the message. Possible values are property values for the <see cref="T:System.Text.Encoding" /> class, such as <see cref="P:System.Text.Encoding.UTF8" />. The default value is null.</param>
|
||||
<param name="headerEncoding">(Optional) The encoding to use for the header of the message. Possible values are property values for the <see cref="T:System.Text.Encoding" /> class, such as <see cref="P:System.Text.Encoding.UTF8" />. The default value is null.</param>
|
||||
<param name="priority">(Optional) A value ("Normal", "Low", "High") that specifies the priority of the message. The default is "Normal".</param>
|
||||
<param name="replyTo">(Optional) The email address that will be used when the recipient replies to the message. The default value is null, which indicates that the reply address is the value of the From property. </param>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebMail.SmtpPort">
|
||||
<summary>Gets or sets the port that is used for SMTP transactions.</summary>
|
||||
<returns>The port that is used for SMTP transactions.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebMail.SmtpServer">
|
||||
<summary>Gets or sets the name of the SMTP server that is used to transmit the email message.</summary>
|
||||
<returns>The SMTP server.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebMail.SmtpUseDefaultCredentials">
|
||||
<summary>Gets or sets a value that indicates whether the default credentials are sent with the requests.</summary>
|
||||
<returns>true if credentials are sent with the email message; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.Helpers.WebMail.UserName">
|
||||
<summary>Gets or sets the name of email account that is used to send email.</summary>
|
||||
<returns>The name of the user account.</returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
BIN
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.Deployment.dll
vendored
Normal file
BIN
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.Deployment.dll
vendored
Normal file
Binary file not shown.
41
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.Deployment.xml
vendored
Normal file
41
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.Deployment.xml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>System.Web.WebPages.Deployment</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Web.WebPages.Deployment.PreApplicationStartCode">
|
||||
<summary>Provides a registration point for pre-application start code for Web Pages deployment.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Deployment.PreApplicationStartCode.Start">
|
||||
<summary>Registers pre-application start code for Web Pages deployment.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.WebPages.Deployment.WebPagesDeployment">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Deployment.WebPagesDeployment.GetAssemblyPath(System.Version)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Deployment.WebPagesDeployment.GetIncompatibleDependencies(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Deployment.WebPagesDeployment.GetMaxVersion">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Deployment.WebPagesDeployment.GetVersion(System.String)">
|
||||
<param name="path">The path of the root directory for the application.</param>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Deployment.WebPagesDeployment.GetVersionWithoutEnabledCheck(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Deployment.WebPagesDeployment.GetWebPagesAssemblies">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Deployment.WebPagesDeployment.IsEnabled(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Deployment.WebPagesDeployment.IsExplicitlyDisabled(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
BIN
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.Razor.dll
vendored
Normal file
BIN
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.Razor.dll
vendored
Normal file
Binary file not shown.
224
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.Razor.xml
vendored
Normal file
224
packages/Microsoft.AspNet.WebPages.2.0.20710.0/lib/net40/System.Web.WebPages.Razor.xml
vendored
Normal file
@@ -0,0 +1,224 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>System.Web.WebPages.Razor</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:System.Web.WebPages.Razor.CompilingPathEventArgs">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.CompilingPathEventArgs.#ctor(System.String,System.Web.WebPages.Razor.WebPageRazorHost)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.CompilingPathEventArgs.Host">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.CompilingPathEventArgs.VirtualPath">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.WebPages.Razor.PreApplicationStartCode">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.PreApplicationStartCode.Start">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.WebPages.Razor.RazorBuildProvider">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.RazorBuildProvider.#ctor">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.RazorBuildProvider.AddVirtualPathDependency(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.RazorBuildProvider.AssemblyBuilder">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.RazorBuildProvider.CodeCompilerType">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="E:System.Web.WebPages.Razor.RazorBuildProvider.CodeGenerationCompleted">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="E:System.Web.WebPages.Razor.RazorBuildProvider.CodeGenerationStarted">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="E:System.Web.WebPages.Razor.RazorBuildProvider.CompilingPath">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.RazorBuildProvider.CreateHost">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.RazorBuildProvider.GenerateCode(System.Web.Compilation.AssemblyBuilder)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.RazorBuildProvider.GetGeneratedType(System.CodeDom.Compiler.CompilerResults)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.RazorBuildProvider.GetHostFromConfig">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.RazorBuildProvider.InternalOpenReader">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.RazorBuildProvider.OnBeforeCompilePath(System.Web.WebPages.Razor.CompilingPathEventArgs)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.RazorBuildProvider.VirtualPath">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.RazorBuildProvider.VirtualPathDependencies">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.WebPages.Razor.WebCodeRazorHost">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebCodeRazorHost.#ctor(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebCodeRazorHost.#ctor(System.String,System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebCodeRazorHost.GetClassName(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebCodeRazorHost.PostProcessGeneratedCode(System.Web.Razor.Generator.CodeGeneratorContext)"></member>
|
||||
<member name="T:System.Web.WebPages.Razor.WebPageRazorHost">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebPageRazorHost.#ctor(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebPageRazorHost.#ctor(System.String,System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.WebPageRazorHost.CodeLanguage">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebPageRazorHost.CreateMarkupParser">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.WebPageRazorHost.DefaultBaseClass">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.WebPageRazorHost.DefaultClassName">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.WebPageRazorHost.DefaultDebugCompilation">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.WebPageRazorHost.DefaultPageBaseClass">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebPageRazorHost.GetClassName(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebPageRazorHost.GetCodeLanguage">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebPageRazorHost.GetGlobalImports">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.WebPageRazorHost.InstrumentedSourceFilePath">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.WebPageRazorHost.IsSpecialPage">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.WebPageRazorHost.PhysicalPath">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebPageRazorHost.PostProcessGeneratedCode(System.Web.Razor.Generator.CodeGeneratorContext)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebPageRazorHost.RegisterSpecialFile(System.String,System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebPageRazorHost.RegisterSpecialFile(System.String,System.Type)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.WebPageRazorHost.VirtualPath">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.WebPages.Razor.WebRazorHostFactory">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebRazorHostFactory.#ctor">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebRazorHostFactory.ApplyConfigurationToHost(System.Web.WebPages.Razor.Configuration.RazorPagesSection,System.Web.WebPages.Razor.WebPageRazorHost)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebRazorHostFactory.CreateDefaultHost(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebRazorHostFactory.CreateDefaultHost(System.String,System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebRazorHostFactory.CreateHost(System.String,System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(System.String,System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,System.String,System.String)">
|
||||
<summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.WebPages.Razor.Configuration.HostSection">
|
||||
<summary>Provides configuration system support for the host configuration section.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.Configuration.HostSection.#ctor">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.WebPages.Razor.Configuration.HostSection" /> class.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.Configuration.HostSection.FactoryType">
|
||||
<summary>Gets or sets the host factory.</summary>
|
||||
<returns>The host factory.</returns>
|
||||
</member>
|
||||
<member name="F:System.Web.WebPages.Razor.Configuration.HostSection.SectionName">
|
||||
<summary>Represents the name of the configuration section for a Razor host environment.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.WebPages.Razor.Configuration.RazorPagesSection">
|
||||
<summary>Provides configuration system support for the pages configuration section.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.Configuration.RazorPagesSection.#ctor">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.WebPages.Razor.Configuration.RazorPagesSection" /> class.</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.Configuration.RazorPagesSection.Namespaces">
|
||||
<summary>Gets or sets the collection of namespaces to add to Web Pages pages in the current application.</summary>
|
||||
<returns>The collection of namespaces.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.Configuration.RazorPagesSection.PageBaseType">
|
||||
<summary>Gets or sets the name of the page base type class.</summary>
|
||||
<returns>The name of the page base type class.</returns>
|
||||
</member>
|
||||
<member name="F:System.Web.WebPages.Razor.Configuration.RazorPagesSection.SectionName">
|
||||
<summary>Represents the name of the configuration section for Razor pages.</summary>
|
||||
</member>
|
||||
<member name="T:System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup">
|
||||
<summary>Provides configuration system support for the system.web.webPages.razor configuration section.</summary>
|
||||
</member>
|
||||
<member name="M:System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup.#ctor">
|
||||
<summary>Initializes a new instance of the <see cref="T:System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup" /> class.</summary>
|
||||
</member>
|
||||
<member name="F:System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup.GroupName">
|
||||
<summary>Represents the name of the configuration section for Razor Web section. Contains the static, read-only string "system.web.webPages.razor".</summary>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup.Host">
|
||||
<summary>Gets or sets the host value for system.web.webPages.razor section group.</summary>
|
||||
<returns>The host value.</returns>
|
||||
</member>
|
||||
<member name="P:System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup.Pages">
|
||||
<summary>Gets or sets the value of the pages element for the system.web.webPages.razor section.</summary>
|
||||
<returns>The pages element value.</returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user