public static async Task Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, TraceWriter log)
        {
            using (BotService.Initialize())
            {
                var subscriptionFacade = new SubscriptionFacade();
                var reportsFacade      = new ReportsFacade();
                var unavailableDevices = await reportsFacade.GetUnavailableDeviceReports();

                var subscriptions = (await subscriptionFacade.GetAllSubscriptions()).ToArray();

                foreach (var subscription in subscriptions.Where(t => t.LastActivity != null && DateTime.UtcNow.Subtract(t.LastActivity.Created) > TimeSpan.FromDays(1)))
                {
                    var connector = new ConnectorClient(new Uri(subscription.ServiceUrl), Environment.GetEnvironmentVariable("MicrosoftAppId"), Environment.GetEnvironmentVariable("MicrosoftAppPassword"));
                    await connector.Conversations.DeleteActivityAsync(subscription.LastActivity.ConversationId, subscription.LastActivity.ActitityId);

                    subscription.LastActivity = null;
                    await subscriptionFacade.UpdateBotSubscription(subscription);
                }

                foreach (var deviceGroup in unavailableDevices.GroupBy(t => t.Group))
                {
                    var message    = new DeviceStatusMessage(deviceGroup.ToList());
                    var recipients = subscriptions.Where(t => t.GroupName == deviceGroup.Key);
                    await message.SendMessageToChannel("Found unavailable devices!", recipients);
                }
            }
        }
Esempio n. 2
0
        public IEnumerable <CustomerNote> GetActveUserGuides()
        {
            Log.Information("Executing GetActveUserGuides...");
            SubscriptionFacade facade = new SubscriptionFacade();
            var subs    = facade.ActiveUserGuideFacade();
            var results = subs.Result.ToList();

            return(results.AsEnumerable());
        }
Esempio n. 3
0
        protected void BtnAddSubscriptions_Click(object sender, EventArgs e)
        {
            List <Subscription> selectedSubscriptions = new List <Subscription>();

            //Iterate over each row in the gridview control
            foreach (GridViewRow currentRow in GvNewSubscriptions.Rows)
            {
                //Get a handle to the checkbox control in the current row
                CheckBox cbxSubscribe = (CheckBox)currentRow.FindControl("cbxSubscribe");

                //If it is checked
                if (cbxSubscribe.Checked)
                {
                    //Create a new subscription object
                    Subscription subscriptionDto = new Subscription();

                    //Populate the articleId
                    subscriptionDto.ArticleId = (Int32)GvNewSubscriptions.DataKeys[currentRow.RowIndex].Value;

                    subscriptionDto.VolumeIssueId = Convert.ToInt32(ddlIssues.SelectedValue);

                    subscriptionDto.UserId = Convert.ToInt32(_UserIdParam);

                    //TextBox tbDateEffective = (TextBox)currentRow.FindControl("tbDateEffective");
                    //TextBox tbDateExpiration = (TextBox)currentRow.FindControl("tbDateExpiration");
                    CheckBox cbxActive = (CheckBox)currentRow.FindControl("cbxActive");

                    subscriptionDto.EffectiveDate = DateTime.Parse(tbDateEffective.Text);

                    subscriptionDto.ExpirationDate = DateTime.Parse(tbDateExpiration.Text);

                    subscriptionDto.IsActive = (Boolean)cbxActive.Checked;

                    subscriptionDto.CreationUserId = UserInfo.UserDto.UserId;

                    //add it to list
                    selectedSubscriptions.Add(subscriptionDto);
                }
            }

            SubscriptionFacade facade = new SubscriptionFacade(BusinessFacadeBehavior.TRANSACTIONAL);

            ActionStatus status = facade.AddSubscriptions(selectedSubscriptions);

            //If subscription added successfully then reload available and existing
            //subscriptions
            if (status.IsSuccessful)
            {
                LoadAvailableSubscriptions();

                LoadExistingSubscriptions();
            }

            LblStatus.Text = GetFormattedMessages(status);
        }
