Обновление метки ASP NET в интервале, в зависимости от увеличения INT при выделении кода - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь найти решение для этого.

У меня есть кнопка, которая запускает foreach для вставки через API некоторых записей, это занимает от 2 до 6 минут. В то же время у меня есть загрузка GIF и сообщения (пока работает хорошо), в цикле foreach я получил int ++, так что я знаю, сколько записей я обработал до сих пор - это INT мне нужно показать на странице aspx с интервалом обновления, чтобы пользователь мог видеть, как к настоящему времени обработано много записей.

Страница aspx

            <asp:UpdatePanel ID="processedUpdate" runat="server">
                <ContentTemplate>
                    <div class="row">
                        <div class="col-sm-12" style="text-align: center">
                            Processed:
                            <asp:Label ID="lblProcDone" runat="server"></asp:Label>
                            /
                            <asp:Label ID="lblProcLeft" runat="server"></asp:Label>
                        </div>
                    </div>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="timerProcessed" EventName="Tick" />
                </Triggers>
            </asp:UpdatePanel>

Код-за

        public int progressedItems = 0;
        public int emailsCountAll = 0;

        protected void btnUpdateContactsMailchimp_Click(object sender, EventArgs e)
        {
            //Class_MySQLProvider msp = new Class_MySQLProvider();

            //List<string> ls = msp.emailsLists();

            List<string> ls = new List<string>() { "d23vejrik@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "d23vejrik@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "d23vejrik@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "d23vejrik@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "d23vejrik@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "d23vejrik@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "d23vejrik@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "d23vejrik@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com", "d23vejrik@gmail.com", "s23vejrik@gmail.com", "jakub.vejrik23@gmail.com" };

            var client = new RestClient("x");
            var request = new RestRequest(Method.POST);
            int emailNotImportCount = 0;
            int emailImportCount = 0;
            emailsCountAll = ls.Count;



            //for each 
            foreach (string item in ls)
            {
                request.AddHeader("Authorization", "Basic x");
                request.AddHeader("Content-Type", "application/json");
                JsonObject jobj = new JsonObject();
                jobj.Add("email_address", item);
                jobj.Add("status", "subscribed");
                request.AddParameter("undefined", jobj.ToString(), ParameterType.RequestBody);
                IRestResponse response = client.Execute(request);
                request.Parameters.Clear();
                if (response.StatusCode.ToString() == "OK")
                {
                    emailImportCount++;
                }
                else
                {
                    emailNotImportCount++;
                }
                progressedItems++;
            }

            timerProcessed.Enabled = false;
            lblCountImport.Text = emailImportCount.ToString();
            lblCountNotImport.Text = emailNotImportCount.ToString();
            alertDuplicityMailImport.Visible = true;
            alertSuccessMailImport.Visible = true;
        }

        protected void timerProcessed_Tick(object sender, EventArgs e)
        {
            lblProcDone.Text = progressedItems.ToString();
            lblProcLeft.Text = emailsCountAll.ToString();
        }

С наилучшими пожеланиями, Якуб, спасибо.

...