Ejemplo n.º 1
0
        public IList <SubscriptionObject> GetSubscriptions([FromUri] string dataId = null)
        {
            log.Info("Incoming request to " + GetCurrentMethod());

            if (!string.IsNullOrEmpty(dataId) && !FormatValidation.IsValidUvid(dataId))
            {
                throw CreateHttpResponseException(HttpStatusCode.BadRequest, "Invalid UVID format");
            }

            try
            {
                // Find all ACL objects for specified MessageID
                IEnumerable <VisSubscription> subList;

                if (string.IsNullOrEmpty(dataId))
                {
                    subList = _subscriptionService.Get(includeProperties: "SubscriberIdentity");
                }
                else
                {
                    subList = _subscriptionService.Get(s => s.MessageID == dataId, includeProperties: "SubscriberIdentity");
                }

                // Create result list
                var response = new List <SubscriptionObject>();

                if (subList != null)
                {
                    foreach (var item in subList)
                    {
                        var subObj = new SubscriptionObject
                        {
                            EndpointURL  = new Uri(item.CallbackEndpoint),
                            IdentityId   = item.SubscriberIdentity.UID,
                            IdentityName = item.SubscriberIdentity.Name
                        };
                        response.Add(subObj);
                    }
                }
                SetLastInteractionTime();
                _context.SaveChanges();
                return(response);
            }
            catch (HttpResponseException ex)
            {
                log.Error(ex.Message, ex);

                throw;
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);

                string msg = "VIS internal server error. " + ex.Message;

                throw CreateHttpResponseException(HttpStatusCode.InternalServerError, msg);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="subscription"></param>
 /// <param name="member"></param>
 /// <param name="embed"></param>
 /// <param name="description"></param>
 public NotificationItem(SubscriptionObject subscription, DiscordMember member, DiscordEmbed embed, string description, string city, PokemonData pokemon = null)
 {
     Subscription = subscription;
     Member       = member;
     Embed        = embed;
     Description  = description;
     City         = city;
     Pokemon      = pokemon;
 }
Ejemplo n.º 3
0
        public IList <SubscriptionObject> GetSubscriptions([FromUri] string dataId = null)
        {
            log.Info("Incoming request to " + GetCurrentMethod());

            try
            {
                // Find all ACL objects for specified MessageID
                IEnumerable <SpisSubscription> subList;

                if (string.IsNullOrEmpty(dataId))
                {
                    subList = _SpisSubscriptionService.Get(includeProperties: "SubscriberIdentity");
                }
                else
                {
                    subList = _SpisSubscriptionService.Get(s => s.MessageID == dataId, includeProperties: "SubscriberIdentity");
                }

                // Create result list
                var response = new List <SubscriptionObject>();

                if (subList != null)
                {
                    foreach (var item in subList)
                    {
                        var subObj = new SubscriptionObject
                        {
                            MbEndpointURL   = new Uri(item.MbEndpoint),
                            AmssEndpointURL = new Uri(item.AmssEndpoint),
                            IdentityId      = item.SubscriberIdentity.UID,
                            IdentityName    = item.SubscriberIdentity.Name
                        };
                        response.Add(subObj);
                        //_logEventService.LogSuccess(string.Format("Identity {0} found.", item.SubscriberIdentity.UID), InstanceContext.ServiceId, "STM Module",
                        //    dataId, EventCategory.Success);
                    }
                }
                return(response);
            }
            catch (HttpResponseException ex)
            {
                log.Error(ex.Message, ex);

                throw;
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);

                string msg = "SPIS internal server error. " + ex.Message;
                //_logEventService.LogError(msg, InstanceContext.ServiceId, "STM Module", dataId, EventCategory.InternalError);

                throw CreateHttpResponseException(HttpStatusCode.InternalServerError, msg);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Saves the subscription to the database.
        /// </summary>
        /// <param name="subscription">Subscription to save.</param>
        public void Save(SubscriptionObject subscription)
        {
            if (!IsDbConnectionOpen())
            {
                throw new Exception("Not connected to database.");
            }

            var conn = GetConnection();

            conn.Save(subscription, true);
        }
Ejemplo n.º 5
0
        private VisSubscription ConvertToEntity(SubscriptionObject subscriptionObject, string dataId)
        {
            var to = new VisSubscription();

            to.MessageID          = dataId;
            to.IsAuthorized       = true;
            to.CallbackEndpoint   = subscriptionObject.EndpointURL.ToString();
            to.MessageType        = _messageTypeService.Get(x => x.Name.ToLower() == "rtz").FirstOrDefault();
            to.SubscriberIdentity = _identityService.Get(x => x.UID == subscriptionObject.IdentityId).FirstOrDefault();
            return(to);
        }
        private void btnCreate_Click(object sender, RoutedEventArgs e)
        {
            if (this.txtRN.Text.Trim().Length > 0 &&
                (this.chbNet1.IsChecked.Value ||
                 this.chbNet2.IsChecked.Value ||
                 this.chbNet3.IsChecked.Value ||
                 this.chbNet4.IsChecked.Value) &&
                this.lstUrls.Items.Count > 0)
            {
                SUB = new SubscriptionObject();

                this.SUB.RN = this.txtRN.Text;

                List <string> lstNets = new List <string>();

                if (this.chbNet1.IsChecked.Value)
                {
                    lstNets.Add("1");
                }
                if (this.chbNet2.IsChecked.Value)
                {
                    lstNets.Add("2");
                }
                if (this.chbNet3.IsChecked.Value)
                {
                    lstNets.Add("3");
                }
                if (this.chbNet4.IsChecked.Value)
                {
                    lstNets.Add("4");
                }

                this.SUB.NET = lstNets.ToArray();

                List <string> lstNus = new List <string>();

                for (int i = 0; i < this.lstUrls.Items.Count; i++)
                {
                    lstNus.Add((this.lstUrls.Items[i] as ListBoxItem).Content.ToString());
                }

                this.SUB.NU = lstNus.ToArray();

                this.DialogResult = true;
                this.Close();
            }
            else
            {
                MessageBox.Show("Please input the necessary information for Subscription", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Ejemplo n.º 7
0
        public string GetUserIconStyle(SubscriptionObject user)
        {
            var styles = _whConfig.IconStyles;
            var keys   = styles.Keys.ToList();

            for (var i = 0; i < keys.Count; i++)
            {
                var key = keys[i];
                if (string.Compare(key, user.IconStyle, true) == 0)
                {
                    return(key);
                }
            }
            return("Default");
        }
Ejemplo n.º 8
0
        public async Task <IList <SubscriptionObject> > GetSubscriptions()
        {
            if (azureADAuthResult == null)
            {
                throw new Exception(Properties.Resources.AzureADAuthResult);
            }

            // Common subscription object to host subscriptions from RDFE & ARM
            IList <SubscriptionObject> subscriptionList = new List <SubscriptionObject>();

            subscriptionCredentials = new Microsoft.Azure.TokenCloudCredentials(azureADAuthResult.AccessToken);
            subscriptionClient      = new Microsoft.Azure.Subscriptions.SubscriptionClient(subscriptionCredentials, new Uri(Properties.Settings.Default.appIdURI));

            var cancelToken = new CancellationToken();

            var tenants = subscriptionClient.Tenants.ListAsync(cancelToken).Result;

            // Get subscriptions for each tenant
            foreach (var tenant in tenants.TenantIds)
            {
                try
                {
                    AuthenticationResult tenantTokenCreds =
                        AuthenticateHelper.RefreshTokenByAuthority(tenant.TenantId,
                                                                   Properties.Settings.Default.appIdURI);
                    subscriptionCredentials = new Microsoft.Azure.TokenCloudCredentials(tenantTokenCreds.AccessToken);
                    var tenantSubscriptionClient =
                        new Microsoft.Azure.Subscriptions.SubscriptionClient(subscriptionCredentials,
                                                                             new Uri(Properties.Settings.Default.appIdURI));
                    var subscriptionListResults = tenantSubscriptionClient.Subscriptions.ListAsync(cancelToken).Result;

                    foreach (var subscription in subscriptionListResults.Subscriptions)
                    {
                        var subList = new SubscriptionObject();
                        subList.Name           = subscription.DisplayName;
                        subList.SubscriptionId = subscription.SubscriptionId;
                        subList.Authority      = tenant.TenantId;
                        subscriptionList.Add(subList);
                    }
                }
                catch (Exception ex)
                {
                    // ignored
                }
            }

            return(subscriptionList);
        }
 public static string GetName(SubscriptionObject @object)
 {
     if (@object == SubscriptionObject.Default)
     {
         return("по умолчанию");
     }
     if (@object == SubscriptionObject.ComponentType)
     {
         return("на тип компонента");
     }
     if (@object == SubscriptionObject.Component)
     {
         return("на компонент");
     }
     return("?");
 }
        public async Task <IList <SubscriptionObject> > GetSubscriptions()
        {
            if (azureADAuthResult == null)
            {
                throw new Exception(Properties.Resources.AzureADAuthResult);
            }

            // Common subscription object to host subscriptions from RDFE & ARM
            IList <SubscriptionObject> subscriptionList = new List <SubscriptionObject>();

            subscriptionCredentials = new Microsoft.Azure.TokenCloudCredentials(azureADAuthResult.AccessToken);
            subscriptionClient      = new Microsoft.Azure.Subscriptions.SubscriptionClient(subscriptionCredentials);

            var cancelToken = new CancellationToken();

            Microsoft.Azure.Subscriptions.Models.SubscriptionListResult subscriptionResults = await subscriptionClient.Subscriptions.ListAsync(cancelToken);

            // Add any ARM subscriptions to the common subscription object
            foreach (var subscription in subscriptionResults.Subscriptions)
            {
                var subList = new SubscriptionObject();
                subList.Name           = subscription.DisplayName;
                subList.SubscriptionId = subscription.SubscriptionId;
                subList.Authority      = "common";
                subscriptionList.Add(subList);
            }

            // Add any RDFE subscriptions to the common subscription object
            IList <Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionListOperationResponse.Subscription> RDFEsubscriptions = await GetRDFESubscriptions();

            foreach (var subscription in RDFEsubscriptions)
            {
                // Only add subscriptions that are not already in the subscription list
                if (subscriptionList.Where(x => x.SubscriptionId == subscription.SubscriptionId).Count() == 0)
                {
                    var subList = new SubscriptionObject();
                    subList.Name           = subscription.SubscriptionName;
                    subList.SubscriptionId = subscription.SubscriptionId;
                    subList.Authority      = subscription.ActiveDirectoryTenantId;
                    subscriptionList.Add(subList);
                }
            }

            return(subscriptionList);
        }
        public SubscriptionColumnData GetColumnData(SubscriptionObject subscriptionObject, SubscriptionChannel channel)
        {
            var column = new SubscriptionColumnData()
            {
                Channel            = channel,
                SubscriptionObject = subscriptionObject
            };

            // находим подписку
            var channelSubscriptions = AllSubscriptions.Where(x => x.Channel == channel).ToArray();

            if (subscriptionObject == SubscriptionObject.Default)
            {
                column.Subscription = channelSubscriptions.SingleOrDefault(x => x.Object == SubscriptionObject.Default);
                column.Selected     = column.Subscription != null && channelSubscriptions.Length == 1; // единственная подписка
                column.Title        = "Подписка по умолчанию";
                column.CreateUrl    = $"/Subscriptions/Add?userId={User.Id}&object={subscriptionObject}&channel={channel}";
            }
            else if (subscriptionObject == SubscriptionObject.ComponentType)
            {
                column.Subscription = channelSubscriptions.SingleOrDefault(x =>
                                                                           x.Object == SubscriptionObject.ComponentType &&
                                                                           x.ComponentTypeId == Component.ComponentTypeId);

                // если нет подписки на компонент
                column.Selected  = column.Subscription != null && channelSubscriptions.FirstOrDefault(x => x.Object == SubscriptionObject.Component) == null;
                column.Title     = "Подписка на тип компонента";
                column.CreateUrl = $"/Subscriptions/Add?userId={User.Id}&object={subscriptionObject}&channel={channel}&componentTypeId={Component.ComponentTypeId}";
            }
            else if (subscriptionObject == SubscriptionObject.Component)
            {
                column.Subscription = channelSubscriptions.SingleOrDefault(x =>
                                                                           x.Object == SubscriptionObject.Component &&
                                                                           x.ComponentId == Component.Id);

                column.Selected  = column.Subscription != null;
                column.Title     = "Подписка на компонент";
                column.CreateUrl = $"/Subscriptions/Add?userId={User.Id}&object={subscriptionObject}&channel={channel}&componentId={Component.Id}";
            }
            else
            {
                throw new Exception("Неизвестный тип подписки " + subscriptionObject);
            }
            return(column);
        }
        public async Task<IList<SubscriptionObject>> GetSubscriptions()
        {
            if (azureADAuthResult == null)
                throw new Exception(Properties.Resources.AzureADAuthResult);

            // Common subscription object to host subscriptions from RDFE & ARM
            IList<SubscriptionObject> subscriptionList = new List<SubscriptionObject>();

            subscriptionCredentials = new Microsoft.Azure.TokenCloudCredentials(azureADAuthResult.AccessToken);
            subscriptionClient = new Microsoft.Azure.Subscriptions.SubscriptionClient(subscriptionCredentials);

            var cancelToken = new CancellationToken();
            Microsoft.Azure.Subscriptions.Models.SubscriptionListResult subscriptionResults = await subscriptionClient.Subscriptions.ListAsync(cancelToken);

            // Add any ARM subscriptions to the common subscription object
            foreach (var subscription in subscriptionResults.Subscriptions)
            {
                var subList = new SubscriptionObject();
                subList.Name = subscription.DisplayName;
                subList.SubscriptionId = subscription.SubscriptionId;
                subList.Authority = "common";
                subscriptionList.Add(subList);
            }

            // Add any RDFE subscriptions to the common subscription object
            IList<Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionListOperationResponse.Subscription> RDFEsubscriptions = await GetRDFESubscriptions();
            foreach (var subscription in RDFEsubscriptions)
            {
                // Only add subscriptions that are not already in the subscription list
                if (subscriptionList.Where(x => x.SubscriptionId == subscription.SubscriptionId).Count() == 0)
                {
                    var subList = new SubscriptionObject();
                    subList.Name = subscription.SubscriptionName;
                    subList.SubscriptionId = subscription.SubscriptionId;
                    subList.Authority = subscription.ActiveDirectoryTenantId;
                    subscriptionList.Add(subList);
                }
            }

            return subscriptionList;
        }
Ejemplo n.º 13
0
        public SubscriptionsTableModel GetTable(SubscriptionObject obj)
        {
            var model = new SubscriptionsTableModel()
            {
                Object = obj,
                UserId = UserId
            };
            var subscriptions = Subscriptions.Where(x => x.Object == obj).ToArray();

            // подписки по умолчанию
            if (obj == SubscriptionObject.Default)
            {
                var emails = subscriptions.Where(x => x.Channel == SubscriptionChannel.Email).ToArray();
                var sms    = subscriptions.Where(x => x.Channel == SubscriptionChannel.Sms).ToArray();

                var row = new SubscriptionsTableRowModel()
                {
                    Email = new ShowSubscriptionCellModel()
                    {
                        Channel = SubscriptionChannel.Email,
                        Object  = SubscriptionObject.Default
                    },
                    Sms = new ShowSubscriptionCellModel()
                    {
                        Channel = SubscriptionChannel.Sms,
                        Object  = SubscriptionObject.Default
                    }
                };

                row.Email.Subscription = emails.SingleOrDefault(x => x.Object == SubscriptionObject.Default);
                row.Sms.Subscription   = sms.SingleOrDefault(x => x.Object == SubscriptionObject.Default);
                model.Rows             = new[] { row };
            }

            // подписки на тип компонента
            if (obj == SubscriptionObject.ComponentType)
            {
                var componentTypeGroups = subscriptions.GroupBy(x => x.ComponentTypeId).Select(x => new
                {
                    ComponentType = x.First().ComponentType,
                    Subscriptions = x.ToArray()
                })
                                          .OrderBy(x => x.ComponentType.DisplayName)
                                          .ToArray();

                var rows = new List <SubscriptionsTableRowModel>();
                foreach (var componentTypeGroup in componentTypeGroups)
                {
                    var row = new SubscriptionsTableRowModel()
                    {
                        Email = new ShowSubscriptionCellModel()
                        {
                            Channel  = SubscriptionChannel.Email,
                            Object   = SubscriptionObject.ComponentType,
                            ObjectId = componentTypeGroup.ComponentType.Id
                        },
                        Sms = new ShowSubscriptionCellModel()
                        {
                            Channel  = SubscriptionChannel.Sms,
                            Object   = SubscriptionObject.ComponentType,
                            ObjectId = componentTypeGroup.ComponentType.Id
                        }
                    };

                    row.Email.Subscription = componentTypeGroup.Subscriptions.SingleOrDefault(x => x.Channel == SubscriptionChannel.Email);
                    row.Sms.Subscription   = componentTypeGroup.Subscriptions.SingleOrDefault(x => x.Channel == SubscriptionChannel.Sms);
                    rows.Add(row);
                }
                model.Rows = rows.ToArray();
            }

            // подписки на компонент
            if (obj == SubscriptionObject.Component)
            {
                var componentGroups = subscriptions.GroupBy(x => x.ComponentId).Select(x => new
                {
                    Component     = x.First().Component,
                    FullName      = ComponentHelper.GetComponentPathText(x.First().Component),
                    Subscriptions = x.ToArray()
                })
                                      .OrderBy(x => x.FullName)
                                      .ToArray();

                var rows = new List <SubscriptionsTableRowModel>();
                foreach (var componentGroup in componentGroups)
                {
                    var row = new SubscriptionsTableRowModel()
                    {
                        Email = new ShowSubscriptionCellModel()
                        {
                            Channel  = SubscriptionChannel.Email,
                            Object   = SubscriptionObject.Component,
                            ObjectId = componentGroup.Component.Id
                        },
                        Sms = new ShowSubscriptionCellModel()
                        {
                            Channel  = SubscriptionChannel.Sms,
                            Object   = SubscriptionObject.Component,
                            ObjectId = componentGroup.Component.Id
                        }
                    };

                    row.Email.Subscription = componentGroup.Subscriptions.SingleOrDefault(x => x.Channel == SubscriptionChannel.Email);
                    row.Sms.Subscription   = componentGroup.Subscriptions.SingleOrDefault(x => x.Channel == SubscriptionChannel.Sms);
                    rows.Add(row);
                }
                model.Rows = rows.ToArray();
            }

            // родительские связи
            foreach (var row in model.Rows)
            {
                row.Table     = model;
                row.Email.Row = row;
                row.Sms.Row   = row;
            }
            return(model);
        }
 public static string GetEditTitle(SubscriptionObject @object)
 {
     return("Настройка подписки " + GetName(@object));
 }
 public static string GetAddTitle(SubscriptionObject @object)
 {
     return("Добавление подписки " + GetName(@object));
 }