пятница, 17 февраля 2012 г.

TFS recover TFS Collection DB command

TFSConfig Recover /ConfigurationDB:tfsserver\SQLR2;Tfs_Configuration /CollectionDB:tfsserver\SQLR2;Tfs_collectionName

regex last \ in path replace with file prefix


            private string GenFileName(string SourceFile)
            {
                // last slash(\) replace with slash and file prifix (\TMP_)
                return Regex.Replace(SourceFile, @"\\(?=[^\\]*$)", @"\TMP_");
            }

четверг, 26 января 2012 г.

TFS TEE Changeset Diff Command Line Script


#!/bin/bash
# 1 - changeset number
clear

changeset=$1
changeset_m1=$((changeset-1))

echo "============================="
echo "changeset:"$changeset
echo "changeset-1:"$changeset_m1
echo "============================="

# 'tf -profile:max@max-desktop '$changeset
tf changeset -profile:max@max-desktop $changeset

regex=".*edit.*"
regexpath="\\$.*"

changesetcmd="tf changeset -profile:max@max-desktop "$changeset

echo "CMD:"$changesetcmd

echo "********************"

isItems="false"
tf changeset -profile:max@max-desktop $changeset | while read line
do
    if [ "$line" = "" ]; then
isItems="false"
    fi
    if [ "$isItems" = "true" ]; then

echo $line
if [[ $line =~ $regex ]]; then

[[ $line =~ $regexpath ]]
path="${BASH_REMATCH[0]}"
#echo "PATH:${BASH_REMATCH[0]}"
#echo "EDIT:"$line
echo "DIFF----"$path"---->"
tf diff "$path;C$changeset" "$path;C$changeset_m1" -workspace:max-desktop -profile:max@max-desktop
echo "<-DIFF"

fi

    fi  
    if [ "$line" = "Items:" ]; then
isItems="true"
    fi
done
echo "********************"
echo "finish"

пятница, 20 января 2012 г.

TFS Service Development: Set ChangedBy field for workitem


Case: You are developing service, that should change some WorkItems in Team Foundation Server.
Service should set field ChangedBy properly.


var collection1 = new TfsTeamProjectCollection(new Uri("http://tfs:8080/tfs/collection"));
collection1.EnsureAuthenticated();

var ims = collection1.GetService<IIdentityManagementService>();
var id = ims.ReadIdentity(IdentitySearchFactor.AccountName, "domain\\username"MembershipQuery.None, ReadIdentityOptions.None);

var collection = new TfsTeamProjectCollection(new Uri("http://tfs:8080/tfs/collection"), id.Descriptor);

-- OR --

WorkItem wi;
...
// Change Work Item
...
// Set ChangedBy Field
wi[CoreField.ChangedBy] = userName;
wi.Save();

понедельник, 5 декабря 2011 г.

WPF LinkButton



Add style to resources of the UserControl, where the (link)button is situated:

    <Style x:Key="LinkButton"
       TargetType="Button"
       BasedOn="{StaticResource ResourceKey={x:Type Button}}">
            <Setter Property="Width" Value="Auto"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <ContentPresenter Content="{TemplateBinding Content}"
                                  ContentTemplate="{TemplateBinding  ContentTemplate}"
                                  VerticalAlignment="Center">
                            <ContentPresenter.Resources>
                                <Style TargetType="{x:Type TextBlock}">
                                    <Setter Property="TextDecorations" Value="Underline" />
                                </Style>
                            </ContentPresenter.Resources>
                        </ContentPresenter>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Setter Property="Foreground" Value="Blue" />
            <Setter Property="Cursor" Value="Hand" />
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="true">
                    <Setter Property="Foreground" Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>

Set style in code:

var button = new Button() {Style = (Style)(this.Resources["LinkButton"])};

Or in XAML:

Style={StaticResources LinkButton}

среда, 24 августа 2011 г.

How to convert TFS folder to branch programmatically by TFS API (Convert to Branch operation in VS2010))


How to convert TFS folder to branch programmatically by TFS API (Convert to Branch operation in VS2010))

First you need create instance of VersionControlServer object. Then use CreateBranchObject method. serverTrunkPath="C:\myWorkspace\trunk" - target folder you want to make branch.

versionControlServer.CreateBranchObject(new BranchProperties(new ItemIdentifier(serverTrunkPath)));

вторник, 10 мая 2011 г.

Working Example of Web.config for WCF-Service IIS hosted for Silverlight with Windows Authentication


<?xml version="1.0" encoding="UTF-8"?>

<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
        <customErrors mode="RemoteOnly" />
        <authentication mode="Windows" />
      </system.web>
    <system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="true" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
        <services>
            <service name="web4.TsService">
              <endpoint address="" binding="basicHttpBinding" bindingConfiguration="web4.TsService.customBinding0" contract="web4.TsService">
                  <identity>
                    <dns value="MyDomainName" />
                  </identity>
                  </endpoint>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
              <host>
                <baseAddresses>
                  <add baseAddress="http://MyServerName.MyDomainName:8080/tfs/web4/"/>
                </baseAddresses>
              </host>
            </service>
        </services>
        <bindings>
            <basicHttpBinding>
                <binding name="web4.TsService.customBinding0">
                  <security mode="TransportCredentialOnly">
                    <transport clientCredentialType="Ntlm"></transport>
                  </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <client />
    </system.serviceModel>
</configuration>