PageRenderTime 17ms CodeModel.GetById 13ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/Source/Bifrost/Commands/IDynamicCommandFactory.cs

#
C# | 42 lines | 12 code | 1 blank | 29 comment | 0 complexity | cca5354e0aaa885d91ac7c97518ab756 MD5 | raw file
 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
22using System;
23using System.Linq.Expressions;
24using Bifrost.Domain;
25
26namespace Bifrost.Commands
27{
28	/// <summary>
29	/// Defines a factory for creating <see cref="DynamicCommand">DynamicCommands</see>
30	/// </summary>
31    public interface IDynamicCommandFactory
32    {
33		/// <summary>
34		/// Create a command from an expression describing a method for the dynamic command
35		/// </summary>
36		/// <typeparam name="T"><see cref="AggregatedRoot"/> type to create for </typeparam>
37		/// <param name="aggregatedRootId">Id of the <see cref="AggregatedRoot"/></param>
38		/// <param name="method"><see cref="Expression"/> expressing the method call</param>
39		/// <returns>A <see cref="DynamicCommand"/> holding information about the command</returns>
40        DynamicCommand Create<T>(Guid aggregatedRootId, Expression<Action<T>> method) where T : AggregatedRoot;
41    }
42}