<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Chris Fleischhacker</title>
    <description>The latest articles on DEV Community by Chris Fleischhacker (@cfleischhacker).</description>
    <link>https://dev.to/cfleischhacker</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65365%2Fcb692b01-83c7-4814-9aae-a8e8fd048bc1.jpg</url>
      <title>DEV Community: Chris Fleischhacker</title>
      <link>https://dev.to/cfleischhacker</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cfleischhacker"/>
    <language>en</language>
    <item>
      <title>Amusing…</title>
      <dc:creator>Chris Fleischhacker</dc:creator>
      <pubDate>Tue, 27 Mar 2018 18:58:01 +0000</pubDate>
      <link>https://dev.to/cfleischhacker/amusing-22p7</link>
      <guid>https://dev.to/cfleischhacker/amusing-22p7</guid>
      <description>&lt;p&gt;Visual Studio 2017, File, New Project, JavaScript, Node.js, OK, F5…&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lXUnverc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://chrisfleischhacker.files.wordpress.com/2018/03/microsoftvsnodethinksits1337.png%3Fw%3D646" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lXUnverc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://chrisfleischhacker.files.wordpress.com/2018/03/microsoftvsnodethinksits1337.png%3Fw%3D646" alt="MicrosoftVSNodeThinksIts1337"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>fyi</category>
    </item>
    <item>
      <title>Consume Volusion eStore API Using Meteor JS</title>
      <dc:creator>Chris Fleischhacker</dc:creator>
      <pubDate>Mon, 26 Mar 2018 16:30:10 +0000</pubDate>
      <link>https://dev.to/cfleischhacker/consume-volusion-estore-api-using-meteor-js-3fl7</link>
      <guid>https://dev.to/cfleischhacker/consume-volusion-estore-api-using-meteor-js-3fl7</guid>
      <description>

&lt;p&gt;The \server\main.js in this example performs an API call to your Volusion eStore, converts the response to JSON and inserts to MongoDB.&lt;/p&gt;

&lt;p&gt;The \client\main.js makes the call and displays the data from MongoDB.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;meteor create volusionapi&lt;/p&gt;

&lt;p&gt;cd volusionapi&lt;/p&gt;

