Undo pending changes from a specific user account


If you want to undo some changes from a specific user, you can use:


Change directory to folder containing "tf.exe"
    • cd "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE"

Check the status of checked out files, to see correct "account"
    • tf status "$/TFS/Path/To/Folder/To/Search/For/Pending/Changes" /s: /u:* /recursive /format:detailed

Undo pending changes
    • tf undo /workspace:"S001";MyDomain\myUserName "$/TFS/Path/To/Folder/To/Search/For/Pending/Changes" /recursive

Server side resource rendering with Angular and ASP .NET MVC: pass data from html to controller.

I wanted a ASP .NET MVC view (*.cshtml) to render on the server and pass the static text contained in the the ASP .NET project resource file to an Angular controller, so on the initial page request, all static data is returned to the client. Dynamic data, like grid content would then be requested by a separate JSON call.

The resource data is passed to the Angular controller by using ng-init.


For the sake of this blog post I stuffed everything in one *.cshtml page, including CSS en JavaScript.

Of course this would be separate files in an real application.


Project resource file





<!DOCTYPE html> <html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="app"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Send initialization data from HTML to Angular controller</title> <style> /* Add some initial styling. */ html, body { background-color: #F1F1F1; font-family: "Open Sans", sans-serif; font-size: 13px; height: 100%; } body { margin: 20px; } [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { display: none !important; } </style> <!-- Library scripts --> <script src="https://code.angularjs.org/1.4.1/angular.min.js"></script> </head> <body ng-cloak> @RenderBody() <div> <div ng-controller="main" ng-init="resources={ textFromResource: '@WebApplication1.Properties.Resources.TextFromResource'}"> <h1>{{ title }}</h1> {{ resources.textFromResource }} </div> </div> <script> // Angular module. (function () { "use strict"; angular .module("app", []); }()); // Angular controller. (function () { "use strict"; function controller($scope) { $scope.title = "Show ASP .NET MVC resoure (*.resx) data to user on initial load."; } angular .module("app") .controller("main", ["$scope", controller]); }()); </script> </body> </html>





Using a recursive common table expression, to calculate totals and subtotals of children and grandchildren in a hierarchy

In SQL Server a common table expression can be used to calculate totals / subtotals of a table containing hierarchical data:


-- Create test data:
if object_id('tempdb..#Hierarchy') is not null
drop table #Hierarchy
create table #Hierarchy (
Id int not null,
ParentId int null,
Amount int not null
insert into #Hierarchy (Id, ParentId, Amount) values
(1, null, 100)
,    (2, 1, 100)
,   (3, 1, 100)
,   (4, 1, 100)
,   (5, 4, 100)
,   (6, 4, 100)
,   (7, 4, 100)
,   (8, 7, 100)
;with CTE (ParentId, Id, Amount, IsParent)
-- Add all records as "anchor", because foreach record we are going to calculate the total amount.
select    h.ParentId
,        h.Id
,        h.Amount
,        0 as IsParent
from    #Hierarchy h
union all
-- Recursively add parent records until root parent foreach record in "anchor".
select    h.ParentId
,        h.Id
,        h.Amount
,        1 as IsParent
from    CTE c
join    #Hierarchy h on c.ParentId = h.Id
select        c1.Id
,            c1.ParentId
,            sum(c1.Amount) as TotalAmount
,            case when sum(c1.IsParent) > 0 then 1 else 0 end as IsParent
from        CTE c1
group by    c1.Id, c1.ParentId



Filter SQL Server Profiler trace to only show queries send by specific machine / laptop


If you want to filet the SQL Server Profiler trace, so only queries send from your laptop are captured, just filter on HostName:



Enable “Show all events”

Enable “Show all columns”




Click on [Column Filters…]

“Select Column” [HostName]:



Enter the name of the “laptop”:



How to manually get Angular services in TypeScript

If you manually want to get / use Angular services in TypeScript you can use the following code:


/// <reference path="../libraries/angular/angular.d.ts" />
module app {
"use strict";
var appModule = angular.module("app", []);
var injector: angular.auto.IInjectorService = angular.injector(["ng"]);
var httpService: angular.IHttpService = injector.get("$http");
var qService: angular.IQService = injector.get("$q");

Fix favicon error

When there is no favicon.ico in the root of your website, then the browser will automatically get a 404 favicon error.
To prevent this error, you can add a transparent favicon.ico to the “head” tag of your HTML page:

<link rel="icon" href="data:;base64,iVBORw0KGgo=">