PageRenderTime 35ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/Source/Bifrost/Commands/IDynamicCommandFactory.cs

#
C# | 42 lines | 12 code | 1 blank | 29 comment | 0 complexity | cca5354e0aaa885d91ac7c97518ab756 MD5 | raw file
Possible License(s): CC-BY-SA-3.0
  1. #region License
  2. //
  3. // Copyright (c) 2008-2012, DoLittle Studios and Komplett ASA
  4. //
  5. // Licensed under the Microsoft Permissive License (Ms-PL), Version 1.1 (the "License")
  6. // With one exception :
  7. // Commercial libraries that is based partly or fully on Bifrost and is sold commercially,
  8. // must obtain a commercial license.
  9. //
  10. // You may not use this file except in compliance with the License.
  11. // You may obtain a copy of the license at
  12. //
  13. // http://bifrost.codeplex.com/license
  14. //
  15. // Unless required by applicable law or agreed to in writing, software
  16. // distributed under the License is distributed on an "AS IS" BASIS,
  17. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18. // See the License for the specific language governing permissions and
  19. // limitations under the License.
  20. //
  21. #endregion
  22. using System;
  23. using System.Linq.Expressions;
  24. using Bifrost.Domain;
  25. namespace Bifrost.Commands
  26. {
  27. /// <summary>
  28. /// Defines a factory for creating <see cref="DynamicCommand">DynamicCommands</see>
  29. /// </summary>
  30. public interface IDynamicCommandFactory
  31. {
  32. /// <summary>
  33. /// Create a command from an expression describing a method for the dynamic command
  34. /// </summary>
  35. /// <typeparam name="T"><see cref="AggregatedRoot"/> type to create for </typeparam>
  36. /// <param name="aggregatedRootId">Id of the <see cref="AggregatedRoot"/></param>
  37. /// <param name="method"><see cref="Expression"/> expressing the method call</param>
  38. /// <returns>A <see cref="DynamicCommand"/> holding information about the command</returns>
  39. DynamicCommand Create<T>(Guid aggregatedRootId, Expression<Action<T>> method) where T : AggregatedRoot;
  40. }
  41. }