예제 #1
0
        public void CreateOneNotification()
        {
            string Formato        = "File_{0}";
            string FormatoBacheca = "Bacheca_{0}.bacheca";
            NotificationToCommunity notification = new NotificationToCommunity();

            notification.ActionID        = 70007;
            notification.CommunityID     = 1;
            notification.ModuleCode      = "SRVMATER";
            notification.ModuleID        = 1;
            notification.SentDate        = DateTime.Now;
            notification.ValueParameters = new List <string>();
            notification.ValueParameters.Add("");
            notification.ValueParameters.Add("");
            notification.ValueParameters.Add("Facoltà di Economia");
            notification.NotificatedObjects = new List <dtoNotificatedObject>();
            notification.NotificatedObjects.Add(new dtoNotificatedObject()
            {
                FullyQualiFiedName = "file", ModuleCode = "SRVMATER", ModuleID = 1, ObjectID = "1", ObjectTypeID = 1
            });

            for (int i = 0; i < 1; i++)
            {
                notification.SentDate           = notification.SentDate.AddHours(1);
                notification.ValueParameters[1] = string.Format(Formato, i);
                notification.ValueParameters[0] = notification.ValueParameters[1] + ".download";
                this.SendNotificationToCommunity(notification);
            }
        }
예제 #2
0
        //----------------------------------------------NOTA--------------------
        // Ad un'ora prestabilità tipo 3.00 la coda non deve essere più svuotata
        // si elimina il summary e si ricalcola completamente.
        //
        // NB. elimino i record vecchi(più di due mesi)
        //
        // 1.Carico in memoria tutte le notifiche di un utente
        // 2.Creo un oggetto con l'indirizzamento(comunity,date,modulo,azione)
        //    passo tutti i record e estraggo ed elimino quelli uguali,(aggiungendo 1 al contatore)
        //
        // 3.salvo il record nel DB e passo al record successivo rimasto fino a quando la lista è vuota
        // 4.passo all'utente sucessivo fino a quando ho finito
        //
        // 5. FINITO..faccio ripartire l'inserimento
        //
        //----------------------------------------------------------------------
        //private void SummaryProcess()
        //{
        //    //Stop estrazione coda

        //    foreach (long p in AllPersons) //tutte le persone del sistma,utenti!!
        //    {
        //        //Lista elemnti riassunto
        //        List<NotificationSummary> summaries = new List<NotificationSummary>();

        //        //Lista dei messsagi di una determinata persona!
        //        List<NotificationMessage> message = (from m in NotificationMessage select m).ToList();
        //        //t in Notification where t. == TemplateType.SingleNotification select t).ToList<TemplateMessage>();

        //        foreach (NotificationMessage myM in message)
        //        {
        //            //
        //        }


        //    }


        //}


        private void UpdateReminderToPerson(NotificationToCommunity NotificationTo, int PersonID)
        {
            try
            {
                CommunityNewsSummaryRepository.Save(PersonID, NotificationTo.CommunityID);
                //CommunityNewsSummary reminder = (from CommunityNewsSummary rtp in session.Linq<CommunityNewsSummary>()
                //                                 where rtp.PersonID == PersonID && rtp.CommunityID == NotificationTo.CommunityID
                //                                 select rtp).FirstOrDefault<CommunityNewsSummary>();
                //if (reminder == null || reminder.ID == System.Guid.Empty)
                //{
                //    reminder = new CommunityNewsSummary();
                //    reminder.CommunityID = NotificationTo.CommunityID;
                //    reminder.PersonID = PersonID;
                //    reminder.ActionCount = 1;
                //    reminder.LastUpdate = DateTime.Now;
                //    reminder.LastUserRead = DateTime.MinValue;
                //}
                //else
                //{
                //    reminder.ActionCount++;
                //    reminder.LastUpdate = DateTime.Now;
                //}
                //CommunityNewsSummaryRepository.Save(reminder);
            }
            catch (Exception ex) {}
        }
