Skip to content

Commit

Permalink
Fixed bugs that appeared after changing message bus
Browse files Browse the repository at this point in the history
  • Loading branch information
sceeter89 committed Sep 27, 2015
1 parent 20daff4 commit 6779780
Show file tree
Hide file tree
Showing 14 changed files with 43 additions and 21 deletions.
2 changes: 1 addition & 1 deletion Yakuza.JiraClient.Api/IMicroService.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace Yakuza.JiraClient.Api
{
public interface IMicroService
public interface IMicroservice
{
}
}
5 changes: 5 additions & 0 deletions Yakuza.JiraClient.Api/MessengerExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,10 @@ public static void LogMessage(this IMessageBus @this, string message, LogLevel l
{
@this.Send(new LogMessage(message, level));
}

public static void LogMessage(this IMessageBus @this, LogLevel level, string messageFormat, params object[] args)
{
@this.Send(new LogMessage(string.Format(messageFormat, args), level));
}
}
}
2 changes: 1 addition & 1 deletion Yakuza.JiraClient.Api/Yakuza.JiraClient.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="IConfiguration.cs" />
<Compile Include="IMicroService.cs" />
<Compile Include="IMicroservice.cs" />
<Compile Include="ISearchableField.cs" />
<Compile Include="LogLevel.cs" />
<Compile Include="Messages\Actions\Authentication\IsLoggedInMessage.cs" />
Expand Down
14 changes: 10 additions & 4 deletions Yakuza.JiraClient.IO/Jira/IssuesSearchMicroservice.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
namespace Yakuza.JiraClient.IO.Jira
{
public class IssuesSearchMicroservice : RestMicroserviceBase,
IMicroService,
IMicroservice,
IHandleMessage<SearchForIssuesMessage>,
IHandleMessage<GetFieldsDescriptionsResponse>
{
Expand All @@ -25,7 +25,7 @@ public class IssuesSearchMicroservice : RestMicroserviceBase,
public IssuesSearchMicroservice(IConfiguration configuration, IMessageBus messageBus)
: base(configuration, messageBus)
{

_messageBus.Register(this);
}

public void Handle(GetFieldsDescriptionsResponse message)
Expand Down Expand Up @@ -56,7 +56,10 @@ public async void Handle(SearchForIssuesMessage message)
var response = await client.ExecuteTaskAsync(request);

if (response.StatusCode != HttpStatusCode.OK)
throw new InvalidOperationException(response.Content);
{
_messageBus.LogMessage(LogLevel.Fatal, "Search request failed with invalid response code: {0}.\r\nResponse content is: {1}", response.StatusCode, response.Content);
_messageBus.Send(new SearchFailedResponse(SearchFailedResponse.FailureReason.ExceptionOccured));
}
var searchResults = await Task.Factory.StartNew(() => JsonConvert.DeserializeObject<RawSearchResults>(response.Content));
foreach (var issue in searchResults.Issues)
{
Expand All @@ -68,12 +71,15 @@ public async void Handle(SearchForIssuesMessage message)

if (_searchResult.Any() == false)
{
_messageBus.Send(new SearchForIssuesResponse(new List<JiraIssue>()));
_messageBus.Send(new SearchFailedResponse(SearchFailedResponse.FailureReason.NoResultsYielded));
return;
}

if (_fields == null)
{
_messageBus.Send(new GetFieldsDescriptionsMessage());
return;
}

_messageBus.Send(new SearchForIssuesResponse(ConvertIssuesToDomainModel()));
_searchResult.Clear();
Expand Down
8 changes: 4 additions & 4 deletions Yakuza.JiraClient.IO/Jira/JiraAgileIntegrationMicroservice.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
namespace Yakuza.JiraClient.IO.Jira
{
public class JiraAgileIntegrationMicroservice : RestMicroserviceBase,
IMicroService,
IHandleMessage<GetAgileBoardsResponse>,
IMicroservice,
IHandleMessage<GetAgileBoardsMessage>,
IHandleMessage<GetAgileSprintsMessage>
{
public JiraAgileIntegrationMicroservice(IConfiguration configuration, IMessageBus messageBus)
: base(configuration, messageBus)
{

_messageBus.Register(this);
}

public async void Handle(GetAgileSprintsMessage message)
Expand All @@ -41,7 +41,7 @@ public async void Handle(GetAgileSprintsMessage message)
_messageBus.Send(new GetAgileSprintsResponse(message.Board, allSprints));
}

public async void Handle(GetAgileBoardsResponse message)
public async void Handle(GetAgileBoardsMessage message)
{
var client = BuildRestClient();
var request = new RestRequest("/rest/agile/latest/board", Method.GET);
Expand Down
4 changes: 2 additions & 2 deletions Yakuza.JiraClient.IO/Jira/MetadataRetriever.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
namespace Yakuza.JiraClient.IO.Jira
{
public class MetadataRetriever : RestMicroserviceBase,
IMicroService,
IMicroservice,
IHandleMessage<GetFieldsDescriptionsMessage>,
IHandleMessage<GetIssueTypesMessage>,
IHandleMessage<GetPrioritiesMessage>,
Expand All @@ -21,7 +21,7 @@ public class MetadataRetriever : RestMicroserviceBase,
public MetadataRetriever(IConfiguration configuration, IMessageBus messageBus)
: base(configuration, messageBus)
{

_messageBus.Register(this);
}

public async void Handle(GetProjectsMessage message)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
namespace Yakuza.JiraClient.IO.Jira
{
public class ResourceDownloaderMicroservice : RestMicroserviceBase,
IMicroService,
IMicroservice,
IHandleMessage<DownloadPictureMessage>
{
public ResourceDownloaderMicroservice(IMessageBus messageBus, IConfiguration configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
namespace Yakuza.JiraClient.IO.Jira
{
public class SessionInteractionMicroservice : RestMicroserviceBase,
IMicroService,
IMicroservice,
IHandleMessage<AttemptLoginMessage>,
IHandleMessage<CheckJiraSessionMessage>,
IHandleMessage<LogoutMessage>,
Expand Down
4 changes: 2 additions & 2 deletions Yakuza.JiraClient.IssueFields/Search/ComboBoxSearchField.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,12 @@ public string GetSearchQuery()
return string.Format("{0} = '{1}'", _queryFieldName, _queryValueGetter(SelectedItem.Item));
}

public async void Handle(LoggedInMessage message)
public void Handle(LoggedInMessage message)
{
_messageBus.Send(new TRequestType());
}

public async void Handle(ConnectionEstablishedMessage message)
public void Handle(ConnectionEstablishedMessage message)
{
_messageBus.Send(new TRequestType());
}
Expand Down
2 changes: 1 addition & 1 deletion Yakuza.JiraClient/Service/ConnectionChecker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public ConnectionChecker(IMessageBus messageBus)
messageBus.Register(this);
}

private async void CheckTick(object sender, EventArgs e)
private void CheckTick(object sender, EventArgs e)
{
_messageBus.Send(new CheckJiraSessionMessage());
}
Expand Down
4 changes: 2 additions & 2 deletions Yakuza.JiraClient/ViewModel/LoginViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -145,13 +145,13 @@ public void Handle(AttemptLoginResponse message)

public void Handle(CheckJiraSessionResponse message)
{
if (message.Response.IsLoggedIn)
if (IsConnected == false && message.Response.IsLoggedIn)
{
IsConnected = true;
_messenger.LogMessage("Logged in using existing security token.");
_messenger.Send(new LoggedInMessage());
}
else
else if (IsConnected && message.Response.IsLoggedIn == false)
{
IsConnected = false;
_messenger.Send(new LoggedOutMessage());
Expand Down
4 changes: 2 additions & 2 deletions Yakuza.JiraClient/ViewModel/SearchIssuesViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public class SearchIssuesViewModel : ViewModelBase,
public SearchIssuesViewModel(IMessageBus messenger)
{
_messageBus = messenger;
_messageBus.Register(this);

FoundIssues = new ObservableCollection<JiraIssue>();

Expand Down Expand Up @@ -70,13 +71,12 @@ private void DoCustomSearch()
var searchString = string.Join(" AND ", searchClauses.Select(c => string.Format("( {0} )", c)));

SearchQuery = searchString;
SearchCommand.Execute(null);
DoSearch();
}

private void DoSearch()
{
SetIsBusy(true);
_messageBus.LogMessage(SearchQuery);
_messageBus.LogMessage("Initiating search for issues by JQL query", LogLevel.Info);

FoundIssues.Clear();
Expand Down
7 changes: 7 additions & 0 deletions Yakuza.JiraClient/ViewModel/ViewModelLocator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Autofac;
using System.Reflection;
using Yakuza.JiraClient.Messaging;
using Yakuza.JiraClient.Api;

namespace Yakuza.JiraClient.ViewModel
{
Expand Down Expand Up @@ -72,6 +73,7 @@ private void BuildIocContainer()
var builder = new ContainerBuilder();

var clientAssembly = Assembly.Load("Jira Client");
var ioAssembly = Assembly.Load("Yakuza.JiraClient.IO");

builder.RegisterType<MessageBus>()
.AsImplementedInterfaces()
Expand All @@ -90,6 +92,11 @@ private void BuildIocContainer()
.AsSelf()
.SingleInstance()
.AutoActivate();
builder.RegisterAssemblyTypes(ioAssembly)
.AssignableTo<IMicroservice>()
.AsSelf()
.SingleInstance()
.AutoActivate();

IocContainer = builder.Build();
}
Expand Down
4 changes: 4 additions & 0 deletions Yakuza.JiraClient/Yakuza.JiraClient.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,10 @@
<Resource Include="Assets\Icons\xpsicon.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Yakuza.JiraClient.IO\Yakuza.JiraClient.IO.csproj">
<Project>{fcbe50bc-7cc8-4c86-bee9-6f86ff34a912}</Project>
<Name>Yakuza.JiraClient.IO</Name>
</ProjectReference>
<ProjectReference Include="..\Yakuza.JiraClient.IssueFields\Yakuza.JiraClient.IssueFields.csproj">
<Project>{19df2acb-aad3-4dd7-9b8a-e75aa193d2ce}</Project>
<Name>Yakuza.JiraClient.IssueFields</Name>
Expand Down

0 comments on commit 6779780

Please sign in to comment.