&lt;p&gt;meteor add http peerlibrary:xml2js&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Copy these files &lt;a href="https://github.com/cjfleischhacker/MeteorVolusionAPI.git"&gt;https://github.com/cjfleischhacker/MeteorVolusionAPI.git&lt;/a&gt; or create these files:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;\client\main.html&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
`&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;
volusion&lt;br&gt;
&lt;br&gt;


&lt;h1&gt;Welcome to Meteor!&lt;/h1&gt;

&lt;p&gt;{{&amp;gt; vapi}}&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;h3&gt;List Courses&lt;/h3&gt;

&lt;p&gt;
{{errMessage}}
&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table class="table table-hover"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
{{#each courses}}
&lt;tr&gt;
&lt;td&gt;{{ProductID}}&lt;/td&gt;
&lt;td&gt;{{ProductCode}}&lt;/td&gt;
&lt;td&gt;{{ProductName}}&lt;/td&gt;
&lt;/tr&gt;
{{/each}}
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
`&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;\client\main.js&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;&lt;br&gt;
import { Template } from 'meteor/templating';&lt;br&gt;
import { ReactiveVar } from 'meteor/reactive-var';&lt;br&gt;
import './main.html';&lt;br&gt;
Courses = new Mongo.Collection('courses');&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Meteor.call(‘getJSONFromAPI’, function (err, res) {&lt;br&gt;&lt;br&gt;
if (err) {&lt;br&gt;&lt;br&gt;
console.log(err);&lt;br&gt;&lt;br&gt;
} else {&lt;br&gt;&lt;br&gt;
console.log(res.xmldata.Products);&lt;br&gt;&lt;br&gt;
}&lt;br&gt;&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;Template.vapi.onCreated(function helloOnCreated() {&lt;br&gt;&lt;br&gt;
console.log(‘oncreate…’);&lt;br&gt;&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;Template.vapi.helpers({&lt;br&gt;&lt;br&gt;
courses: function () {&lt;br&gt;&lt;br&gt;
return Courses.find();&lt;br&gt;&lt;br&gt;
}&lt;br&gt;&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;\server\main.js&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;&lt;br&gt;
import { Meteor } from 'meteor/meteor';&lt;br&gt;
import { xml2js } from 'meteor/peerlibrary:xml2js';&lt;br&gt;
Courses = new Mongo.Collection('courses');&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Meteor.methods({&lt;br&gt;&lt;br&gt;
‘getJSONFromAPI’: function () {&lt;br&gt;&lt;br&gt;
this.unblock();&lt;br&gt;&lt;br&gt;
var apiUrl = ‘&lt;a href="http://store.volusion.com/net/WebService.aspx?Login=email@mystore.com&amp;amp;EncryptedPassword=YourVolusionAPIEncryptedPassword&amp;amp;EDI_Name=Generic"&gt;http://store.volusion.com/net/WebService.aspx?Login=email@mystore.com&amp;amp;EncryptedPassword=YourVolusionAPIEncryptedPassword&amp;amp;EDI_Name=Generic&lt;/a&gt;\Products&amp;amp;SELECT_Columns=p.ProductCode,p.ProductName,pd.ProductDescription’&lt;/p&gt;

&lt;p&gt;;&lt;br&gt;&lt;br&gt;
var response = Meteor.wrapAsync(apiCall)(apiUrl);&lt;br&gt;&lt;br&gt;
const result = xml2js.parseStringSync(response, { explicitArray: false, emptyTag: undefined });&lt;br&gt;&lt;br&gt;
for (var i = 0; i &amp;lt; result.xmldata.Products.length; i++) {&lt;br&gt;&lt;br&gt;
Courses.insert(result.xmldata.Products[i]);&lt;br&gt;&lt;br&gt;
}&lt;br&gt;&lt;br&gt;
return result;&lt;br&gt;&lt;br&gt;
}&lt;br&gt;&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;var apiCall = function (apiUrl, callback) {&lt;br&gt;&lt;br&gt;
// try…catch allows you to handle errors&lt;br&gt;&lt;br&gt;
try {&lt;br&gt;&lt;br&gt;
var response = HTTP.get(apiUrl).content;&lt;br&gt;&lt;br&gt;
// A successful API call returns no error&lt;br&gt;&lt;br&gt;
callback(null, response);&lt;br&gt;&lt;br&gt;
} catch (error) {&lt;br&gt;&lt;br&gt;
// If the API responded with an error message and a payload&lt;br&gt;&lt;br&gt;
if (error.response) {&lt;br&gt;&lt;br&gt;
var errorCode = error.response.data.code;&lt;br&gt;&lt;br&gt;
var errorMessage = error.response.data.message;&lt;br&gt;&lt;br&gt;
// Otherwise use a generic error message&lt;br&gt;&lt;br&gt;
} else {&lt;br&gt;&lt;br&gt;
var errorCode = 500;&lt;br&gt;&lt;br&gt;
var errorMessage = ‘Cannot access the API’;&lt;br&gt;&lt;br&gt;
}&lt;br&gt;&lt;br&gt;
// Create an Error object and return it via callback&lt;br&gt;&lt;br&gt;
var myError = new Meteor.Error(errorCode, errorMessage);&lt;br&gt;&lt;br&gt;
callback(myError, null);&lt;br&gt;&lt;br&gt;
}&lt;br&gt;&lt;br&gt;
}&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;meteor&lt;/p&gt;
&lt;/blockquote&gt;


</description>
      <category>code</category>
      <category>fyi</category>
      <category>howto</category>
    </item>
    <item>
      <title>C# ASP.Net MVC API Web App Using Advanced DB Master as a Data Source</title>
      <dc:creator>Chris Fleischhacker</dc:creator>
      <pubDate>Tue, 13 Mar 2018 04:46:57 +0000</pubDate>
      <link>https://dev.to/cfleischhacker/c-aspnet-mvc-api-web-app-using-advanced-db-master-as-a-data-source-4ikg</link>
      <guid>https://dev.to/cfleischhacker/c-aspnet-mvc-api-web-app-using-advanced-db-master-as-a-data-source-4ikg</guid>
      <description>

&lt;p&gt;Been wondering how to build a C#, ASP.Net, MVC, API web app using ADBM (Advanced DB Master) data source on the back end?  You’re welcome.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/cjfleischhacker/ADBM.API"&gt;Demo source on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Install Advanced DB Master (ADBM) from &lt;a href="http://maconsys.com"&gt;http://maconsys.com&lt;/a&gt; then open the Sample database, ADBMSamp, and exit ADBM.&lt;/p&gt;

&lt;p&gt;ADBM added a System DSN ODBC datasource called adbmsamp to your OS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eFQIaC_S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://chrisfleischhacker.files.wordpress.com/2018/03/systemdsn.png%3Fw%3D646" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eFQIaC_S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://chrisfleischhacker.files.wordpress.com/2018/03/systemdsn.png%3Fw%3D646" alt="SystemDSN.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In Visual Studio, create a C# ASP.Net Framework or Core Web Application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7ByuumZm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://chrisfleischhacker.files.wordpress.com/2018/03/visualstudioproject.png%3Fw%3D646" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7ByuumZm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://chrisfleischhacker.files.wordpress.com/2018/03/visualstudioproject.png%3Fw%3D646" alt="VisualStudioProject.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And select Web API, leaving the MVC and Web API boxes checked.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W4KpRuzF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://chrisfleischhacker.files.wordpress.com/2018/03/webapi.png%3Fw%3D646" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W4KpRuzF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://chrisfleischhacker.files.wordpress.com/2018/03/webapi.png%3Fw%3D646" alt="WebAPI.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Optionally, you can add the data source as a database connection and work with it that way if you prefer, but that’s not necessary.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qRV1PesK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://chrisfleischhacker.files.wordpress.com/2018/03/databaseconnection.png%3Fw%3D646" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qRV1PesK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://chrisfleischhacker.files.wordpress.com/2018/03/databaseconnection.png%3Fw%3D646" alt="DatabaseConnection.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For our needs we’ll just need a connection string in the web.config:&lt;/p&gt;

&lt;p&gt;&amp;lt;connectionStrings&amp;gt;&lt;br&gt;&lt;br&gt;
&amp;lt;add name=”csADBMSamp” connectionString=”DSN=adbmsamp” /&amp;gt;&lt;br&gt;&lt;br&gt;
&amp;lt;/connectionStrings&amp;gt;&lt;/p&gt;


</description>
      <category>code</category>
      <category>fyi</category>
      <category>howto</category>
      <category>adbm</category>
    </item>
    <item>
      <title>PowerShell List Files Changed in the Last 7 Days</title>
      <dc:creator>Chris Fleischhacker</dc:creator>
      <pubDate>Thu, 08 Mar 2018 02:28:47 +0000</pubDate>
      <link>https://dev.to/cfleischhacker/powershell-list-files-changed-in-the-last-7-days-34ng</link>
      <guid>https://dev.to/cfleischhacker/powershell-list-files-changed-in-the-last-7-days-34ng</guid>
      <description>&lt;p&gt;$startingpath=”C:\”&lt;/p&gt;

&lt;p&gt;$startingdate=$(Get-Date).AddDays(-7)&lt;/p&gt;

&lt;p&gt;Get-Childitem $startingpath -Recurse | where-object {!($_.psiscontainer)} | where { $_.LastWriteTime -gt $startingdate } |  foreach {  Write-Host “$($_.LastWriteTime) :: $($_.Fullname) ”  }&lt;/p&gt;

&lt;h1&gt;
  
  
  OR
&lt;/h1&gt;

&lt;p&gt;foreach {Write-Output “$($_.LastWriteTime) :: $($_.Fullname) ” &amp;gt;&amp;gt; changedfiles.csv }&lt;/p&gt;

</description>
      <category>fyi</category>
    </item>
    <item>
      <title>PowerShell Edit Registry to FlipFlopWheel (Mouse Natural Scrolling)</title>
      <dc:creator>Chris Fleischhacker</dc:creator>
      <pubDate>Tue, 13 Feb 2018 22:30:23 +0000</pubDate>
      <link>https://dev.to/cfleischhacker/powershell-edit-registry-to-flipflopwheel-mouse-natural-scrolling-4fij</link>
      <guid>https://dev.to/cfleischhacker/powershell-edit-registry-to-flipflopwheel-mouse-natural-scrolling-4fij</guid>
      <description>&lt;h1&gt;
  
  
  View all registry entries with FlipFlopWheel
&lt;/h1&gt;

&lt;p&gt;Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Enum\HID**\Device` Parameters FlipFlopWheel -EA 0&lt;/p&gt;

&lt;h1&gt;
  
  
  Change the registry settings for each entry with FlipFlopWheel
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Reverse mouse wheel scroll FlipFlopWheel = 1
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Normal mouse wheel scroll FlipFlopWheel = 0
&lt;/h1&gt;

&lt;p&gt;Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Enum\HID**\Device` Parameters FlipFlopWheel -EA 0 | ForEach-Object { Set-ItemProperty $_.PSPath FlipFlopWheel 1 }&lt;/p&gt;

</description>
      <category>fyi</category>
    </item>
  </channel>
</rss>
