Skip to content

Commit

Permalink
Added json rendering support
Browse files Browse the repository at this point in the history
  • Loading branch information
jorn-ola-birkeland committed Nov 13, 2009
1 parent b92b155 commit 74f24ea
Show file tree
Hide file tree
Showing 19 changed files with 431 additions and 76 deletions.
2 changes: 1 addition & 1 deletion WhiskWork.CommondLineWebServer/WebRouter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public WebRouter(string webDirectory, string logFilePath)
IWorkflow workflow = new Workflow(workStepRepository, workItemRepository);
if (!string.IsNullOrEmpty(logFilePath))
{
var logger = new FileWorkItemLogger(logFilePath);
var logger = new FileWorkflowLogger(logFilePath);
workflow = new WorkflowLogger(logger, workflow);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="HtmlWorkStepRendererFactory.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="WebRouter.cs" />
Expand Down
4 changes: 2 additions & 2 deletions WhiskWork.Core/FileWorkflowLogger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@

namespace WhiskWork.Core
{
public class FileWorkItemLogger : IWorkItemLogger, IDisposable
public class FileWorkflowLogger : IWorkflowLogger, IDisposable
{
private readonly StreamWriter _writer;
public FileWorkItemLogger(string path)
public FileWorkflowLogger(string path)
{
var fi = new FileInfo(path);

Expand Down
2 changes: 1 addition & 1 deletion WhiskWork.Core/IWorkflowLogger.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace WhiskWork.Core
{
public interface IWorkItemLogger
public interface IWorkflowLogger
{
void LogDeleteWorkItem(string id);
void LogCreateWorkStep(WorkStep workStep);
Expand Down
4 changes: 2 additions & 2 deletions WhiskWork.Core/WhiskWork.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,10 @@
<Compile Include="WorkItemRemover.cs" />
<Compile Include="WorkItemRepositoryExtension.cs" />
<Compile Include="WorkStepRepositoryExtensions.cs" />
<Compile Include="FileWorkItemLogger.cs" />
<Compile Include="FileWorkflowLogger.cs" />
<Compile Include="IWorkflow.cs" />
<Compile Include="IWorkStepRepository.cs" />
<Compile Include="IWorkItemLogger.cs" />
<Compile Include="IWorkflowLogger.cs" />
<Compile Include="IWorkItemRepository.cs" />
<Compile Include="WorkflowLogger.cs" />
<Compile Include="MemoryWorkflowRepository.cs" />
Expand Down
4 changes: 2 additions & 2 deletions WhiskWork.Core/WorkflowLogger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ namespace WhiskWork.Core
{
public class WorkflowLogger : IWorkflow
{
private readonly IWorkItemLogger _logger;
private readonly IWorkflowLogger _logger;
private readonly IWorkflow _workflow;

public WorkflowLogger(IWorkItemLogger logger, IWorkflow workflow)
public WorkflowLogger(IWorkflowLogger logger, IWorkflow workflow)
{
_logger = logger;
_workflow = workflow;
Expand Down
3 changes: 0 additions & 3 deletions WhiskWork.Synchronizer/App.config
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="host" value=""/>
<add key="loginUrl" value="/names.nsf?Login"/>
<add key="leanViewUrl" value="/global/seitp/seitp210.ns6/vwLeanFlat?OpenView&amp;start=8000&amp;count=5000"/>
<add key="updateStatusPathPattern" value="/global/seitp/seitp210.ns6/agnLeanUpdate?OpenAgent&amp;UNID={0}&amp;Field=Status&amp;Value={1}&amp;"/>
<add key="login" value=""/>
<add key="password" value=""/>
</appSettings>
</configuration>
27 changes: 14 additions & 13 deletions WhiskWork.Synchronizer/EManagerSynchronizationAgent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,20 @@ namespace WhiskWork.Synchronizer
{
internal class EManagerSynchronizationAgent : ISynchronizationAgent
{
private readonly string _release;
private readonly string _team;
private readonly string _login;
private readonly string _password;
private readonly string _dominohost;

public EManagerSynchronizationAgent(string release, string team)
public EManagerSynchronizationAgent(string dominohost, string login, string password)
{
_release = release;
_team = team;
_dominohost = dominohost;
_login = login;
_password = password;
}

public string Release { get; set; }
public string Team { get; set; }

#region ISynchronizationAgent Members

public IEnumerable<SynchronizationEntry> GetAll()
Expand Down Expand Up @@ -54,7 +59,7 @@ public IEnumerable<SynchronizationEntry> GetAll()
var status = (string)row[7];
int? ordinal = ToNullableInt((string)row[8]);

if (team != _team || release != _release)
if ((Team!=null && team != Team) || (Release!=null && release != Release))
{
continue;
}
Expand Down Expand Up @@ -112,16 +117,12 @@ public void UpdateData(SynchronizationEntry entry)

#endregion

private static DominoAuthenticatingHtmlSource Login()
private DominoAuthenticatingHtmlSource Login()
{
var host = ConfigurationManager.AppSettings["host"];
var loginUrl = ConfigurationManager.AppSettings["loginUrl"];

var username = ConfigurationManager.AppSettings["login"];
var password = ConfigurationManager.AppSettings["password"];

var dominoSource = new DominoAuthenticatingHtmlSource(host, loginUrl);
dominoSource.Login(username, password);
var dominoSource = new DominoAuthenticatingHtmlSource(_dominohost, loginUrl);
dominoSource.Login(_login, _password);
return dominoSource;
}

Expand Down
36 changes: 32 additions & 4 deletions WhiskWork.Synchronizer/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,20 @@ internal class Program
private static void Main(string[] args)
{

if(args.Length!=1)
if(args.Length<4)
{
Console.WriteLine("Usage: WhiskWork.Synchronizer.exe <host[:port]> ");
Console.WriteLine("Usage: WhiskWork.Synchronizer.exe <webhost[:port]> <dominohost[:port]> <dominologin> <dominopassword> [-release:<release>] [-team:<team1[,team2,...]>]");
return;
}

var host = args[0];
var eManagerSynchronizationAgent = CreateEManagerSynchronizationAgent(args);

const string rootPath = "/";
const string beginStep = "/scheduled";



var eManagerAgent = new CachingSynchronizationAgent(new EManagerSynchronizationAgent("20091212", "CMS"));
var eManagerAgent = new CachingSynchronizationAgent(eManagerSynchronizationAgent);

var whiskWorkAgent = new WhiskWorkSynchronizationAgent(host, rootPath, beginStep);

Expand Down Expand Up @@ -62,5 +62,33 @@ private static void Main(string[] args)
dataSynchronizer.Synchronize();

}

private static EManagerSynchronizationAgent CreateEManagerSynchronizationAgent(string[] args)
{
var dominohost = args[1];
var login = args[2];
var password = args[3];

var eManagerSynchronizationAgent = new EManagerSynchronizationAgent(dominohost, login, password);

if(args.Length>3)
{
for(int i=3;i<args.Length;i++)
{
var keyValue = args[i].Split(':');

switch(keyValue[0].ToLowerInvariant())
{
case "-release":
eManagerSynchronizationAgent.Release = keyValue[1];
break;
case "-team":
eManagerSynchronizationAgent.Team = keyValue[1];
break;
}
}
}
return eManagerSynchronizationAgent;
}
}
}
2 changes: 1 addition & 1 deletion WhiskWork.TestWebClient/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ private static void Main(string[] args)
var url = args[1];
var payload = args[2];

Console.WriteLine("url:'{0}' httpverb:'{1}' payload:'{2}'",url,httpverb,payload);
//Console.WriteLine("url:'{0}' httpverb:'{1}' payload:'{2}'",url,httpverb,payload);

WebCommunication.SendCsvRequest(url, httpverb, payload);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using WhiskWork.Core;
using System.IO;
using WhiskWork.Web;
using WhiskWork.Web.UnitTest.Properties;

namespace WhiskWork.UnitTest
namespace WhiskWork.Web.UnitTest
{
[TestClass]
public class HtmlRenderTest
public class HtmlRendererTest
{
private MemoryWorkflowRepository _workflowRepository;
private MemoryWorkItemRepository _workItemRepository;
Expand Down Expand Up @@ -373,8 +372,8 @@ public void ShouldRenderTransientStepBeforeExpandStep()
_workflowRepository.Add("/development", "/", 2, WorkStepType.Begin, "cr");
_workflowRepository.Add("/development/inprocess", "/development", 1, WorkStepType.Expand, "cr");

Create("/analysis", "cr1");
Move("/development", "cr1");
_wp.Create("/analysis", "cr1");
_wp.Move("/development", "cr1");


var doc = GetFullDocument();
Expand All @@ -393,8 +392,8 @@ public void ShouldRenderTransientStepWithCorrectIdForWorkItemContainer()
_workflowRepository.Add("/development", "/", 2, WorkStepType.Begin, "cr");
_workflowRepository.Add("/development/inprocess", "/development", 1, WorkStepType.Expand, "cr");

Create("/analysis", "cr1");
Move("/development", "cr1");
_wp.Create("/analysis", "cr1");
_wp.Move("/development", "cr1");

var doc = GetFullDocument();

Expand All @@ -411,8 +410,8 @@ public void ShouldRenderTitleForChildOfTransientStep()
_workflowRepository.Add("/development/inprocess/tasks", "/development/inprocess", 1, WorkStepType.Normal, "task", "Tasks");
_workflowRepository.Add("/development/inprocess/tasks/new", "/development/inprocess/tasks", 1, WorkStepType.Begin, "task");

Create("/analysis", "cr1");
Move("/development", "cr1");
_wp.Create("/analysis", "cr1");
_wp.Move("/development", "cr1");


var doc = GetFullDocument();
Expand All @@ -439,41 +438,24 @@ public void FullFeatureTest()
_workflowRepository.Add("/feedback/test", "/feedback", 3, WorkStepType.Normal, "cr-test", "Test");
_workflowRepository.Add("/done", "/", 4, WorkStepType.End, "cr", "Done");

Create("/analysis","cr1","cr2","cr3","cr4","cr5","cr6","cr7","cr8","cr9","cr10", "cr11", "cr12");
Move("/analysis/done","cr4");
Move("/development/inprocess", "cr5","cr6");
Create("/development/inprocess/cr5", "cr5-1", "cr5-2", "cr5-3", "cr5-4");
Create("/development/inprocess/cr6", "cr6-1", "cr6-2", "cr6-3", "cr6-4");
Move("/development/inprocess/cr5/tasks/done", "cr5-1", "cr5-2");
Move("/development/inprocess/cr6/tasks/inprocess", "cr6-1");
Move("/development/done", "cr7", "cr8", "cr9","cr10", "cr11", "cr12");
Move("/feedback/review", "cr7", "cr8");
Move("/feedback/demo", "cr9", "cr10");
Move("/feedback/test", "cr11");
Move("/done", "cr7-review");
Move("/done", "cr9-demo");
Move("/done", "cr12");
_wp.Create("/analysis","cr1","cr2","cr3","cr4","cr5","cr6","cr7","cr8","cr9","cr10", "cr11", "cr12");
_wp.Move("/analysis/done", "cr4");
_wp.Move("/development/inprocess", "cr5", "cr6");
_wp.Create("/development/inprocess/cr5", "cr5-1", "cr5-2", "cr5-3", "cr5-4");
_wp.Create("/development/inprocess/cr6", "cr6-1", "cr6-2", "cr6-3", "cr6-4");
_wp.Move("/development/inprocess/cr5/tasks/done", "cr5-1", "cr5-2");
_wp.Move("/development/inprocess/cr6/tasks/inprocess", "cr6-1");
_wp.Move("/development/done", "cr7", "cr8", "cr9", "cr10", "cr11", "cr12");
_wp.Move("/feedback/review", "cr7", "cr8");
_wp.Move("/feedback/demo", "cr9", "cr10");
_wp.Move("/feedback/test", "cr11");
_wp.Move("/done", "cr7-review");
_wp.Move("/done", "cr9-demo");
_wp.Move("/done", "cr12");

AssertIsAsExpected(Resources.FullFeatureTest);
}

private void Create(string path, params string[] workItemIds)
{
Array.ForEach(workItemIds, workItemId =>
{
_wp.CreateWorkItem(WorkItem.New(workItemId,path));
});
}

private void Move(string path, params string[] workItemIds)
{
Array.ForEach(workItemIds, workItemId =>
{
_wp.UpdateWorkItem(WorkItem.New(workItemId, path, new NameValueCollection()));
});
}


private void AssertIsAsExpected(string expectedXml)
{
var expected = new XmlDocument();
Expand Down Expand Up @@ -505,4 +487,4 @@ private XmlDocument GetFullDocument(WorkStep workStep)
}

}
}
}

0 comments on commit 74f24ea

Please sign in to comment.