Generated by All in One SEO v4.9.3, this is an llms.txt file, used by LLMs to index the site. # Adam Anderly Husband, Father, Developer ## Sitemaps - [XML Sitemap](https://anderly.com/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [Laravel User Timezone Aware Trait](https://anderly.com/2017/12/21/laravel-user-timezone-aware-trait/) - Next up in the series on useful Laravel model traits is the `UserTimezoneAware` Trait. This trait is useful when you have dates on models that you need to display in the user's timezone. ```php // app\Traits\UserTimezoneAware.php namespace App\Traits; trait UserTimezoneAware { /** * The attribute name containing the timezone (defaults to "timezone"). * * @var - [Useful Laravel Model Traits: Gravatar](https://anderly.com/2016/09/09/useful-laravel-traits-gravatar/) - Starting a little series here on useful Laravel model traits. This first one I use quite often. // app\Traits\HasGravatar.php namespace App\Traits; trait HasGravatar { /** * The attribute name containing the email address. * * @var string */ public $gravatarEmail = 'email'; /** * Get the model's gravatar * * @return string */ public function - [Cross-Cutting Concerns with MediatR Pipeline Behaviors](https://anderly.com/2019/12/12/cross-cutting-concerns-with-mediatr-pipeline-behaviors/) - I've recently been exploring MediatR Pipeline Behaviors and cross-cutting concerns (logging, validation, security, transactions) but also wanted to tackle some performance and resilience scenarios that may not always apply to every request/command (retry, fallback and caching). Here are some gists that tackle these concerns: Caching Behavior (using ASP.NET Core IDistributedCache): For caching, I'm using a - [Gravity Forms + Microsoft Dynamics CRM](https://anderly.com/2015/09/02/gravity-forms-microsoft-dynamics-crm/) - I've been hard at work on a brand new WordPress plugin that brings you easy web-to-lead and web-to-contact forms for Microsoft Dynamics CRM through the powerful Gravity Forms plugin for WordPress. At my company, Saint Systems, we have a non-profit client that uses Office 365 and Microsoft Dynamics CRM plus WordPress for their front-end website. Initially - [New WordPress Plugin: WooCommerce MailChimp](https://anderly.com/2013/10/09/woocommerce-mailchimp/) - After a frustrating and fruitless search for a simple and free solution to basic WooCommerce integration with MailChimp, I decided to sit down and write a little plugin to do just that. There are a couple of paid solutions, but, in my opinion, most are overpriced for providing such vanilla functionality. Also, it seems this - [ASP.NET MVC, Dependency Injection and The Bliss of Truly Decoupled Applications](https://anderly.com/2010/11/09/asp-net-mvc-dependency-injection-and-the-bliss-of-truly-decoupled-applications/) - In traditional software and web applications application layering is one of the tenets of good application design and architecture. It stems from the separation of concerns principle in computer science which is the process of separating applications and programs into distinct features that overlap in functionality as little as possible. Hence, the single responsibility principle - [Why Microsoft Developers Should Care About Node.js](https://anderly.com/2012/07/06/why-microsoft-developers-should-care-about-node-js/) - I've been a Microsoft developer since I started programming straight out of college and I know there are many others out there just like me. It's been a comfortable space that has grown steadily over the past 10+ years. However, in the last 3-5 years or so, I branched out of my Microsoft comfort zone - [Create your own branded url-shortener in under 10 minutes using ASP.NET MVC 2](https://anderly.com/2010/06/10/create-your-own-branded-url-shortener-in-under-10-minutes-using-asp-net-mv2/) - These days, URL shortener services like bit.ly are a dime a dozen. However, the latest craze are branded, shortened URLs like amzn.to or nyti.ms. You've probably seen URLs like these floating around Twitter, Facebook, etc. Why not have your very own in under 10 minutes? - [Laravel Transformable - An Eloquent Model Trait for Consumable Models](https://anderly.com/2016/09/08/laravel-transformable-a-model-trait-for-consumable-models/) - In working on a new Laravel-based REST API over an existing database, I quickly realized the need to shield API consumers from my underlying database structure, especially since I knew the structure would be changing. This is a common concern in API design and many times I would turn to creating DTOs (Data Transfer Objects) - [DNS from the command line: dnsimple-cli for Node.js](https://anderly.com/2014/10/27/dns-from-the-command-line-dnsimple-cli-for-node-js/) - Too busy to do a full write-up now, but I'm working on a new Node.js dnsimple-cli package based on azure-cli. Of course, it starts with ASCII art: After logging in, you can do something like this: dnsimple domain list And, you'll get: Initially, the command structure I've stubbed out is as follows (subject to change): - [WooCommerce MailChimp 1.2 Released](https://anderly.com/2014/01/10/woocommerce-mailchimp-1-2-released/) - WooCommerce MailChimp version 1.2 is now available on the WordPress Plugin Repository which brings enhancements to provide even greater control over the opt-in settings to better support international laws. There were also a couple of changes to better support i18n (Internationalization) support and localization as well as a minor change to append interest groups to existing MailChimp - [WooCommerce MailChimp Update](https://anderly.com/2014/01/08/woocommerce-mailchimp-update/) - WooCommerce MailChimp will soon surpass the 3,500 download mark after just under 3 months on the WordPress Plugin Repository. The response has been incredible, interest has been steadily gaining and many users have provided very constructive feedback, comments and suggestions. As such, I felt an update was in order to make you aware of what's - [WooCommerce MailChimp 1.1 Released](https://anderly.com/2013/11/12/woocommerce-mailchimp-1-1-released/) - The response has been huge to my WooCommerce MailChimp plugin but there have been quite a few international users who haven't been able to use it due to laws requiring the ability for customers to explicitly opt-in to the email list during checkout vs. the default behavior of automatically subscribing customers to the list after making - [WooCommerce MailChimp WordPress plugin now on MailChimp Integrations Directory](https://anderly.com/2013/10/24/woocommerce-mailchimp-wordpress-plugin-now-on-mailchimp-integrations-directory/) - Quick Update: MailChimp users can now find the WooCommerce MailChimp WordPress plugin on the MailChimp Integrations Directory. To find out more about the WooCommerce MailChimp WordPress plugin, see the plugin page or download it from the WordPress Plugin Directory. - [New WordPress Plugin: Wistia Responsive](https://anderly.com/2013/10/24/wistia-responsive/) - Wistia Responsive is a simple and straightforward WordPress plugin I developed while working on the website for the New Saint Thomas Institute (NSTI) that automatically makes all of your Wistia video embeds responsive. Problem: On the NSTI site, we have lots of video content and we're using a responsive theme because we know that many of the - [Expansive - A powerful string expansion library for .NET you never knew you always wanted.](https://anderly.com/2011/10/13/expansive-a-powerful-string-expansion-library-for-dotnet-you-never-knew-you-always-wanted/) - Expansive having a capacity or tendency to expand. causing or tending to cause expansion characterized by richness, abundance or magnificence While working on a recent project involving lots of appSettings keys and values in my web.config/app.config files and some values that have overlapping information (server names, file paths, etc.), I realized how much I missed - [To round 'up', or to round 'down': that is the question](https://anderly.com/2009/07/28/to-round-up-or-to-round-down-that-is-the-question/) - /// /// Implements alternate rounding methods, in contrast to Decimal.Round() /// and Math.Round(), which implement banker's rounding (5 rounds to even). /// See http://support.microsoft.com/?kbid=196652 for other methods. /// public sealed class Accounting { /// /// Rounds using arithmetic (5 rounds up) symmetrical (up is away from zero) rounding /// /// - [Sublime Text 2/Textmate port of studiostyl.es "Son of Obsidian" theme for Visual Studio](https://anderly.com/2013/02/15/sublime-text-2textmate-port-of-studiostyl-es-son-of-obsidian-theme-for-visual-studio/) - I've been a fan of the popular Son of Obsidian theme for Visual Studio since it came out a couple of years ago. However, I've found myself using Sublime Text 2 more and more because it's lightweight, fast and has some great features that almost make it full like a full IDE without the bulk. However, I missed - [Status of SimpleMembership.Mvc3 and SimpleMembership.Mvc3.Sample](https://anderly.com/2012/03/09/status-of-simplemembership-mvc3-and-simplemembership-mvc3-sample/) - I have received a couple of questions and requests over the past 6 months or so regarding my plans to update both the SimpleMembership.Mvc3 and SimpleMembership.Mvc3.Sample packages. In short, I'm planning on updating these but I just haven't gotten to it yet. I've been very busy lately with some other projects such as Expansive and - [Expansive 1.5 Released](https://anderly.com/2011/10/14/expansive-1-5-released/) - Yesterday, I blogged about my new .NET string expansion library called Expansive. Today, I made some key changes to, hopefully, make it easier to use and more flexible by providing 4 token style format providers out of the box. Removed the startToken and endToken delimiters that could be set by the consumer as this was - [Using SimpleMembership in MVC3](https://anderly.com/2011/08/11/using-simplemembership-in-mvc3/) - I have received a couple of questions over the past few weeks regarding how to properly get SimpleMembership to work with an MVC3 application. While it is pretty straightforward, the purpose of this post is to serve as a step-by-step "How To" setup SimpleMembership with an MVC 3 application from start to finish. The - [SimpleMembership.Mvc3 - 1.1 Published](https://anderly.com/2011/05/18/simplemembership-mvc3-1-1-published/) - If you're unfamiliar with SimpleMembership.Mvc3, please see this post. Update: May 18, 2011 - Version 1.1 published to NuGet.org This includes: Minor fix to WebSecurityService to address bug reported by Phil Haack. Added assembly reference to web.config.transform to reference WebMatrix.Data. Some users have reported exceptions being thrown trying to reference that namespace. New SimpleMembershipAccountController which - [SimpleMembership.Mvc3 NuGet Package](https://anderly.com/2011/01/18/simplemembership-mvc3-nuget-package/) - SimpleMembership.Mvc3 - 1.0 Enables the SimpleMembership API from WebMatrix/WebPages (i.e. WebSecurity) to be used with ASP.NET MVC3. This allows you to use the WebSecurity helper found in the WebMatrix.WebData namespace. Update: February 28, 2011 - Version 1.0 released This includes: The App_Start convention from David Ebbo's post. An updated dependency on WebActivator 1.3.2 or greater (This allows - [Silverlight Midpoint Rounding Solution](https://anderly.com/2009/08/08/silverlight-midpoint-rounding-solution/) - As a follow up to my previous Shakespearean-titled post on rounding, I decided to provide a quick follow up to provide a solution for midpoint rounding in Silverlight. Based on some traffic that I've been getting it looks like people are searching for a rounding solution in Silverlight since the Silverlight core framework lacks the - [Recreating the MobileMe Gallery in Silverlight - Part 1 *Updated*](https://anderly.com/2010/07/01/recreating-the-mobileme-gallery-in-silverlight-part-1-updated/) - Originally, in Part 1 of my soon-to-be multi-part series on recreating the MobileMe Gallery in Silverlight I used a separate WCF project (under .NET 3.5) to create my Gallery Service to serve as a proxy between my Silverlight client and the Apple MobileMe service that provides MobileMe Gallery data in JSON format. Since then, I - [Recreating the MobileMe Gallery in Silverlight 3](https://anderly.com/2009/07/23/recreating-the-mobileme-gallery-in-silverlight-3/) - Background: Even though I am an avid fan of many Microsoft products (especially their developer tools), Apple has just done certain things "right" for the home user where it seems Microsoft has struggled or been late to the table. As you may have read on my About Me page, I use Macs at home. They - [Silverlight MobileMe Gallery now on CodePlex!](https://anderly.com/2009/11/24/silverlight-mobileme-gallery-now-on-codeplex/) - I have published the initial source for my project "Recreating the MobileMe Gallery in Silverlight 3" on CodePlex. You can now access the Alpha release of the code here: http://silverlightmobileme.codeplex.com/ I will be updating I have updated the working example (http://gallery.restazured.com/emily_parker) as well to reflect the latest version on CodePlex. Please leave your comments and - [Recreating the MobileMe Gallery in Silverlight 3 - Part 1](https://anderly.com/2009/10/21/recreating-the-mobileme-gallery-in-silverlight-3-part-1/) - In my introductory post I detailed the features needed to successfully recreate the MobileMe Gallery in Silverlight 3. While a bit late, this is Part 1 of a multi-part series where I will detail out step-by-step the process of Recreating the MobileMe Gallery in Silverlight 3. The Tools I will assume you already know what - [Welcome to Rest Azured!](https://anderly.com/2009/03/21/welcome-to-rest-azured/) - Since everyone and their mother is talking about REST these days and the fact that Microsoft's latest big bet is Windows Azure, I decided "Rest Azured" was a good name for my new blog. I chose "Rest Azured" because it was catchy, technically relevant, and the domain was available :-) . The name by no ## Pages - [About Me](https://anderly.com/about/) - John Kruk, former Major League Baseball Player, was smoking a cigarette on his way to his car after a baseball game when a woman (who was waiting with her son for an autograph) said to him, "You shouldn't be smoking, you're an athlete." John replied, "Lady, I'm not an athlete, I'm a baseball player." Likewise, I've been - [Purchase Confirmation](https://anderly.com/purchase-confirmation/) - Thank you for your purchase! [edd_receipt] - [Transaction Failed](https://anderly.com/checkout/transaction-failed/) - Your transaction failed, please try again or contact site support. - [Purchase History](https://anderly.com/checkout/purchase-history/) - [purchase_history] - [Checkout](https://anderly.com/checkout/) - [download_checkout] - [Contact](https://anderly.com/contact/) - [Blog](https://anderly.com/blog/) - [Archives](https://anderly.com/archives/) - [cleanarchivesreloaded] ## Categories - [Uncategorized](https://anderly.com/category/uncategorized/) - [.NET](https://anderly.com/category/net/) - [Node.js](https://anderly.com/category/node-js/) - [WordPress](https://anderly.com/category/wordpress/) - [WordPress Plugins](https://anderly.com/category/wordpress-plugins/) - [Silverlight](https://anderly.com/category/silverlight/) - [REST](https://anderly.com/category/rest/) - [ASP.NET MVC](https://anderly.com/category/asp-net-mvc/) - [Dependency Injection](https://anderly.com/category/dependency-injection/) - [NuGet](https://anderly.com/category/nuget/) - [PHP](https://anderly.com/category/php/) - [Laravel](https://anderly.com/category/laravel/) - [Laravel Traits](https://anderly.com/category/laravel-traits/) - [ASP.NET Core](https://anderly.com/category/asp-net-core/) - [MediatR](https://anderly.com/category/mediatr/) ## Tags - [REST](https://anderly.com/tag/rest/) - [Azure](https://anderly.com/tag/azure/) - [Silverlight](https://anderly.com/tag/silverlight/) - [iPhone](https://anderly.com/tag/iphone/) - [Rounding](https://anderly.com/tag/rounding/) - [MobileMe](https://anderly.com/tag/mobileme/) - [ASP.NET MVC](https://anderly.com/tag/asp-net-mvc/) - [Dependency Injection](https://anderly.com/tag/dependency-injection/) - [VS2010](https://anderly.com/tag/vs2010/) - [NuGet](https://anderly.com/tag/nuget/) - [SimpleMembership](https://anderly.com/tag/simplemembership/) - [Expansive](https://anderly.com/tag/expansive/) - [sublime-text-2](https://anderly.com/tag/sublime-text-2/) - [MailChimp](https://anderly.com/tag/mailchimp/) - [WooCommerce](https://anderly.com/tag/woocommerce/) - [Wistia](https://anderly.com/tag/wistia/) - [dnsimple](https://anderly.com/tag/dnsimple/) - [dns](https://anderly.com/tag/dns/) - [cli](https://anderly.com/tag/cli/) - [Gravity Forms](https://anderly.com/tag/gravity-forms/) - [Microsoft Dynamics CRM](https://anderly.com/tag/microsoft-dynamics-crm/) - [CRM](https://anderly.com/tag/crm/) - [Dynamics](https://anderly.com/tag/dynamics/) - [Dynamics CRM](https://anderly.com/tag/dynamics-crm/) - [.NET](https://anderly.com/tag/net/) - [Node.js](https://anderly.com/tag/node-js/) - [WordPress](https://anderly.com/tag/wordpress/) - [WordPress Plugins](https://anderly.com/tag/wordpress-plugins/) - [PHP](https://anderly.com/tag/php/) - [Laravel](https://anderly.com/tag/laravel/) - [APIs](https://anderly.com/tag/apis/) - [Laravel Traits](https://anderly.com/tag/laravel-traits/) - [MediatR](https://anderly.com/tag/mediatr/) - [ASP.NET Core](https://anderly.com/tag/asp-net-core/) - [Scrutor](https://anderly.com/tag/scrutor/) - [Polly](https://anderly.com/tag/polly/) - [Caching](https://anderly.com/tag/caching/) - [Retry](https://anderly.com/tag/retry/) - [Fallback](https://anderly.com/tag/fallback/)