コード例 #1
0
 /// <summary>
 /// parameterized constructor
 /// </summary>
 /// <param name="userRepository"></param>
 /// <param name="securityKeysRepository"></param>
 /// <param name="persistenceRepository"></param>
 public UserTierLevelApplicationService(IUserRepository userRepository, ISecurityKeysRepository securityKeysRepository, IIdentityAccessPersistenceRepository persistenceRepository, IDocumentPersistence documentPersistence)
 {
     _userRepository         = userRepository;
     _securityKeysRepository = securityKeysRepository;
     _persistenceRepository  = persistenceRepository;
     _documentPersistence    = documentPersistence;
 }
コード例 #2
0
ファイル: NormalizeProcess.cs プロジェクト: dream-365/lemon
        public void Start(string listenToQueueName)
        {
            var processQueue = _messageQueueProvider.Get(listenToQueueName, false);

            if (processQueue == null)
            {
                return;
            }

            var processErrorQueue = _messageQueueProvider.Get(OnErrorQueueName, true);

            Console.ForegroundColor = ConsoleColor.Blue;

            var documentPersistenceCache = new Dictionary <string, IDocumentPersistence>();

            while (true)
            {
                var message = processQueue.Dequeue <ProcessContentMessageBody>();

                try
                {
                    if (message != null)
                    {
                        using (var stream = _blobClient.Download(message.BlobPath))
                        {
                            var module = _normaliztionProvider.Activate(message.Context["handler"]);

                            var metadata = module.Normalize(stream, new Dictionary <string, object> {
                                { "url", message.OrignalUrl }
                            });

                            if (!documentPersistenceCache.ContainsKey(message.Context["saveTo"]))
                            {
                                documentPersistenceCache[message.Context["saveTo"]] = _persistenceProvider.Get(message.Context["saveTo"]);
                            }

                            IDocumentPersistence persistence = documentPersistenceCache[message.Context["saveTo"]];

                            persistence.Persist(metadata);
                        }

                        Console.Write(".");
                    }
                    else
                    {
                        System.Threading.Thread.Sleep(10000);
                    }
                }
                catch (System.Exception ex)
                {
                    Console.ForegroundColor = ConsoleColor.Red;

                    Console.Write("x");

                    Console.WriteLine(ex.Message);

                    processErrorQueue.Send(new DownloadContentMessageBody
                    {
                        Url     = message.OrignalUrl,
                        Context = message.Context
                    });

                    Console.ForegroundColor = ConsoleColor.Blue;
                }
            }
        }