https://www.youtube.com/watch?v=PozYTvmgcVE
1. Add middleware
php artisan make:middleware Cors
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
2. Register middleware as a route middleware
3. Use middleware in routes which support CORS
Thursday, April 20, 2017
Wednesday, April 5, 2017
Monday, April 3, 2017
Monday, February 6, 2017
Social Networks Token Playground
Generate Token:
https://developers.facebook.com/tools/explorer/145634995501895/?method=GET&path=me%3Ffields%3Did%2Cfirst_name%2Clast_name%2Cemail&version=v2.8
Get user by access token:
https://graph.facebook.com/me?fields=id,first_name,last_name,email,picture&access_token={ACCESS_TOKEN}
Generate Token:
https://developers.google.com/oauthplayground/
Get user by access token:
https://www.googleapis.com/oauth2/v1/userinfo?access_token={ACCESS_TOKEN}
Monday, September 12, 2016
Laravel 5.1 Useful Resources
- Update account password - http://teamnik.org/how-to-update-user-password-in-laravel5/
- User ACL with Entrust - http://itsolutionstuff.com/post/laravel-52-user-acl-roles-and-permissions-with-middleware-using-entrust-from-scratch-tutorialexample.html
- Track user last login time - http://coffeecupweb.com/capture-last-login-time-in-laravel-5/
- Retain old input & object state with create edit form - https://laracasts.com/discuss/channels/code-review/clean-way-to-inject-old-input
- Load settings from database -
http://stackoverflow.com/questions/32824781/laravel-load-settings-from-database
https://laracasts.com/discuss/channels/general-discussion/l5-best-way-to-load-settings-from-database - Custom Helper -
http://laravel-recipes.com/recipes/50/creating-a-helpers-file
http://stackoverflow.com/questions/28290332/best-practices-for-custom-helpers-on-laravel-5 - Cron Jobs
https://www.sitepoint.com/managing-cronjobs-with-laravel/
http://www.easylaravelbook.com/blog/2015/01/27/introducing-the-laravel-5-command-scheduler/
http://blog.mauriziobonani.com/laravel-cron-jobs-on-shared-hosting/
Hosting
- Host in a shared server - http://laraveldaily.com/laravel-and-shared-hosting-working-with-ftp-and-phpmyadmin/
Lumen
https://github.com/lucadegasperi/oauth2-server-laravel
http://esbenp.github.io/2015/05/26/lumen-web-api-oauth-2-authentication/
http://mrgott.com/joomla/24-integrate-oauth2-server-into-lumen-to-secure-your-restful-api-with-access-tokens
http://loige.co/developing-a-web-application-with-lumen-and-mysql/
Friday, January 8, 2016
Wednesday, November 25, 2015
Handle Cloning with jQuery Uniform
If you try to apply uniform styles for cloned elements, you may come across some weird situations where you don't get the expected output. Just try this if it applies to you also.
The bold text is the most important and it should be applied in the same order.
$.uniform.restore('.is_variant_enabled');
$('.is_variant_enabled').uniform();
[sourcecode language="javascript"]
$.uniform.restore('.is_variant_enabled');
var row = $("#tbl_variants").find('tr:eq(1)').clone();
$("#tbl_variants tbody").prepend(row);
$('.is_variant_enabled').uniform();
[/sourcecode]
The bold text is the most important and it should be applied in the same order.
$.uniform.restore('.is_variant_enabled');
$('.is_variant_enabled').uniform();
[sourcecode language="javascript"]
$.uniform.restore('.is_variant_enabled');
var row = $("#tbl_variants").find('tr:eq(1)').clone();
$("#tbl_variants tbody").prepend(row);
$('.is_variant_enabled').uniform();
[/sourcecode]
Tuesday, October 27, 2015
Export Magento Product Categories to custom table
[sourcecode language="php"]
<?php
ini_set('max_execution_time', 1500);
error_reporting(-1);
ini_set('display_errors', 1);
require_once 'app/Mage.php';
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$userModel = Mage::getModel('admin/user');
$userModel->setUserId(0);
$categories = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('id')
->addAttributeToSelect('name')
->addAttributeToSelect('url_key')
->addAttributeToSelect('url')
->addAttributeToSelect('is_active');
foreach ($categories as $category) {
$entity_id = $category->getId();
$name = mysql_real_escape_string($category->getName());
$url_key = $category->getUrlKey();
$url_path = $category->getUrl();
$is_active = $category->getIsActive();
$now = time();
$catids = array();
foreach ($category->getParentCategories() as $parent) {
$catids[] = $parent->getId();
}
unset($catids[count($catids) - 1]);
$parent = NULL;
if (empty($catids)) {
$parent = NULL;
} else {
$parent = array_pop($catids);
}
$con = mysql_connect("HOST", "USER", "PASSWORD");
mysql_select_db("DB", $con) or die("");
mysql_query("INSERT INTO `categories`(`id`, `name`, `slug`, `parent_id`, `enabled`, `modified_at`, `modified_by`) VALUES ('$entity_id', '$name', '$url_key', '$parent' ,'$is_active', '$now', 1)") or die(mysql_error());
}
[/sourcecode]
<?php
ini_set('max_execution_time', 1500);
error_reporting(-1);
ini_set('display_errors', 1);
require_once 'app/Mage.php';
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$userModel = Mage::getModel('admin/user');
$userModel->setUserId(0);
$categories = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('id')
->addAttributeToSelect('name')
->addAttributeToSelect('url_key')
->addAttributeToSelect('url')
->addAttributeToSelect('is_active');
foreach ($categories as $category) {
$entity_id = $category->getId();
$name = mysql_real_escape_string($category->getName());
$url_key = $category->getUrlKey();
$url_path = $category->getUrl();
$is_active = $category->getIsActive();
$now = time();
$catids = array();
foreach ($category->getParentCategories() as $parent) {
$catids[] = $parent->getId();
}
unset($catids[count($catids) - 1]);
$parent = NULL;
if (empty($catids)) {
$parent = NULL;
} else {
$parent = array_pop($catids);
}
$con = mysql_connect("HOST", "USER", "PASSWORD");
mysql_select_db("DB", $con) or die("");
mysql_query("INSERT INTO `categories`(`id`, `name`, `slug`, `parent_id`, `enabled`, `modified_at`, `modified_by`) VALUES ('$entity_id', '$name', '$url_key', '$parent' ,'$is_active', '$now', 1)") or die(mysql_error());
}
[/sourcecode]
Tuesday, October 20, 2015
Friday, October 2, 2015
Change Database Collation with PHP
This little sql statement can change the collation in your database including tables, columns and everywhere. This is something phpMyAdmin can not handle completely.
Credits goes to original poster.
[sourcecode language="php"]
$conn1=new MySQLi("localhost","root","","exam_db");
if($conn1->connect_errno){
echo mysqli_connect_error();
exit;
}
$res=$conn1->query("show tables") or die($conn1->error);
while($tables=$res->fetch_array()){
$conn1->query("ALTER TABLE $tables[0] CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci") or die($conn1->error);
}
echo "The collation of your database has been successfully changed!";
$res->free();
$conn1->close();
[/sourcecode]
Credits goes to original poster.
[sourcecode language="php"]
$conn1=new MySQLi("localhost","root","","exam_db");
if($conn1->connect_errno){
echo mysqli_connect_error();
exit;
}
$res=$conn1->query("show tables") or die($conn1->error);
while($tables=$res->fetch_array()){
$conn1->query("ALTER TABLE $tables[0] CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci") or die($conn1->error);
}
echo "The collation of your database has been successfully changed!";
$res->free();
$conn1->close();
[/sourcecode]
Monday, September 14, 2015
Sunday, September 13, 2015
Google Map InfoBox
[sourcecode language="html"]
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox.js"></script>
<script type="text/javascript">
var ib = null;
var theMap = null;
function initialize() {
var latlng = new google.maps.LatLng(55.672962361614566, 12.56587028503418);
var myMapOptions = {
zoom: 15
,center: latlng
,mapTypeId: google.maps.MapTypeId.ROADMAP
,streetViewControl: false
};
theMap = new google.maps.Map(document.getElementById("map_canvas"), myMapOptions);
// namn
var name=[];
name.push('Test 1');
name.push('Test 2');
// positioner
var position=[];
position.push(new google.maps.LatLng(55.667093265894245,12.581255435943604));
position.push(new google.maps.LatLng(55.66453963191134, 12.584795951843262));
// infoboxes
var infobox = [];
infobox.push("<div>Hello 1</div>");
infobox.push("<div>Hello 2</div>");
ib = new InfoBox({});
for (i = 0; i < position.length; i += 1) {
// Call function
createMarkers(position[i], infobox[i], name[i]);
}
function createMarkers(position,content,name) {
// alert("createMarkers("+position+","+content+","+name+")");
var marker = new google.maps.Marker({
map: theMap,
draggable: false,
position: position,
visible: true,
title: name
});
var boxText = document.createElement("div");
boxText.style.cssText = "background: yellow; width: 300px; height: 70px; padding: 5px;";
boxText.innerHTML = content;
var myOptions = {
content: boxText
,disableAutoPan: false
,maxWidth: 0
,pixelOffset: new google.maps.Size(-37, -120)
,zIndex: null
,boxStyle: {
background: "url('tipbox.gif') no-repeat"
,opacity: 1
,width: "300px"
}
,closeBoxMargin: "5px 5px 5px 5px"
,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
,infoBoxClearance: new google.maps.Size(1, 1)
,isHidden: false
,pane: "floatPane"
,enableEventPropagation: false
};
google.maps.event.addListener(marker, "click", function (e) {
alert("click");
ib.setOptions(myOptions);
ib.open(theMap, this);
});
ib.open(theMap, marker);
ib.hide();
}
}
</script>
<title>Creating and Using an InfoBox</title>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width: 100%; height: 400px"></div></body>
</html>
[/sourcecode]
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox.js"></script>
<script type="text/javascript">
var ib = null;
var theMap = null;
function initialize() {
var latlng = new google.maps.LatLng(55.672962361614566, 12.56587028503418);
var myMapOptions = {
zoom: 15
,center: latlng
,mapTypeId: google.maps.MapTypeId.ROADMAP
,streetViewControl: false
};
theMap = new google.maps.Map(document.getElementById("map_canvas"), myMapOptions);
// namn
var name=[];
name.push('Test 1');
name.push('Test 2');
// positioner
var position=[];
position.push(new google.maps.LatLng(55.667093265894245,12.581255435943604));
position.push(new google.maps.LatLng(55.66453963191134, 12.584795951843262));
// infoboxes
var infobox = [];
infobox.push("<div>Hello 1</div>");
infobox.push("<div>Hello 2</div>");
ib = new InfoBox({});
for (i = 0; i < position.length; i += 1) {
// Call function
createMarkers(position[i], infobox[i], name[i]);
}
function createMarkers(position,content,name) {
// alert("createMarkers("+position+","+content+","+name+")");
var marker = new google.maps.Marker({
map: theMap,
draggable: false,
position: position,
visible: true,
title: name
});
var boxText = document.createElement("div");
boxText.style.cssText = "background: yellow; width: 300px; height: 70px; padding: 5px;";
boxText.innerHTML = content;
var myOptions = {
content: boxText
,disableAutoPan: false
,maxWidth: 0
,pixelOffset: new google.maps.Size(-37, -120)
,zIndex: null
,boxStyle: {
background: "url('tipbox.gif') no-repeat"
,opacity: 1
,width: "300px"
}
,closeBoxMargin: "5px 5px 5px 5px"
,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
,infoBoxClearance: new google.maps.Size(1, 1)
,isHidden: false
,pane: "floatPane"
,enableEventPropagation: false
};
google.maps.event.addListener(marker, "click", function (e) {
alert("click");
ib.setOptions(myOptions);
ib.open(theMap, this);
});
ib.open(theMap, marker);
ib.hide();
}
}
</script>
<title>Creating and Using an InfoBox</title>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width: 100%; height: 400px"></div></body>
</html>
[/sourcecode]
Thursday, August 27, 2015
Prepend Items to Bootstrap Typeahead
This is a little code snippet for manually adding static items along with typeahead suggestions list. This can be used to prepend or append items. I'm using biggora/bootstrap-ajax-typeahead
You only need to look for render event of the plugin and inject your code.
[sourcecode language="javascript"]
$("#customer").typeahead({
onSelect: function(item) {
...
},
updater: function(item) {
return item;
},
highlighter: function(name) {
...
},
ajax: {
...
},
render: function(items) {
var uber = {render: $.fn.typeahead.Constructor.prototype.render};
uber.render.call(this, items);
this.$menu.prepend('<li class="nostyle"><a href="#" autocomplete="off" data-toggle="modal" data-target="#itemModal"><i class="fa fa-plus"></i> New Customer</a></li>');
return this;
}
});
[/sourcecode]
You only need to look for render event of the plugin and inject your code.
[sourcecode language="javascript"]
$("#customer").typeahead({
onSelect: function(item) {
...
},
updater: function(item) {
return item;
},
highlighter: function(name) {
...
},
ajax: {
...
},
render: function(items) {
var uber = {render: $.fn.typeahead.Constructor.prototype.render};
uber.render.call(this, items);
this.$menu.prepend('<li class="nostyle"><a href="#" autocomplete="off" data-toggle="modal" data-target="#itemModal"><i class="fa fa-plus"></i> New Customer</a></li>');
return this;
}
});
[/sourcecode]
Thursday, July 16, 2015
Disable right click and F12 in jQuery
[sourcecode language="javascript"]
$(document).ready(function(){
$("body").bind("contextmenu", function(e) {
e.preventDefault();
});
document.onkeypress = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
return false;
}
}
document.onmousedown = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
return false;
}
}
document.onkeydown = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
return false;
}
}
});
[/sourcecode]
$(document).ready(function(){
$("body").bind("contextmenu", function(e) {
e.preventDefault();
});
document.onkeypress = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
return false;
}
}
document.onmousedown = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
return false;
}
}
document.onkeydown = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
return false;
}
}
});
[/sourcecode]
Friday, May 29, 2015
Bootstrap3 Ajax Typeahead Templating
Plugin URL : https://github.com/biggora/bootstrap-ajax-typeahead
[sourcecode language="javascript"]
<script type="text/javascript">
var items;
$("#search_item").typeahead({
onSelect: function(item) {
add_order_item(item.value);
},
updater: function (item) {
return item;
},
highlighter: function(name){
var item = _.find(items, function (c) {
return c.name == name;
});
var itm = ''
+ "<div class='typeahead_wrapper'>"
+ "<div class='typeahead_labels'>"
+ "<div class='typeahead_primary'><span class='pname'>" + item.name + "</span></div>"
+ "<div class='typeahead_secondary'><span class='pprice'>Rs. "+ item.purchase_price +"</span><div>"
+ "<div class='typeahead_secondary'>Code: "+ item.code +" / SKU: " + item.sku + "</div>"
+ "</div>"
+ "</div>";
return itm;
},
ajax: {
url: "<?php echo base_url('items/suggest_json');?>",
timeout: 500,
item: '<li><a href="#"></a><p>fgfg</p></li>' ,
scrollBar: true,
valueField: "id",
displayField: "name",
triggerLength: 1,
method: "get",
loadingClass: "loading-circle",
preDispatch: function (query) {
//showLoadingMask(true);
return {
search: query
}
},
preProcess: function (data) {
//showLoadingMask(false);
if (data.success === false) {
// Hide the list, there was some error
return false;
}
// We good!
items = data.results;
return data.results;
}
}
});
function add_order_item(item_id){
alert(item_id);
</script>
[/sourcecode]
[sourcecode language="javascript"]
<script type="text/javascript">
var items;
$("#search_item").typeahead({
onSelect: function(item) {
add_order_item(item.value);
},
updater: function (item) {
return item;
},
highlighter: function(name){
var item = _.find(items, function (c) {
return c.name == name;
});
var itm = ''
+ "<div class='typeahead_wrapper'>"
+ "<div class='typeahead_labels'>"
+ "<div class='typeahead_primary'><span class='pname'>" + item.name + "</span></div>"
+ "<div class='typeahead_secondary'><span class='pprice'>Rs. "+ item.purchase_price +"</span><div>"
+ "<div class='typeahead_secondary'>Code: "+ item.code +" / SKU: " + item.sku + "</div>"
+ "</div>"
+ "</div>";
return itm;
},
ajax: {
url: "<?php echo base_url('items/suggest_json');?>",
timeout: 500,
item: '<li><a href="#"></a><p>fgfg</p></li>' ,
scrollBar: true,
valueField: "id",
displayField: "name",
triggerLength: 1,
method: "get",
loadingClass: "loading-circle",
preDispatch: function (query) {
//showLoadingMask(true);
return {
search: query
}
},
preProcess: function (data) {
//showLoadingMask(false);
if (data.success === false) {
// Hide the list, there was some error
return false;
}
// We good!
items = data.results;
return data.results;
}
}
});
function add_order_item(item_id){
alert(item_id);
</script>
[/sourcecode]
Wednesday, May 20, 2015
DataTables Server Side Processing with CodeIgniter
[caption id="attachment_1101" align="aligncenter" width="273"]
DataTables[/caption]
In this tutorial, we will see how to use popular dataTables with CodeIgniter framework. Note that, pagination is done in client side for this tutorial. Hence this example is not ideal for a big data set. Handling pagination in server side will be discussed in a future tutorial.
Table format
[sourcecode language="html"]
<th>Need identified thru</th>
<th>Total Estimate</th>
<th class="no-sort"></th>
<th class="no-sort"></th>
</tr>
</thead>
</table>
[/sourcecode]
Initializing and fetching data with ajax
[sourcecode language="javascript"]
<script>
$(document).ready(function() {
$('#dataTables').dataTable({
"ajax": "<?php echo base_url('test/get_json'); ?>",
"pageLength": <?php echo $this->config->item('results_per_page'); ?>,
"order": [[ 0, "desc" ]],
"aoColumnDefs": [
{ "bVisible": false, "aTargets": [0] },
{
"bSortable": false,
"aTargets": ["no-sort"]
}],
"dom": 'T<"clear">lfrtip',
tableTools: {
"sSwfPath": "<?php echo base_url("plugins/data_tables/extensions/TableTools/swf/copy_csv_xls_pdf.swf"); ?>"
}
});
});
</script>
[/sourcecode]
Test Controller
[sourcecode language="php"]
class Test extends CI_Controller {
public function get_json() {
$this->load->model('test_model');
$results = $this->test_model->load_grid();
$data = array();
foreach ($results as $r) {
array_push($data, array(
$r['rname'],
$r['year'],
$r['mname'],
$r['need'],
$r['total_cost'],
anchor('test/view/' . $r['id'], 'View'),
anchor('test/edit/' . $r['id'], 'Edit')
));
}
echo json_encode(array('data' => $data));
}
}
[/sourcecode]
Model
[sourcecode language="php"]
class Test_model extends CI_Model {
public function load_grid() {
$this->db->select("$this->tbl_urgent_needs.unid,$this->tbl_urgent_needs.year,$this->tbl_urgent_needs.needi,$this->tbl_urgent_needs.total_cost,$this->tbl_maintenance_type.name AS mname,$this->tbl_roads.name AS rname");
$this->db->from("$this->tbl_urgent_needs");
$this->db->join("$this->tbl_roads", "$this->tbl_roads.rid = $this->tbl_urgent_needs.rd_id");
$this->db->join("$this->tbl_maintenance_type", "$this->tbl_maintenance_type.id = $this->tbl_urgent_needs.maint_type_id", "left");
$this->db->order_by("$this->tbl_urgent_needs.unid", 'ASC');
$query = $this->db->get();
return $query->result_array();
}
}
[/sourcecode]
DataTables[/caption]In this tutorial, we will see how to use popular dataTables with CodeIgniter framework. Note that, pagination is done in client side for this tutorial. Hence this example is not ideal for a big data set. Handling pagination in server side will be discussed in a future tutorial.
Table format
[sourcecode language="html"]
<th>Need identified thru</th>
<th>Total Estimate</th>
<th class="no-sort"></th>
<th class="no-sort"></th>
</tr>
</thead>
</table>
[/sourcecode]
Initializing and fetching data with ajax
[sourcecode language="javascript"]
<script>
$(document).ready(function() {
$('#dataTables').dataTable({
"ajax": "<?php echo base_url('test/get_json'); ?>",
"pageLength": <?php echo $this->config->item('results_per_page'); ?>,
"order": [[ 0, "desc" ]],
"aoColumnDefs": [
{ "bVisible": false, "aTargets": [0] },
{
"bSortable": false,
"aTargets": ["no-sort"]
}],
"dom": 'T<"clear">lfrtip',
tableTools: {
"sSwfPath": "<?php echo base_url("plugins/data_tables/extensions/TableTools/swf/copy_csv_xls_pdf.swf"); ?>"
}
});
});
</script>
[/sourcecode]
Test Controller
[sourcecode language="php"]
class Test extends CI_Controller {
public function get_json() {
$this->load->model('test_model');
$results = $this->test_model->load_grid();
$data = array();
foreach ($results as $r) {
array_push($data, array(
$r['rname'],
$r['year'],
$r['mname'],
$r['need'],
$r['total_cost'],
anchor('test/view/' . $r['id'], 'View'),
anchor('test/edit/' . $r['id'], 'Edit')
));
}
echo json_encode(array('data' => $data));
}
}
[/sourcecode]
Model
[sourcecode language="php"]
class Test_model extends CI_Model {
public function load_grid() {
$this->db->select("$this->tbl_urgent_needs.unid,$this->tbl_urgent_needs.year,$this->tbl_urgent_needs.needi,$this->tbl_urgent_needs.total_cost,$this->tbl_maintenance_type.name AS mname,$this->tbl_roads.name AS rname");
$this->db->from("$this->tbl_urgent_needs");
$this->db->join("$this->tbl_roads", "$this->tbl_roads.rid = $this->tbl_urgent_needs.rd_id");
$this->db->join("$this->tbl_maintenance_type", "$this->tbl_maintenance_type.id = $this->tbl_urgent_needs.maint_type_id", "left");
$this->db->order_by("$this->tbl_urgent_needs.unid", 'ASC');
$query = $this->db->get();
return $query->result_array();
}
}
[/sourcecode]
Tuesday, May 5, 2015
Sunday, April 12, 2015
ASP.Net Bulk Insert Excel Data using SqlBulkCopy
This code sample is for a Excel Import programmatically into SQL Server database.
Important points to note.
Excel format:
.aspx page
Code Behind File
[sourcecode language="csharp"]
protected void ImportExcel(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
// SQL Server Connection String
string sqlConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["flexi_stocky"].ConnectionString;
// Bulk Copy to SQL Server
SqlBulkCopy bulkInsert = new SqlBulkCopy(sqlConnectionString);
try
{
string path = string.Concat(Server.MapPath("~/uploads/" + FileUpload1.FileName));
FileUpload1.SaveAs(path);
// Connection String to Excel Workbook
string excelConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0", path);
OleDbConnection connection = new OleDbConnection();
connection.ConnectionString = excelConnectionString;
OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
connection.Open();
// Create DbDataReader to Data Worksheet
DbDataReader dr = command.ExecuteReader();
bulkInsert.DestinationTableName = "your_sqlTableName";
bulkInsert.WriteToServer(dr);
bulkInsert.Close();
//Show success
}
catch (Exception ex)
{
bulkInsert.Close();
//Show error
}
}
else
{
//File not set
}
}
[/sourcecode]
Important points to note.
- Use excel data in a single sheet.
- The excel file format should match the table schema.
Excel format:
| Id | Name | Description | CreatedAt | CreatedBy | ModifiedAt | ModifiedBy | Enabled | Deleted |
.aspx page
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Import" CssClass="btn btn-warning" OnClick="ImportExcel" />
Code Behind File
[sourcecode language="csharp"]
protected void ImportExcel(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
// SQL Server Connection String
string sqlConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["flexi_stocky"].ConnectionString;
// Bulk Copy to SQL Server
SqlBulkCopy bulkInsert = new SqlBulkCopy(sqlConnectionString);
try
{
string path = string.Concat(Server.MapPath("~/uploads/" + FileUpload1.FileName));
FileUpload1.SaveAs(path);
// Connection String to Excel Workbook
string excelConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0", path);
OleDbConnection connection = new OleDbConnection();
connection.ConnectionString = excelConnectionString;
OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
connection.Open();
// Create DbDataReader to Data Worksheet
DbDataReader dr = command.ExecuteReader();
bulkInsert.DestinationTableName = "your_sqlTableName";
bulkInsert.WriteToServer(dr);
bulkInsert.Close();
//Show success
}
catch (Exception ex)
{
bulkInsert.Close();
//Show error
}
}
else
{
//File not set
}
}
[/sourcecode]
Saturday, April 11, 2015
How to use Sessions in Web Services ASP.Net
Using sessions in web services is little different from its normal usage. Here we can not access sessions with Session as in Page methods. Instead we use HttpContext.Current.Session.
Sessions should be enabled for web methods.
A sample code snippet would be as follows.
[sourcecode language="csharp"]
/// Summary description for ReceivingService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class ReceivingService : System.Web.Services.WebService
{
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Dictionary<string, object> removeItem(int Id)
{
var response = new Dictionary<string, object>();
bool found = false;
if ( HttpContext.Current.Session["rec_cart"] != null)
{
List<CartItem> cartItems = (List<CartItem>)Session["rec_cart"];
if (cartItems.Count > 0)
{
foreach(var item in cartItems){
if(item.Id == Id){
cartItems.Remove(item);
HttpContext.Current.Session["rec_cart"] = cartItems;
found = true;
break;
}
}
}
}
if (found)
{
response["status"] = true;
response["total"] = GetGrandTotal();
}
else
{
response["status"] = false;
}
return response;
}
}
[/sourcecode]
I also configured cookieless sessions in web.config to get web service call properly routed.
Sessions should be enabled for web methods.
A sample code snippet would be as follows.
[sourcecode language="csharp"]
/// Summary description for ReceivingService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class ReceivingService : System.Web.Services.WebService
{
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Dictionary<string, object> removeItem(int Id)
{
var response = new Dictionary<string, object>();
bool found = false;
if ( HttpContext.Current.Session["rec_cart"] != null)
{
List<CartItem> cartItems = (List<CartItem>)Session["rec_cart"];
if (cartItems.Count > 0)
{
foreach(var item in cartItems){
if(item.Id == Id){
cartItems.Remove(item);
HttpContext.Current.Session["rec_cart"] = cartItems;
found = true;
break;
}
}
}
}
if (found)
{
response["status"] = true;
response["total"] = GetGrandTotal();
}
else
{
response["status"] = false;
}
return response;
}
}
[/sourcecode]
I also configured cookieless sessions in web.config to get web service call properly routed.
<sessionState cookieless="true" regenerateExpiredSessionId="true" timeout="100"/>
Saturday, March 21, 2015
Add Default Item to DropDownList Dynamically
How to add a default item as 'N/A' to drop down list and set selected?
[sourcecode language="csharp"]
gnList.DataSourceID = "GNDS";
gnList.DataTextField = "Name";
gnList.DataValueField = "Id";
gnList.DataBind();
gnList.Items.Insert(0, new ListItem("N/A", "0"));
[/sourcecode]
Another way
[sourcecode language="csharp"]
gnList.Items.Add(new ListItem("N/A", "0"));
gnList.DataSourceID = "GNDS";
gnList.DataTextField = "Name";
gnList.DataValueField = "Id";
gnList.DataBind();
gnList.Items.FindByValue("0").Selected = true;
[/sourcecode]
[sourcecode language="csharp"]
gnList.DataSourceID = "GNDS";
gnList.DataTextField = "Name";
gnList.DataValueField = "Id";
gnList.DataBind();
gnList.Items.Insert(0, new ListItem("N/A", "0"));
[/sourcecode]
Another way
[sourcecode language="csharp"]
gnList.Items.Add(new ListItem("N/A", "0"));
gnList.DataSourceID = "GNDS";
gnList.DataTextField = "Name";
gnList.DataValueField = "Id";
gnList.DataBind();
gnList.Items.FindByValue("0").Selected = true;
[/sourcecode]
Subscribe to:
Posts (Atom)
How to enable CORS in Laravel 5
https://www.youtube.com/watch?v=PozYTvmgcVE 1. Add middleware php artisan make:middleware Cors return $next($request) ->header('Acces...
-
Today we are going to build another restful web service in eclipse using gson library. When client makes a request, the application queries ...
-
I have already written several posts regarding Android database applications. This post might be similar to those tuts. However this is more...