Пример #1
0
 /// <summary>
 /// Metodo per l'impostazione di un item come visto
 /// </summary>
 /// <param name="itemId"></param>
 /// <param name="userId"></param>
 /// <param name="adminCode"></param>
 public static void SetItemAsViewed(int itemId, int userId, String adminCode)
 {
     using (NotificationServiceOperationsClient client = new NotificationServiceOperationsClient())
     {
         int instanceId = client.LoadInstanceByName(new LoadInstanceByNameRequest(adminCode)).LoadInstanceByNameResult.Id;
         client.SetItemViewed(new SetItemViewedRequest(itemId, userId, instanceId));
     }
 }
Пример #2
0
        /// <summary>
        /// Metodo per il recupero del numero di item ancora non visti da un utente
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="adminCode"></param>
        /// <returns></returns>
        public static int CountNotViewedItems(int userId, String adminCode)
        {
            using (NotificationServiceOperationsClient client = new NotificationServiceOperationsClient())
            {
                int instanceId = client.LoadInstanceByName(new LoadInstanceByNameRequest(adminCode)).LoadInstanceByNameResult.Id;

                return(client.CountNotViewedItems(new CountNotViewedItemsRequest(userId, instanceId)).CountNotViewedItemsResult);
            }
        }
Пример #3
0
        /// <summary>
        /// Inserimento di un item nel centro notifiche
        /// </summary>
        /// <param name="author">Autpre dell'item</param>
        /// <param name="text">Contenuto dell'item</param>
        /// <param name="title">Titolo dell'item</param>
        /// <param name="userId">Id dell'utente a cui notificare l'item</param>
        /// <param name="channelLabel">Label del canale da associare all'item</param>
        /// <param name="idProfile">Id profile del documento legato all'item da inserire</param>
        /// <param name="registrationNumber">Numero di protocollo associato all'item da inserire</param>
        /// <param name="adminCode">Codice dell'amministrazione</param>
        public static void InsertItem(String author, String text, String title, int userId, String channelLabel, int idProfile, int registrationNumber, String adminCode)
        {
            try
            {
                using (NotificationServiceOperationsClient notificationServiceOperationsClient = new NotificationServiceOperationsClient())
                {
                    // Recupero del canale
                    Channel channel = notificationServiceOperationsClient.LoadChannelByLabel(new LoadChannelByLabelRequest(channelLabel)).LoadChannelByLabelResult;

                    // Se il canale è stato trovato, viene costruito ed inserito un nuovo item
                    if (channel != null)
                    {
                        Item item = new Item()
                        {
                            Author        = author,
                            FeedLink      = "",
                            Text          = text,
                            Title         = title,
                            MessageId     = idProfile,
                            MessageNumber = registrationNumber
                        };

                        // Recupero delle informazioni sull'istanza
                        Instance instance = notificationServiceOperationsClient.LoadInstanceByName(new LoadInstanceByNameRequest(adminCode)).LoadInstanceByNameResult;

                        if (instance != null)
                        {
                            List <User> user = new List <User>()
                            {
                                new User()
                                {
                                    UserId = userId, InstanceId = instance.Id
                                }
                            };

                            // Inserimento item nel centro notifiche
                            notificationServiceOperationsClient.InsertItem(new InsertItemRequest(item, channel.Id, user));
                        }
                    }
                }
            }
            catch (Exception e)
            {
                logger.Debug("Errore durante l'inserimento di una notifica nel centro notifiche.", e);
            }
        }
Пример #4
0
 /// <summary>
 /// Metodo per la ricerca di item che soddisfano determinati parametri
 /// </summary>
 /// <param name="userId"></param>
 /// <param name="searchForMessageId"></param>
 /// <param name="lowMessageId"></param>
 /// <param name="hightMessageId"></param>
 /// <param name="searchForDate"></param>
 /// <param name="lowDate"></param>
 /// <param name="hightDate"></param>
 /// <param name="searchForTitle"></param>
 /// <param name="itemText"></param>
 /// <param name="adminCode"></param>
 /// <returns></returns>
 public static List <Item> SearchItem(int userId, bool searchForMessageId, int lowMessageId, int hightMessageId,
                                      bool searchForDate, DateTime lowDate, DateTime hightDate,
                                      bool searchForTitle, String itemText, String adminCode)
 {
     using (NotificationServiceOperationsClient client = new NotificationServiceOperationsClient())
     {
         try
         {
             int instanceId = client.LoadInstanceByName(new LoadInstanceByNameRequest(adminCode)).LoadInstanceByNameResult.Id;
             return(client.SearchItem(new SearchItemRequest(
                                          userId, searchForMessageId, lowMessageId, hightMessageId, searchForDate, lowDate, hightDate, searchForTitle, itemText, instanceId)).SearchItemResult);
         }
         catch (Exception e)
         {
             return(null);
         }
     }
 }
Пример #5
0
        /// <summary>
        /// Metodo per il caricamento degli item non visualizzati da un particolare utente.
        /// </summary>
        /// <param name="administrationId">Id dell'amministrazione cui appartiene l'utente</param>
        /// <param name="administrationCode">Codice dell'amministrazione cui appartiene l'utente</param>
        /// <param name="userId">Id dell'utente per cui caricare gli item</param>
        /// <param name="itemCount">Numero di item restituiti dalla ricerca</param>
        /// <param name="pageNumber">Numero di pagina da caricare</param>
        /// <param name="pageSize">Dimensione della pagina</param>
        /// <returns>Lista degli item non ancora visti da un utente</returns>
        public static List <Item> LoadItemsNotViewedByUser(int administrationId, String administrationCode, int userId, int pageNumber, int pageSize, out int itemCount)
        {
            List <Item> items = new List <Item>();

            itemCount = 0;

            using (NotificationServiceOperationsClient client = new NotificationServiceOperationsClient())
            {
                // Ricerca dell'istanza con codice administrationCode
                int instanceId = client.LoadInstanceByName(new LoadInstanceByNameRequest(administrationCode)).LoadInstanceByNameResult.Id;

                // Caricamento dei canali registrati per l'amministrazione passata per parametro
                List <Channel> channels = client.LoadChannelsRelatedToInstance(
                    new LoadChannelsRelatedToInstanceRequest(instanceId)).LoadChannelsRelatedToInstanceResult;

                // Caricamento degli item per i canali individuati
                if (channels != null)
                {
                    foreach (var channel in channels)
                    {
                        SearchItemsNotViewedByUserResponse itemsResponse =
                            client.SearchItemsNotViewedByUser(
                                new SearchItemsNotViewedByUserRequest(
                                    userId,
                                    channel.Id,
                                    pageSize,
                                    pageNumber,
                                    instanceId));
                        itemCount += itemsResponse.itemCount;
                        items.AddRange(itemsResponse.SearchItemsNotViewedByUserResult);
                    }
                }
            }

            return(items);
        }