コード例 #1
0
 public MessageService(IPushNotificationProvider pushNotificationProvider)
 {
     PushNotification = pushNotificationProvider;
     UnitOfWork       = new CoreUnitOfWork();
     MessageBiz       = new MessageBiz(UnitOfWork);
     NotificationBiz  = new NotificationBiz(UnitOfWork);
 }
 public CommunicationsService(ICommunicationsRepository communicationsRepository,
                              IStudentRepository studentRepository,
                              IParentRepository parentRepository,
                              ITeacherRepository teacherRepository,
                              IImageProvider imageProvider,
                              IPushNotificationProvider pushNotificationProvider,
                              IMessagingProvider messagingProvider,
                              ISMSProvider smsProvider,
                              ITranslationProvider translationProvider,
                              ICustomParametersProvider customParametersProvider,
                              IDateProvider dateProvider,
                              ICollection <IMessageProvider> messageProviders,
                              IStaffRepository staffRepository)
 {
     _communicationsRepository = communicationsRepository;
     _studentRepository        = studentRepository;
     _parentRepository         = parentRepository;
     _teacherRepository        = teacherRepository;
     _imageProvider            = imageProvider;
     _pushNotificationProvider = pushNotificationProvider;
     _messagingProvider        = messagingProvider;
     _smsProvider              = smsProvider;
     _translationProvider      = translationProvider;
     _customParametersProvider = customParametersProvider;
     _dateProvider             = dateProvider;
     _messageProviders         = messageProviders;
     _staffRepository          = staffRepository;
 }
コード例 #3
0
 public CommentService(IPushNotificationProvider pushNotificationProvider)
 {
     UnitOfWork       = new CoreUnitOfWork();
     CommentBiz       = new CommentBiz(UnitOfWork);
     NotificationBiz  = new NotificationBiz(UnitOfWork);
     ContentBiz       = new ContentBiz(UnitOfWork);
     PushNotification = pushNotificationProvider;
 }
コード例 #4
0
 public BlogService(IPushNotificationProvider pushNotificationProvider)
 {
     UnitOfWork               = new CoreUnitOfWork();
     BlogBiz                  = new BlogBiz(UnitOfWork);
     PublicationBiz           = new PublicationBiz(UnitOfWork);
     TagBiz                   = new TagBiz(UnitOfWork);
     FriendBiz                = new BlogLinkBiz(UnitOfWork);
     ContentBiz               = new ContentBiz(UnitOfWork);
     VisitBiz                 = new VisitBiz(UnitOfWork);
     PushNotificationProvider = pushNotificationProvider;
 }
コード例 #5
0
 public NotificationsService(INotificationsRepository notificationsRepository,
                             IPushNotificationProvider pushNotificationProvider,
                             IStaffRepository staffRepository,
                             IStudentRepository studentRepository,
                             ITranslationProvider translationProvider)
 {
     _notificationsRepository  = notificationsRepository;
     _pushNotificationProvider = pushNotificationProvider;
     _studentRepository        = studentRepository;
     _staffRepository          = staffRepository;
     _translationProvider      = translationProvider;
 }
コード例 #6
0
        protected virtual IPushNotificationProvider CreateProviderInstance(string className, string settings)
        {
            Type classType = Type.GetType(className);
            IPushNotificationProvider providerInstance = null;

            if (classType != null)
            {
                string assemblyQualifiedName = classType.AssemblyQualifiedName;
                providerInstance = ClassFactory.ForceGet <IPushNotificationProvider>(assemblyQualifiedName,
                                                                                     new ConstructorArgument("settings", settings));
            }
            return(providerInstance);
        }
コード例 #7
0
        public virtual void Send(Guid sysAdminUnitId, string title, string message, Dictionary <string, string> additionalData)
        {
            if (!_userConnection.GetIsFeatureEnabled("UseMobilePushNotifications"))
            {
                return;
            }
            EntitySchema            schema          = _userConnection.EntitySchemaManager.GetInstanceByName("PushNotificationToken");
            var                     esq             = new EntitySchemaQuery(schema);
            EntitySchemaQueryColumn tokenColumn     = esq.AddColumn("Token");
            EntitySchemaQueryColumn settingsColumn  = esq.AddColumn("=Service.Settings");
            EntitySchemaQueryColumn classNameColumn = esq.AddColumn("=Service.ClassName");

            esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "SysAdminUnit.Id", sysAdminUnitId));
            esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Service.Enabled", true));
            esq.IsDistinct = true;
            EntityCollection entityCollection = esq.GetEntityCollection(_userConnection);
            var providers = new Dictionary <string, IPushNotificationProvider>();

            foreach (var item in entityCollection)
            {
                var token     = item.GetTypedColumnValue <string>(tokenColumn.Name);
                var settings  = item.GetTypedColumnValue <string>(settingsColumn.Name);
                var className = item.GetTypedColumnValue <string>(classNameColumn.Name);
                IPushNotificationProvider providerInstance = null;
                if (!providers.ContainsKey(className))
                {
                    providerInstance = CreateProviderInstance(className, settings);
                    providers.Add(className, providerInstance);
                }
                else
                {
                    providers.TryGetValue(className, out providerInstance);
                }
                var data = new PushNotificationData()
                {
                    Token          = token,
                    Title          = title,
                    Message        = message,
                    AdditionalData = additionalData
                };
                providerInstance.Send(data);
            }
        }
コード例 #8
0
 public AssignmentThresholdAlertProvider(IAlertRepository alertRepository,
                                         ICustomParametersProvider customParametersProvider,
                                         ITypesRepository typesRepository,
                                         IMessagingProvider messagingProvider,
                                         IUrlProvider urlProvider,
                                         IImageProvider imageProvider,
                                         ISMSProvider smsProvider,
                                         IPushNotificationProvider pushNotificationProvider,
                                         ITranslationProvider translationProvider)
 {
     _alertRepository          = alertRepository;
     _customParametersProvider = customParametersProvider;
     _messagingProvider        = messagingProvider;
     _urlProvider              = urlProvider;
     _imageProvider            = imageProvider;
     _smsProvider              = smsProvider;
     _typesRepository          = typesRepository;
     _pushNotificationProvider = pushNotificationProvider;
     _translationProvider      = translationProvider;
 }
コード例 #9
0
 public UnreadMessagesAlertProvider(IAlertRepository alertRepository,
                                    ICustomParametersProvider customParametersProvider,
                                    ITypesRepository typesRepository,
                                    IMessagingProvider messagingProvider,
                                    IUrlProvider urlProvider,
                                    IImageProvider imageProvider,
                                    ISMSProvider smsProvider,
                                    IApplicationSettingsProvider applicationSettingsProvider,
                                    IPushNotificationProvider pushNotificationProvider,
                                    ITranslationProvider translationProvider)
 {
     _alertRepository          = alertRepository;
     _customParametersProvider = customParametersProvider;
     _messagingProvider        = messagingProvider;
     _urlProvider                 = urlProvider;
     _imageProvider               = imageProvider;
     _smsProvider                 = smsProvider;
     _typesRepository             = typesRepository;
     _applicationSettingsProvider = applicationSettingsProvider;
     _pushNotificationProvider    = pushNotificationProvider;
     _translationProvider         = translationProvider;
 }
 public PushNotificationMessageProvider(IPushNotificationProvider pushNotificationProvider)
 {
     _pushNotificationProvider = pushNotificationProvider;
 }