예제 #1
0
        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
        }