Code & Conquer

Techie blog of a wannabe Cyberpunk

Create Yozio SubLink using C#

If you need to read more about Yozio Sublink API, here is the documentation

Batch Convert PSD files to PNG Using Photoshop

Follow the steps to batch convert Photoshop Files (PSD) into PNG files.

Visual Studio 2015 - Open Old/Migrated Solution Creates Backup Folder Continuously

I was in the process of migrating over to Visual Studio 2015 from Visual Studio 2013. When I executed a local command line build, I received the following error.

How to Get Random Items from Array or List in C#

The simple way to get random item from an Array is to use the return value from, array.length) as index to get value from the array.

var randomIndex = random.Next(0, Array.Length);
The downside of the above code is it might return you item multiple times (repetition) as we don't keep track of items that we are getting from the source Array.

The easy approach is to consider Array as a deck of cards. We want the items to be 'shuffled' similar to a deck of cards, meaning avoiding any repetition. So we will use  a List<> for the source items, grab them at random and push them to a Stack<> to create the deck of items.

You can create a Stack from anything that is IEnumerable
var stack = new Stack(myList);

However, the stack constructor will be using a loop internally, you just don't see it. So for understanding the purpose I will use an example to create Stack with loop.

public static Stack CreateShuffledDeck(IEnumerable values) {

var random = new Random();  var list = new List(values); var stack = new Stack();  while (list.Count > 0) {  // Get the next item at random. var randomIndex = random .Next(0, list.Count); var randomItem = list[randomIndex];  // Remove the item from the list and push it to the top of the deck. list.RemoveAt(randomIndex); stack.Push(randomItem ); }  return stack; } 
Now we have a solution to create a Shuffled Deck. We can now get random items out using Stack.Pop method . Popping something from the stack means "taking the top 'thing'" off the stack.

public static string[] RandomArrayEntries(string[] arrayItems, int count) {
var listToReturn = new List();

if (arrayItems.Length != count) {
var deck = CreateShuffledDeck(arrayItems);

for (var i = 0; i < count; i++) {
var arrayItems= deck.Pop();
listToReturn .Add(item);

return listToReturn .ToArray();

return arrayItems;
We can execute the above code as following:

var countriesArray = new string[] { "Sweden", "Pakistan", "United Kingdom", "Denmark", "Norway", "Finland" };

var newRandomAraay = RandomArrayEntries(countriesArray, 3);


Change Default Font in Blogger

If you are tired of writing your blog posts in Times New Roman font and don't want to add bloated HTML by choosing the font and size from Blogger's post editor, this post is right place for you. The solution is simple if you know where to look. Below are two ways you can try.

How to get an HttpContextBase object from HttpContext.Current?

I was helping a friend to implement OAuth login for Facebook. He was using DotNetOpenAuth extensions for ASP.NET, downloaded as NuGet package.

Rendering ASP.NET MVC Views to HTML String

A common need I have in my ASP.NET MVC based projects is to render a complete "View" or "PartialView" to string instead of the HTTP response and then present it or embed it in another rendered view.

You can implement the following code in shared controller or preferably in base Controller so that you can access this function in all controllers across your project. You can access the ControllerContext within controller and pass it to the function. It will return the rendered view in HTML string, the usage is self-explanatory.