예제 #3
0
        private List <int> AddUsersToMessage(System.Guid UniqueID, NotificationToCommunity NotificationTo, DateTime CurrentDay, List <int> DestinationPersons)
        {
            List <int> addedUsers = new List <int>();
            List <PersonNotification> pNotifications = (from int id in DestinationPersons
                                                        select new PersonNotification()
            {
                PersonID = id,
                NotificationUniqueID = UniqueID,
                Day = CurrentDay,
                CommunityID = NotificationTo.CommunityID,
                SentDate = NotificationTo.SentDate
            }).ToList <PersonNotification>();

            foreach (PersonNotification pn in pNotifications)
            {
                try{
                    if (NotificationToPersonRepository.Add(pn) == true)
                    {
                        addedUsers.Add(pn.PersonID);
                    }
                    //this.session.Save(pn);
                }
                catch (Exception ex) {
                }
            }
            return(addedUsers);
        }
예제 #4
0
        private void UpdatePersonSummary(List <TemplateMessage> summaryTemplates, NotificationToCommunity NotificationTo, int PersonID)
        {
            try
            {
                session.BeginTransaction();

                System.Guid UniqueSummaryID = System.Guid.NewGuid();

                DateTime Day = new DateTime(NotificationTo.SentDate.Year, NotificationTo.SentDate.Month, NotificationTo.SentDate.Day);


                List <NotificationSummary> UserSummaries = (from NotificationSummary s in dc.PersonSummaries
                                                            where s.PersonID == PersonID && s.ModuleID == NotificationTo.ModuleID &&
                                                            s.ActionID == NotificationTo.ActionID && s.Day == Day &&
                                                            s.CommunityID == NotificationTo.CommunityID
                                                            select s).ToList <NotificationSummary>();

                System.Guid DBUniqueID = System.Guid.NewGuid();
                if (UserSummaries.Count > 0)
                {
                    DBUniqueID = UserSummaries[0].UniqueNotifyID;
                }
                foreach (TemplateMessage template in summaryTemplates)
                {
                    try
                    {
                        NotificationSummary summary = (from NotificationSummary n in UserSummaries
                                                       where n.LanguageID == template.LanguageID
                                                       select n).FirstOrDefault <NotificationSummary>();
                        if (summary == null || summary.UniqueNotifyID == System.Guid.Empty)
                        {
                            summary = GetMessageSummary(NotificationTo, UniqueSummaryID, PersonID);
                            summary.UniqueNotifyID = DBUniqueID;
                            summary.Template       = template;
                            summary.LanguageID     = template.LanguageID;
                        }
                        if (summary.isDeleted)
                        {
                            summary.isDeleted     = false;
                            summary.TotalMessages = 0;
                        }
                        summary.TotalMessages++;
                        string messageToTranslate = string.Format(template.Message, summary.TotalMessages);

                        summary.Message = messageToTranslate;
                        session.SaveOrUpdate(summary);
                    }
                    catch (Exception ex)
                    {
                    }
                }

                session.CommitTransaction();
            }
            catch (Exception ex)
            {
                session.RollbackTransaction();
            }
        }
예제 #5
0
        private NotificationMessage GetMessage(NotificationToCommunity NotificationTo)
        {
            NotificationMessage Message = new NotificationMessage();

            Message.ActionID    = NotificationTo.ActionID;
            Message.CommunityID = NotificationTo.CommunityID;
            Message.ModuleCode  = NotificationTo.ModuleCode;
            Message.ModuleID    = NotificationTo.ModuleID;
            Message.SentDate    = NotificationTo.SentDate;
            //     Message.ID = System.Guid.NewGuid();
            Message.isDeleted = false;
            Message.Message   = "";
            Message.SavedDate = DateTime.Now;
            Message.Day       = new DateTime(NotificationTo.SentDate.Year, NotificationTo.SentDate.Month, NotificationTo.SentDate.Day);
            Message.isDeleted = false;
            // Message.PersonsNotification = new List<PersonNotification>();
            return(Message);
        }
예제 #6
0
        private NotificationSummary GetMessageSummary(NotificationToCommunity NotificationTo, System.Guid UniqueSummaryID, int PersonID)
        {
            NotificationSummary Summary = new NotificationSummary();

            Summary.ActionID       = NotificationTo.ActionID;
            Summary.CommunityID    = NotificationTo.CommunityID;
            Summary.ModuleCode     = NotificationTo.ModuleCode;
            Summary.ModuleID       = NotificationTo.ModuleID;
            Summary.SentDate       = NotificationTo.SentDate;
            Summary.isDeleted      = false;
            Summary.Message        = "";
            Summary.SavedDate      = DateTime.Now;
            Summary.Day            = new DateTime(NotificationTo.SentDate.Year, NotificationTo.SentDate.Month, NotificationTo.SentDate.Day);
            Summary.isDeleted      = false;
            Summary.UniqueNotifyID = UniqueSummaryID;
            Summary.Day            = new DateTime(NotificationTo.SentDate.Year, NotificationTo.SentDate.Month, NotificationTo.SentDate.Day);
            Summary.PersonID       = PersonID;
            return(Summary);
        }