Esempio n. 4
0
        private void LoadExistingSubscriptions()
        {
            SubscriptionFacade facade = new SubscriptionFacade();

            Subscription subscriptionDto = new Subscription();

            subscriptionDto.UserId = Convert.ToInt32(_UserIdParam);

            GvExistingSubscriptions.DataSource = facade.GetUserSubscriptions(subscriptionDto);

            GvExistingSubscriptions.DataBind();
        }
Esempio n. 5
0
        private async Task <string> ListSubscriptions(string messageChannelId)
        {
            var subscriptionFacade = new SubscriptionFacade();
            var sb = new StringBuilder();

            foreach (var subscription in await subscriptionFacade.GetAllSubscriptionsWithChannelId(messageChannelId))
            {
                sb.AppendLine($"{subscription.GroupName}");
            }

            return(sb.ToString());
        }
 protected async Task RegisterSubscription(IMessageActivity message, string groupName)
 {
     var subscriptionFacade = new SubscriptionFacade();
     var botSubscription    = new BotSubscription()
     {
         ChannelId  = message.ChannelData.channel.id,
         TeamId     = message.ChannelData.team.id,
         TenantId   = message.ChannelData.tenant.id,
         ServiceUrl = message.ServiceUrl,
         GroupName  = groupName
     };
     await subscriptionFacade.RegisterBotSubscription(botSubscription);
 }
        public async Task SendMessageToChannel(string title, BotSubscription subscription)
        {
            var subscriptionFacade = new SubscriptionFacade();
            var channelData        = new TeamsChannelData
            {
                Channel = new ChannelInfo(subscription.ChannelId),
                Team    = new TeamInfo(subscription.TeamId),
                Tenant  = new TenantInfo(subscription.TenantId)
            };

            var newMessageText = await Build();

            var newMessage = new Activity
            {
                Type = ActivityTypes.Message,
                Text = newMessageText.FixNewLines(),
            };
            var conversationParams = new ConversationParameters(
                isGroup: true,
                bot: null,
                members: null,
                topicName: title,
                activity: (Activity)newMessage,
                channelData: channelData);

            var connector = new ConnectorClient(new Uri(subscription.ServiceUrl), Environment.GetEnvironmentVariable("MicrosoftAppId"), Environment.GetEnvironmentVariable("MicrosoftAppPassword"));

            MicrosoftAppCredentials.TrustServiceUrl(subscription.ServiceUrl, DateTime.MaxValue);

            if (subscription.LastActivity == null)
            {
                var result = await connector.Conversations.CreateConversationAsync(conversationParams);

                subscription.LastActivity = new LastActivity
                {
                    ConversationId = result.Id,
                    ActitityId     = result.ActivityId
                };
            }
            else
            {
                var result = await connector.Conversations.UpdateActivityAsync(subscription.LastActivity.ConversationId, subscription.LastActivity.ActitityId, newMessage);

                subscription.LastActivity.ActitityId = result.Id;
            }

            await subscriptionFacade.UpdateBotSubscription(subscription);
        }
