public CommunicationContactPartHandler(IRepository <CommunicationSmsRecord> Smsrepository, IRepository <CommunicationEmailRecord> Emailrepository, IRepository <CommunicationContactPartRecord> repository, ICommunicationService communicationService, IContactRelatedEventHandler contactEventHandler) { _Smsrepository = Smsrepository; _communicationService = communicationService; Filters.Add(StorageFilter.For(repository)); _Emailrepository = Emailrepository; T = NullLocalizer.Instance; _contactEventHandler = contactEventHandler; Filters.Add(new ActivatingFilter <EmailContactPart>("CommunicationContact")); OnLoaded <EmailContactPart>(LazyLoadEmailHandlers); Filters.Add(new ActivatingFilter <SmsContactPart>("CommunicationContact")); OnLoaded <SmsContactPart>(LazyLoadSmsHandlers); Filters.Add(new ActivatingFilter <FavoriteCulturePart>("CommunicationContact")); #region sync user profile // OnCreated<UserPart>((context, part) => UpdateProfile(context.ContentItem)); OnUpdated <UserPart>((context, part) => UpdateProfile(context.ContentItem)); OnRemoved <UserPart>((context, part) => { _communicationService.UnboundFromUser(part); }); OnRemoved <CommunicationContactPart>((context, part) => { _communicationService.RemoveMailsAndSms(part.Id); _contactEventHandler.ContactRemoved(part.Id); }); OnUpdated <CommunicationContactPart>((context, part) => _communicationService.ContactToUser(part.ContentItem)); #endregion sync user profile }