예제 #7
0
        private System.Guid AddMessage(NotificationToCommunity NotificationTo)
        {
            List <TemplateMessage> singleTemplates = this.GetTemplates(NotificationTo.ActionID, NotificationTo.ModuleCode, TemplateType.SingleNotification);


            System.Guid UniqueID        = System.Guid.Empty;
            int         InsertedMessage = 0;

            foreach (TemplateMessage template in singleTemplates)
            {
                try
                {
                    session.BeginTransaction();
                    NotificationMessage message = this.GetMessage(NotificationTo);
                    string messageToTranslate   = string.Format(template.Message, (NotificationTo.ValueParameters).ToArray());

                    message.LanguageID     = template.LanguageID;
                    message.Message        = messageToTranslate;
                    message.UniqueNotifyID = NotificationTo.UniqueID;
                    message.Template       = template;
                    message.SavedDate      = DateTime.Now;
                    this.session.SaveOrUpdate(message);

                    session.CommitTransaction();
                    InsertedMessage++;
                }

                catch (Exception ex)
                {
                    session.RollbackTransaction();
                    ErrorHandler pError = new ErrorHandler();
                    pError.addMessageToPoisonQueue(NotificationTo, ex);
                }
            }
            if (InsertedMessage > 0)
            {
                return(NotificationTo.UniqueID);
            }
            else
            {
                return(System.Guid.Empty);
            }
        }