Esempio n. 8
0
        protected void GvExistingSubscriptions_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            TextBox tbEffectiveDate = GvExistingSubscriptions.Rows[e.RowIndex].Cells[7].Controls[0] as TextBox;

            TextBox tbExpirationDate = GvExistingSubscriptions.Rows[e.RowIndex].Cells[8].Controls[0] as TextBox;

            CheckBox cbxActive = GvExistingSubscriptions.Rows[e.RowIndex].Cells[9].Controls[0] as CheckBox;

            if (null != tbEffectiveDate && null != tbExpirationDate && null != cbxActive)
            {
                //Init subscription object
                DataTransferObjects.Subscription subscriptionDto = new DataTransferObjects.Subscription();

                //Init facade
                SubscriptionFacade facade = new SubscriptionFacade(BusinessFacadeBehavior.TRANSACTIONAL);

                //populate subscription object
                subscriptionDto.SubscriptionId =
                    Convert.ToInt32(GvExistingSubscriptions.DataKeys[e.RowIndex]["SubscriptionId"]);

                subscriptionDto.UserId = Convert.ToInt32(_UserIdParam);

                subscriptionDto.VolumeIssueId =
                    Convert.ToInt32(GvExistingSubscriptions.DataKeys[e.RowIndex]["VolumeIssueId"]);

                subscriptionDto.ArticleId = Convert.ToInt32(GvExistingSubscriptions.DataKeys[e.RowIndex]["ArticleId"]);

                subscriptionDto.EffectiveDate = DateTime.Parse(tbEffectiveDate.Text);

                subscriptionDto.ExpirationDate = DateTime.Parse(tbExpirationDate.Text);

                subscriptionDto.IsActive = cbxActive.Checked;

                subscriptionDto.UpdateUserId = UserInfo.UserDto.UserId;

                ActionStatus status = facade.UpdateSubscription(subscriptionDto);

                if (status.IsSuccessful)
                {
                    GvExistingSubscriptions.EditIndex = -1;

                    LoadExistingSubscriptions();
                }

                LblStatus.Text = GetFormattedMessages(status);
            }
        }
Esempio n. 9
0
        private void LoadAvailableSubscriptions()
        {
            if (ddlVolumes.SelectedIndex > 0 && ddlIssues.SelectedIndex > 0)
            {
                Subscription subscriptionDto = new Subscription();

                subscriptionDto.VolumeIssueId = Convert.ToInt32(ddlIssues.SelectedValue);

                subscriptionDto.UserId = Convert.ToInt32(_UserIdParam);

                SubscriptionFacade facade = new SubscriptionFacade();

                GvNewSubscriptions.DataSource = facade.GetUserAvailableSubscriptions(subscriptionDto);

                GvNewSubscriptions.DataBind();
            }
        }
Esempio n. 10
0
        protected void GvExistingSubscriptions_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            Subscription subscriptionDto = new Subscription();

            subscriptionDto.SubscriptionId = Convert.ToInt32(GvExistingSubscriptions.DataKeys[e.RowIndex].Value);

            SubscriptionFacade subscriptionFacade = new SubscriptionFacade(BusinessFacadeBehavior.TRANSACTIONAL);

            ActionStatus status = subscriptionFacade.DeleteSubscription(subscriptionDto);

            if (status.IsSuccessful)
            {
                LoadExistingSubscriptions();

                LoadAvailableSubscriptions();
            }

            LblStatus.Text = GetFormattedMessages(status);
        }
Esempio n. 11
0
        //public IActionResult Error()
        //{
        //    return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        //}

        public PartialViewResult Test()
        {
            _logger.LogInformation("\n#### Using AppLogger Warning####\n");
            ViewData["Message"] = "Test Ajax";
            ServiceLocatorTool serviceLocator = new ServiceLocatorTool();
            SubscriptionFacade facade         = new SubscriptionFacade();

            var subs = facade.SubscriptionFacade1();
            var res  = PartialView(new HomePageViewModel {
                Test1 = "Acc No.:-" + subs.Result[0].parentAccountNo.ToString(), Test2 = "Test 2"
            });

            return(res);

            //catch (Exception ex)
            //{
            //    var result = PartialView(new ErrorViewModel { RequestId = "RequestId" + ex.StackTrace.ToString()});
            //    return result;
            //}
        }
Esempio n. 12
0
        public IEnumerable <Subscription> GetSubscriptions()
        {
            Log.Error("Executing GetSubscription..");
            Log.Warning("THIS IS A WARNING FROM MY CODE...");
            try
            {
                var i = 10;
                i = i / 0;
            }
            catch (Exception ex)
            {
                Log.Fatal(ex.Message);
            }
            ServiceLocatorTool serviceLocator = new ServiceLocatorTool();
            // SubscriptionFacade facade = new SubscriptionFacade(serviceLocator.ObjServiceLocator);
            SubscriptionFacade facade = new SubscriptionFacade();
            var subs    = facade.SubscriptionFacade1();
            var results = subs.Result.ToList();

            return(results.AsEnumerable());
        }
