Elevate Your Visual Studio TODOs

I recently had an instance when making a hot fix where I left some unintended code behind.   This is a constant worry of mine – trying to not forget to remove a temporary value during a quick true-up, or maybe a clearing a change only meant locally, deleting tweaks never meant to be committed.  I tried diligently setting up TODOs, but with large solutions, it became impossible to discern between future todos and immediate todos.

The Fix: Warn About TODOs Extension

Visual Studio Extension: Warn About TODOs

Luckily, I found a Visual Studio tool for this:  Warn About TODOs. This handy extension lets you flag your TODOs with varying degrees of severity and puts each in your error list, making them harder to miss.

Continue Reading

Making Session Variables Work in .NET Core

The Problem

As noted, I work with Legacy and often have to bring in variables from the API that must be sustained across session.. (and I’m sure there might be a better way, comment and advise!).  Where I am at now, is I query the API and bring in the variables, but how do I keep from calling these over and over?  The old solution was session variables and so, that’s where I am at.

When I started to do this on Core, the most helpful article was this (and it’s in my comments):

https://adamstorr.azurewebsites.net/blog/are-you-registering-ihttpcontextaccessor-correctly

He leads you through the basic setup of a HttpContext helper class (that I still use today) and how to configure the startup..  Today, though, I came across a problem: I was able to Set session variables, but the Get was pulling null.

The Reason

Order.  Yes, you’ll see 1000 stackflow responses about order in Configure (and I was careful to do this in that method), but now in ConfigureServices (contrary to the example, as I am now using Core 2.2?), order again comes into play:

public void ConfigureServices(IServiceCollection services)
{
    //this MUST be before add mvc or session returns null
    services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
    services.AddMvc();

Identify It

How does the error present itself?  Debugging looks great, queries to API fine, setting session (cookies) fine,  result unexpected, but..  no errors.  Trace your Get.  My Session.GetString was pulling null.

Solution

Switch order  in ConfigureServices and all was fine.

 

 

 

Continue Reading

Print PDF’s on Azure Using an API and RazorLight

The Problem

I recently had an issue with printing a report to PDF using Microsoft Reporting Service and a RDLC file, etc. Something similar to this. Unfortunately, it worked great in development, but refused to work once deployed into Azure. No matter what I did, I could not duck the GDI errors I kept getting, and apparently this continues through a line of various PDF exporting extensions, all of which rely on GDI for export. Turns out, I’m not alone in facing this problem and so, I decided to find a solution.

The Solution

My general idea was to use something to render my PDF view, send that view as one long html string to a free PDF microservice and get the PDF in return.

Continue Reading