예제 #8
0
        public void NotifyToCommunity(NotificationToCommunity NotificationCommunity)
        {
            try
            {
                List <int> DestinationPersons = GetUsersByCommunity(NotificationCommunity.CommunityID);//CommunityService().GetCommunityMembersID(NotificationCommunity.CommunityID).ToList<int>();

                using (ISession currentSession = BasicSessionMgr.GetSession())
                {
                    if (currentSession != null)
                    {
                        NotificationRepository oDal = new NotificationRepository(currentSession, GetCachedTemplates());
                        oDal.AddNotificationMessage(NotificationCommunity, DestinationPersons);
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorHandler pError = new ErrorHandler();
                pError.addMessageToPoisonQueue(NotificationCommunity, ex);
            }
        }
예제 #9
0
        public void AddNotificationMessage(NotificationToCommunity NotificationTo, List <int> DestinationPersons)
        {
            System.Guid UniqueID = AddMessage(NotificationTo);

            if (UniqueID != System.Guid.Empty)
            {
                AddNotificatedObjects(UniqueID, NotificationTo.NotificatedObjects);
                List <int> addedUsers = new List <int>();
                DateTime   CurrentDay = new DateTime(NotificationTo.SentDate.Year, NotificationTo.SentDate.Month, NotificationTo.SentDate.Day);
                addedUsers = AddUsersToMessage(UniqueID, NotificationTo, CurrentDay, DestinationPersons);

                List <TemplateMessage> summaryTemplates = this.GetTemplates(NotificationTo.ActionID, NotificationTo.ModuleCode, TemplateType.SummaryNotification);
                foreach (int PersonID in addedUsers)
                {
                    this.UpdateReminderToPerson(NotificationTo, PersonID);
                }
                //foreach (int PersonID in addedUsers)
                //{
                //    this.UpdatePersonSummary(summaryTemplates, NotificationTo, PersonID);
                //}
            }
        }
예제 #10
0
        public void TEST_NotificaUtentiComunita(int CommunityID)
        {
            string Formato = "File_{0}";
            NotificationToCommunity notification = new NotificationToCommunity();

            notification.ActionID        = 12004;
            notification.CommunityID     = CommunityID;
            notification.ModuleCode      = "SRVBACH";
            notification.ModuleID        = 10;
            notification.SentDate        = DateTime.Now;
            notification.ValueParameters = new List <string>();
            notification.ValueParameters.Add("650");
            notification.ValueParameters.Add("22:00:00");
            notification.ValueParameters.Add("Autore solitario");
            notification.NotificatedObjects = new List <dtoNotificatedObject>();
            notification.NotificatedObjects.Add(new dtoNotificatedObject()
            {
                FullyQualiFiedName = "file", ModuleCode = "SRVBACH", ModuleID = 10, ObjectID = "1", ObjectTypeID = 1
            });

            this.SendNotificationToCommunity(notification);
        }
예제 #11
0
        public void CreateNotificationTest(int number)
        {
            string Formato        = "File_{0}";
            string FormatoBacheca = "Bacheca_{0}.bacheca";
            NotificationToCommunity notification = new NotificationToCommunity();

            notification.ActionID        = 70007;
            notification.CommunityID     = 1;
            notification.ModuleCode      = "SRVMATER";
            notification.ModuleID        = 1;
            notification.SentDate        = DateTime.Now;
            notification.ValueParameters = new List <string>();
            notification.ValueParameters.Add("");
            notification.ValueParameters.Add("");
            notification.ValueParameters.Add("Facoltà di Economia");
            notification.NotificatedObjects = new List <dtoNotificatedObject>();
            notification.NotificatedObjects.Add(new dtoNotificatedObject()
            {
                FullyQualiFiedName = "file", ModuleCode = "SRVMATER", ModuleID = 1, ObjectID = "1", ObjectTypeID = 1
            });


            for (int i = 0; i < number; i++)
            {
                notification.SentDate           = notification.SentDate.AddHours(1);
                notification.ValueParameters[1] = string.Format(Formato, i);
                notification.ValueParameters[0] = notification.ValueParameters[1] + ".download";
                this.SendNotificationToCommunity(notification);
            }


            NotificationToPerson notificationPerson = new NotificationToPerson();

            notificationPerson.ActionID        = 12004;
            notificationPerson.CommunityID     = 58;
            notificationPerson.ModuleCode      = "SRVBACH";
            notificationPerson.ModuleID        = 10;
            notificationPerson.SentDate        = DateTime.Now;
            notificationPerson.ValueParameters = new List <string>();
            notificationPerson.ValueParameters.Add("");
            notificationPerson.ValueParameters.Add("Laboratorio Maieutiche");
            notificationPerson.PersonsID = new List <int>();
            notificationPerson.PersonsID.Add(1);
            notificationPerson.PersonsID.Add(3);
            notificationPerson.PersonsID.Add(149);
            notification.NotificatedObjects = new List <dtoNotificatedObject>();
            notification.NotificatedObjects.Add(new dtoNotificatedObject()
            {
                FullyQualiFiedName = "bacheca", ModuleCode = "SRVBACH", ModuleID = 10, ObjectID = "1", ObjectTypeID = 1
            });

            for (int i = 0; i < number; i++)
            {
                notificationPerson.SentDate           = notificationPerson.SentDate.AddHours(1);
                notificationPerson.ValueParameters[0] = string.Format(FormatoBacheca, i) + "";;
                this.SendNotificationToPerson(notificationPerson);
            }


            NotificationToPermission notificationPermission = new NotificationToPermission();

            notificationPermission.ActionID        = 12006;
            notificationPermission.CommunityID     = 58;
            notificationPermission.ModuleCode      = "SRVBACH";
            notificationPermission.ModuleID        = 10;
            notificationPermission.SentDate        = DateTime.Now;
            notificationPermission.ValueParameters = new List <string>();
            notificationPermission.ValueParameters.Add("Laboratorio Maieutiche");
            notificationPermission.Permission = 6;
            notification.NotificatedObjects   = new List <dtoNotificatedObject>();
            notification.NotificatedObjects.Add(new dtoNotificatedObject()
            {
                FullyQualiFiedName = "bacheca", ModuleCode = "SRVBACH", ModuleID = 10, ObjectID = "1", ObjectTypeID = 1
            });

            for (int i = 0; i < number; i++)
            {
                notificationPermission.SentDate = notificationPermission.SentDate.AddHours(1);
                this.SendNotificationToPermission(notificationPermission);
            }
        }
예제 #12
0
 public void SendNotificationToCommunity(NotificationToCommunity notification)
 {
     _ServiceSender.SendNotificationToCommunity(notification);
 }
예제 #13
0
 public void NotifyToCommunity(NotificationToCommunity Notification)
 {
 }
 public void SendNotificationToCommunity(NotificationToCommunity notification)
 {
     //notification.SentDate = DateTime.Now;
     this.RemoteService.NotifyToCommunity(notification);
 }