Esempio n. 13
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var subscriptionInfo = new DaSubscriptionInfo()
                {
                    Email              = model.Email,
                    UserName           = model.Email,
                    TenantType         = DaTenantType.Organization,
                    OrganizationName   = model.CompanyName,
                    SubscriptionPlanId = (int)model.SubscriptionPlanId,
                    BillingCycleId     = (int)model.BillingCycleId,
                    Address1           = model.Address,
                    State              = model.State,
                    ZipCode            = model.ZipCode
                };

                // Examples of how to use attributes with arbitary keys and values.
                subscriptionInfo.UserProfileAttributes.Add("Avatar", "Images/Photo.jpg");
                subscriptionInfo.OrganizationProfileAttributes.Add("Logo", "Images/Logo.jpg");

                subscriptionInfo.SubscriptionAttributes.Add("Code", "65372");
                subscriptionInfo.SubscriptionAttributes.Add("PlatformID", "HLHHIJJ214");

                var result = await SubscriptionFacade.SubscribeAsync(subscriptionInfo, model.Password);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Login", "Account"));
                }

                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Esempio n. 14
0
        public Intialization()
        {
            var configPath = Path.Join(Directory.GetCurrentDirectory(), "configs.json");

            configContent = new JsonFileContent(configPath);
            consumer      = new Consumer(
                configContent.Value("RabbitUrl").ToString(),
                configContent.Value("RabbitLogin").ToString(),
                configContent.Value("RabbitPassword").ToString()
                );
            publisher = new Publisher(
                configContent.Value("RabbitUrl").ToString(),
                configContent.Value("RabbitLogin").ToString(),
                configContent.Value("RabbitPassword").ToString()
                );
            connection = new MySqlDatabaseConnection(
                configContent.Value("MySqlServer").ToString(),
                configContent.Value("MySqlDatabase").ToString(),
                configContent.Value("MySqlLogin").ToString(),
                configContent.Value("MySqlPassword").ToString()
                );
            databaseClient = new MySqlDatabaseClient(connection);
            facade         = new SubscriptionFacade("configs.json", consumer, publisher, databaseClient);
        }
Esempio n. 15
0
        protected void BtnRemoveAllSubscriptions_Click(object sender, EventArgs e)
        {
            ActionStatus status = null;

            if (GvExistingSubscriptions.Rows.Count > 0)
            {
                List <dto.Subscription> subscriptionsToDelete = new List <dto.Subscription>();

                //Iterate over each row in the gridview control
                foreach (GridViewRow currentRow in GvExistingSubscriptions.Rows)
                {
                    //Create a new subscription object
                    dto.Subscription subscriptionDto = new dto.Subscription();

                    //Populate the subscriptionId
                    subscriptionDto.SubscriptionId =
                        Convert.ToInt32(GvExistingSubscriptions.DataKeys[currentRow.RowIndex]["SubscriptionId"]);

                    subscriptionsToDelete.Add(subscriptionDto);
                }

                SubscriptionFacade facade = new SubscriptionFacade(BusinessFacadeBehavior.TRANSACTIONAL);

                status = facade.DeleteSubscriptions(subscriptionsToDelete);

                LoadExistingSubscriptions();
            }
            else
            {
                status = new ActionStatus();

                status.Messages.Add(new ActionMessage("No subscriptions available to delete."));
            }

            LblStatus.Text = GetFormattedMessages(status);
        }
 private async Task UnregisterSubscription(IMessageActivity message, string group)
 {
     var    subscriptionFacade = new SubscriptionFacade();
     string teamId             = message.ChannelData.team.id;
     await subscriptionFacade.UnregisterBotSubscription(teamId, group);
 }