public void UpdateTagStatistics() { /// jobから呼ばれるのでPerRequestライフサイクルな_refsContextは使えない using (var context = MochaContainer.Resolve <IRefsContext>("job")) { var query = @" UPDATE dbo.TagStatistics SET RefListcount = ( SELECT COUNT(*) FROM dbo.Tags, dbo.TagUses, dbo.RefListTagUses, dbo.RefLists WHERE dbo.TagStatistics.TagId = dbo.Tags.Id AND dbo.Tags.Id = dbo.TagUses.TagId AND dbo.TagUses.Id = dbo.RefListTagUses.TagUseId AND dbo.RefListTagUses.RefListId = dbo.RefLists.Id AND dbo.RefLists.PublishingStatus = 0 ) "; context.ExecuteSqlCommand(query); query = @" UPDATE dbo.TagStatistics SET Favoritecount = ( SELECT COUNT(*) FROM dbo.Tags AS tag, dbo.Favorites AS fav WHERE dbo.TagStatistics.TagId = tag.Id AND fav.Kind = 2 AND fav.TagId = tag.Id ) "; context.ExecuteSqlCommand(query); } }
private void UpdateAuditValues() { var now = DateTime.Now; var auditing = ( from e in ChangeTracker.Entries <IAuditable>() where e.State == EntityState.Added || e.State == EntityState.Modified select e ).ToArray(); if (auditing.Any()) { var container = MochaContainer.GetContainer(); var userContext = container.Resolve <IUserContext>(); if (!userContext.IsAuthenticated) { throw new InvalidOperationException(); } var user = userContext.GetUser(); foreach (var e in auditing) { if (e.State == EntityState.Added) { e.Entity.CreatedUserId = user.Id; e.Entity.CreatedDate = now; } e.Entity.UpdatedDate = now; e.Entity.UpdatedUserId = user.Id; } } }
public void Subscribe <T, TConsumer>() where TConsumer : IMessageConsumer <T> { var container = MochaContainer.GetContainer(); var consumerInterfaceType = typeof(IMessageConsumer <T>); var name = typeof(TConsumer).FullName; container.RegisterType <IMessageConsumer <T>, TConsumer>(name); }
public static void InitContainer(Func <LifetimeManager> perRequestLifetimeManagerProvider) { var container = MochaContainer.GetContainer(); container.RegisterType <IRefsContext, RefsContext>(perRequestLifetimeManagerProvider()); container.RegisterType <ISearchEngine, SearchEngine>(perRequestLifetimeManagerProvider()); container.RegisterType <IRefsContext, RefsContext>("job"); container.RegisterType <ISearchEngine, SearchEngine>("job"); }
public static void ValidateWritePermission(long?userId) { var container = MochaContainer.GetContainer(); var userContext = container.Resolve <IUserContext>(); if (userContext.GetUser().Id != userId) { throw new BusinessException(Errors.InvalidUserWrite, Convert.ToString(userId)); } }
public void Send <T>(T message) { var container = MochaContainer.GetContainer(); var consumerInterfaceType = typeof(IMessageConsumer <T>); var resolved = container.ResolveAll(consumerInterfaceType); var consumers = resolved.Cast <IMessageConsumer <T> >(); foreach (var consumer in consumers) { consumer.Consume(message); } }
/// <summary>Integrates Unity when the application starts.</summary> public static void Start() { MochaContainer.RegisterTypes = UnityConfig.RegisterTypes; var container = MochaContainer.GetContainer(); FilterProviders.Providers.Remove(FilterProviders.Providers.OfType <FilterAttributeFilterProvider>().First()); FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(container)); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); // TODO: Uncomment if you want to use PerRequestLifetimeManager Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule)); }
[OutputCache(Duration = 600)] /// 10分 public ActionResult NewlyArrivedRefLists() { var refListHandler = MochaContainer.Resolve <IRefListHandler>(); var req = new GetRefListsRequest( null, null, null, null, null, null, PublishingStatusConditionKind.PublishOnly, 0, 10, RefListSortKind.PublishedDateDescending ); var task = Task.Run(() => refListHandler.GetRefListsAsync(req)); var result = task.Result; var vm = Mapper.Map <IEnumerable <RefListViewModel> >(result.RefLists); return(View("Action/_NewlyArrivedRefLists", vm)); }
public User GetUser() { if (Request.IsAuthenticated) { var container = MochaContainer.GetContainer(); var userContext = container.Resolve <IUserContext>(); return(userContext.GetUser()); } else { return(null); } }
public void Execute(IJobExecutionContext context) { _logger.Info("Begin building index"); try { var handler = MochaContainer.Resolve <ISystemHandler>(); handler.BuildIndex(); _logger.Info("Finish building index"); } catch (Exception ex) { _logger.Error("Failed building index" + ex.ToString()); } }
public void Execute(IJobExecutionContext context) { _logger.Info("Begin update tag statistics"); try { var handler = MochaContainer.Resolve <ISystemHandler>(); handler.UpdateTagStatistics(); _logger.Info("Finish updating tag statistics"); } catch (Exception ex) { _logger.Error("Failed updating tag statistics" + ex.ToString()); } }
public async Task TestAddByBookmarklet_Get() { // arrange var title = "タイトル1"; var url = "http://www.mochaware.jp/"; var pagedRefLists = ObjectMother.GetPagedRefLists(); var queryStrs = new NameValueCollection() { { "title", title }, }; MapConfig.CreateMaps(); MochaContainer.RegisterTypes = ObjectMother.RegisterAuthenticatedUserContext; MochaContainer.GetContainer(); var mocks = new ControllerContextMocks(); mocks.UnvalidatedRequestValues.Setup(u => u.QueryString).Returns(queryStrs); mocks.Request.Setup(r => r.IsAuthenticated).Returns(true); var handlerMock = new Mock <IRefListHandler>(); handlerMock.Setup(h => h.GetRefListsAsync(It.IsAny <GetRefListsRequest>())).ReturnsAsync(pagedRefLists); var controller = new ListController(null, null, handlerMock.Object, null, null); controller.ControllerContext = mocks.CreateControllerContext(controller); // act var result = await controller.AddByBookmarklet(url) as ViewResult; // assert var model = result.Model as AddByBookmarkletPageViewModel; Assert.IsNotNull(result); Assert.AreEqual("", result.ViewName); Assert.AreEqual( pagedRefLists.RefLists.FirstOrDefault().Title, model.RefLists.FirstOrDefault().Title ); }
public void OnActionExecuting(ActionExecutingContext filterContext) { var container = MochaContainer.GetContainer(); var user = filterContext.HttpContext.User; var identityUserId = user.Identity.GetUserId(); var refsUser = default(User); if (identityUserId != null) { var handler = container.Resolve <IUserHandler>(); refsUser = handler.GetUser(Convert.ToInt64(identityUserId)); } filterContext.HttpContext.Items[WebConsts.RefsUserKey] = refsUser; filterContext.Controller.ViewBag.User = refsUser; filterContext.Controller.ViewBag.Id = refsUser == null ? "" : refsUser.Id.ToString(); filterContext.Controller.ViewBag.UserName = refsUser == null ? "" : refsUser.UserName; filterContext.Controller.ViewBag.DisplayName = refsUser == null ? "" : refsUser.DisplayName; }
public static void Config() { var channel = MochaContainer.Resolve <ISubscribableChannel>(); channel.Subscribe <RefListUpdatedMessage, RefListUpdatedMessageConsumer>(); }
public void BuildIndex() { var search = MochaContainer.Resolve <ISearchEngine>("job"); search.BuildIndex(); }