コード例 #1
0
        public async Task <Guid> Community(string name, KeysPair keys)
        {
            var exist = communities.SingleOrDefault(o => o.Name == name);

            if (exist != null)
            {
                return(exist.Id);
            }

            var community = new Community
            {
                Id       = Guid.NewGuid(),
                Name     = name,
                CreateAt = DateTimeOffset.Now,
                Address  = keys.PublicKey
            };

            var signer = new Signer(service);

            signer.Sign(community, keys);

            await publisher.Add(community);

            communities.Add(community);

            return(community.Id);
        }
コード例 #2
0
ファイル: Book.cs プロジェクト: danielgbodon/mybooksdemo
        public async Task <BookModel> Add(BookModel book)
        {
            if (book == null)
            {
                return(null);
            }

            if (book.Id > 0)
            {
                return(book);
            }

            try
            {
                if (book.Categories != null)
                {
                    foreach (BookCategoryModel category in book.Categories)
                    {
                        await _category.Add(category);
                    }
                }

                if (book.Authors != null)
                {
                    foreach (AuthorModel author in book.Authors)
                    {
                        await _author.Add(author);
                    }
                }

                if (book.Publisher != null)
                {
                    await _publisher.Add(book.Publisher);
                }

                _context.Add(book);
                await _context.SaveChangesAsync();

                return(book);
            }
            catch (Exception ex)
            {
                string message = ex.Message;
                return(null);
            }
        }
コード例 #3
0
        /// <summary>
        /// Adds the assembly.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="pipeline">The pipeline.</param>
        /// <param name="assembly">The assembly.</param>
        /// <param name="predicate">The predicate.</param>
        /// <returns>IPublisher&lt;T&gt;.</returns>
        public static IPublisher <T> AddAssembly <T>(
            this IPublisher <T> pipeline,
            Assembly assembly,
            Func <Type, bool> predicate)
        {
            var filterTypes = _publisherTypes.GetOrAdd(Tuple.Create(assembly.FullName, typeof(T).FullName), q => assembly
                                                       .GetTypes()
                                                       .Where(t => typeof(IActionFilter <T>).IsAssignableFrom(t))
                                                       .Where(predicate)
                                                       .OrderBy(t => (((FilterOrderAttribute)Attribute.GetCustomAttribute(t, typeof(FilterOrderAttribute)))?.Order).GetValueOrDefault())
                                                       .ToList());

            foreach (var filterType in filterTypes)
            {
                pipeline = pipeline.Add(filterType);
            }

            return(pipeline);
        }
コード例 #4
0
 /// <summary>
 /// Finallies the specified action.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="pipeline">The pipeline.</param>
 /// <param name="action">The action.</param>
 /// <returns>IPublisher&lt;T&gt;.</returns>
 public static IPublisher <T> Finally <T>(this IPublisher <T> pipeline, Action <T> action)
 {
     return(pipeline.Add(new ActionShortCircuit <T>(action)));
 }
コード例 #5
0
 public void Post([FromBody] Publisher publisher)
 {
     _publisher.Add(publisher);
 }
コード例 #6
0
 public void Post([FromBody] Publisher p)
 {
     _pub.Add(p);
 }
コード例 #7
0
 public void Subscribe(IPublisher publiser)
 {
     publiser.Add(this);
 }