Skip to content

Commit

Permalink
#7 add Status field
Browse files Browse the repository at this point in the history
  • Loading branch information
thangchung committed Mar 12, 2017
1 parent 2ed60b3 commit 9ea2297
Show file tree
Hide file tree
Showing 11 changed files with 98 additions and 51 deletions.
66 changes: 33 additions & 33 deletions MagazineWebAkka.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26206.0
VisualStudioVersion = 15.0.26228.4
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B10EC218-4988-49EE-982C-8FE265BD1B12}"
EndProject
Expand Down Expand Up @@ -58,16 +58,16 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Debug|x64.ActiveCfg = Debug|x64
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Debug|x64.Build.0 = Debug|x64
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Debug|x86.ActiveCfg = Debug|x86
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Debug|x86.Build.0 = Debug|x86
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Debug|x64.ActiveCfg = Debug|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Debug|x64.Build.0 = Debug|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Debug|x86.ActiveCfg = Debug|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Debug|x86.Build.0 = Debug|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Release|Any CPU.Build.0 = Release|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Release|x64.ActiveCfg = Release|x64
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Release|x64.Build.0 = Release|x64
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Release|x86.ActiveCfg = Release|x86
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Release|x86.Build.0 = Release|x86
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Release|x64.ActiveCfg = Release|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Release|x64.Build.0 = Release|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Release|x86.ActiveCfg = Release|Any CPU
{A4E6E67A-66DB-4FE8-B158-58D6B7D7BE5D}.Release|x86.Build.0 = Release|Any CPU
{7281A131-9C43-4A61-9DD2-7F6E05BEF844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7281A131-9C43-4A61-9DD2-7F6E05BEF844}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7281A131-9C43-4A61-9DD2-7F6E05BEF844}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand All @@ -94,16 +94,16 @@ Global
{87BE1ABF-1F59-41AB-A3CB-4B1E7E0B218A}.Release|x86.Build.0 = Release|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Debug|x64.ActiveCfg = Debug|x64
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Debug|x64.Build.0 = Debug|x64
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Debug|x86.ActiveCfg = Debug|x86
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Debug|x86.Build.0 = Debug|x86
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Debug|x64.ActiveCfg = Debug|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Debug|x64.Build.0 = Debug|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Debug|x86.ActiveCfg = Debug|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Debug|x86.Build.0 = Debug|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Release|Any CPU.Build.0 = Release|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Release|x64.ActiveCfg = Release|x64
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Release|x64.Build.0 = Release|x64
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Release|x86.ActiveCfg = Release|x86
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Release|x86.Build.0 = Release|x86
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Release|x64.ActiveCfg = Release|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Release|x64.Build.0 = Release|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Release|x86.ActiveCfg = Release|Any CPU
{E2E232F9-5FBC-42A4-BA8E-B0AD87988F3B}.Release|x86.Build.0 = Release|Any CPU
{851A58ED-DFBD-430C-99CF-993859997AB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{851A58ED-DFBD-430C-99CF-993859997AB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{851A58ED-DFBD-430C-99CF-993859997AB2}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand All @@ -118,28 +118,28 @@ Global
{851A58ED-DFBD-430C-99CF-993859997AB2}.Release|x86.Build.0 = Release|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Debug|x64.ActiveCfg = Debug|x64
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Debug|x64.Build.0 = Debug|x64
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Debug|x86.ActiveCfg = Debug|x86
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Debug|x86.Build.0 = Debug|x86
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Debug|x64.ActiveCfg = Debug|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Debug|x64.Build.0 = Debug|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Debug|x86.ActiveCfg = Debug|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Debug|x86.Build.0 = Debug|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Release|Any CPU.Build.0 = Release|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Release|x64.ActiveCfg = Release|x64
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Release|x64.Build.0 = Release|x64
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Release|x86.ActiveCfg = Release|x86
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Release|x86.Build.0 = Release|x86
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Release|x64.ActiveCfg = Release|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Release|x64.Build.0 = Release|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Release|x86.ActiveCfg = Release|Any CPU
{87302267-6FBF-4E28-ABC4-2FF832DAC72B}.Release|x86.Build.0 = Release|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Debug|x64.ActiveCfg = Debug|x64
{B078ECA6-201B-43B3-B474-E30856D37992}.Debug|x64.Build.0 = Debug|x64
{B078ECA6-201B-43B3-B474-E30856D37992}.Debug|x86.ActiveCfg = Debug|x86
{B078ECA6-201B-43B3-B474-E30856D37992}.Debug|x86.Build.0 = Debug|x86
{B078ECA6-201B-43B3-B474-E30856D37992}.Debug|x64.ActiveCfg = Debug|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Debug|x64.Build.0 = Debug|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Debug|x86.ActiveCfg = Debug|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Debug|x86.Build.0 = Debug|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Release|Any CPU.Build.0 = Release|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Release|x64.ActiveCfg = Release|x64
{B078ECA6-201B-43B3-B474-E30856D37992}.Release|x64.Build.0 = Release|x64
{B078ECA6-201B-43B3-B474-E30856D37992}.Release|x86.ActiveCfg = Release|x86
{B078ECA6-201B-43B3-B474-E30856D37992}.Release|x86.Build.0 = Release|x86
{B078ECA6-201B-43B3-B474-E30856D37992}.Release|x64.ActiveCfg = Release|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Release|x64.Build.0 = Release|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Release|x86.ActiveCfg = Release|Any CPU
{B078ECA6-201B-43B3-B474-E30856D37992}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public async Task<CategoryViewResponse> GetAsync(Guid id)
[HttpPost]
public bool PostAsync([FromBody] CategoryModel cat)
{
_categoryCommander.Tell(new CreateCategory(Guid.NewGuid(), cat.Name, cat.ParentId));
_categoryCommander.Tell(new CreateCategory(Guid.NewGuid(), cat.Name, cat.Status));
return true;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
using System;
using Cik.Magazine.Shared;
using Cik.Magazine.Shared.Messages.Category;

namespace Cik.Magazine.CategoryService.Denomalizer.Messages
{
public class CreateNewCategory
{
public CreateNewCategory(Guid id, string name, Guid parentId)
public CreateNewCategory(Guid id, string name, Status status)
{
Id = id;
Name = name;
ParentId = parentId;
Status = status;
Created = SystemClock.UtcNow;
}

public Guid Id { get; }
public string Name { get; }
public Guid ParentId { get; }
public Status Status { get; }
public DateTime Created { get; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public void Handle(CreateNewCategory message)
col.InsertOne(new CategoryViewResponse
{
Name = message.Name,
ParentId = message.ParentId
Status = message.Status
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public CategoryCreated()
public void Handle(Shared.Messages.Category.CategoryCreated message)
{
_log.Info("CategoryCreated is handled.");
_storage.Tell(new CreateNewCategory(message.AggregateId, message.Name, message.ParentId));
_storage.Tell(new CreateNewCategory(message.AggregateId, message.Name, message.Status));
}
}
}
3 changes: 2 additions & 1 deletion src/Cik.Magazine.CategoryService/Domain/CategoryState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ namespace Cik.Magazine.CategoryService.Domain
internal class CategoryState
{
public string Name { get; private set; }
public Status Status { get; private set; }
internal IEventSink EventSink { get; set; }

public void Handle(ICommand command)
Expand All @@ -21,7 +22,7 @@ public void Mutate(IEvent @event)

public void Handle(CreateCategory message)
{
EventSink.Publish(new CategoryCreated(message.AggregateId, message.Name, message.ParentId));
EventSink.Publish(new CategoryCreated(message.AggregateId, message.Name, message.Status));
}

public void Handle(UpdateCategory message)
Expand Down
37 changes: 37 additions & 0 deletions src/Cik.Magazine.CategoryService/Sagas/ReviewCategorySaga.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using System;
using Akka.Persistence.Fsm;
using Cik.Magazine.Shared;
using Cik.Magazine.Shared.Messages.Category;

namespace Cik.Magazine.CategoryService.Sagas
{
public interface IReviewEvent
{
}

public class RemindAdminReview : IReviewEvent
{
}

public class ReviewCategorySaga : PersistentFSM<Status, Event, IReviewEvent>
{
private readonly Guid _id;

public ReviewCategorySaga(Guid id)
{
_id = id;
}

public override string PersistenceId => $"{GetType().Name}-agg-{_id:n}".ToLowerInvariant();

protected override void OnRecoveryCompleted()
{
throw new NotImplementedException();
}

protected override Event ApplyEvent(IReviewEvent e, Event data)
{
throw new NotImplementedException();
}
}
}
15 changes: 7 additions & 8 deletions src/Cik.Magazine.Shared/Messages/Category/CreateCategory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,33 @@ namespace Cik.Magazine.Shared.Messages.Category
[Serializable]
public class CreateCategory : ICommand
{
public CreateCategory(Guid aggregateId, string name, Guid parentId)
public CreateCategory(Guid aggregateId, string name, Status status)
{
Name = name;
ParentId = parentId;
Status = status;
AggregateId = aggregateId;
}

public string Name { get; }
public Guid ParentId { get; }
public Status Status { get; }
public Guid AggregateId { get; }

public override string ToString()
{
return Name;
return $"{Name} is in {Status} status.";
}
}

public class CategoryCreated : Event
{
public CategoryCreated(Guid aggregateId, string name, Guid parentId)
public CategoryCreated(Guid aggregateId, string name, Status status)
: base(aggregateId)
{
Name = name;
ParentId = parentId;
Status = status;
}

public string Name { get; private set; }

public Guid ParentId { get; private set; }
public Status Status { get; private set; }
}
}
8 changes: 8 additions & 0 deletions src/Cik.Magazine.Shared/Messages/Category/Status.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Cik.Magazine.Shared.Messages.Category
{
public enum Status
{
Reviewing,
Published
}
}
4 changes: 2 additions & 2 deletions src/Cik.Magazine.Shared/Models/Category/CategoryModel.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.ComponentModel.DataAnnotations;
using Cik.Magazine.Shared.Messages.Category;

namespace Cik.Magazine.Shared.Models.Category
{
Expand All @@ -8,7 +9,6 @@ public class CategoryModel
{
[Required]
public string Name { get; set; }

public Guid ParentId { get; set; }
public Status Status { get; set; }
}
}
3 changes: 2 additions & 1 deletion src/Cik.Magazine.Shared/Queries/CategoryView.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using Cik.Magazine.Shared.Messages.Category;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;

Expand All @@ -24,6 +25,6 @@ public class CategoryViewResponse
public string Name { get; set; }

[BsonRepresentation(BsonType.String)]
public Guid ParentId { get; set; }
public Status Status { get; set; }
}
}

0 comments on commit 9ea2297

Please sign in to comment.