получить обновление от запущенного процесса в ядре asp.net - PullRequest
0 голосов
/ 03 февраля 2019

Обновление 2/14 - У кого-нибудь есть идеи, как мне помочь с этим?

У меня есть процесс импорта файлов, который занимает от нескольких секунд дополная минута до завершения.

Мне нужно предоставить пользователю обновление о том, что происходит.Я «преобразованный» программист WinForms, который все еще работает над переходом на эту «веб-вещь», поскольку она, похоже, набирает обороты.

Как мне это сделать?Обычно я обновляю экранный элемент управления или счетчик.Если это длинный ответ, мне не нужен подробный кодовый ответ.Работают также ссылки на хорошие примеры или учебные пособия.

Я делаю вызов контроллеру с помощью сообщения ajax:

 // Make your POST
        $.ajax({
            type: "POST",
            url: '@Url.Action("ReadAndSaveCSVData", "Home")',
            data: fdata,
            contentType: false,
            processData: false,
            //async: false,
            success: function (response) {
                if (response != null) {
                    if (response) {
                        alert("Data Imported");
                        $('#fUpload').val('');
                    }
                    else {
                        alert("Import Failed");
                    }
                }
                //load1.style.display = 'none';
            },
            error: function (e) {
                //load1.style.display = 'none';
                //alert(e.responseText);
            }
        });

Контроллер, выполняющий эту работу, настроен следующим образом:

  using (LOBContext db = new LOBContext())
                    {
                        using (var transaction = db.Database.BeginTransaction())
                        {
                            try
                            {
                                LOBContext db2 = new LOBContext(); //create a seperate data context for creating new records that need to be accessed here.

                                foreach (var li in list)
                                {
                                    PayrollTimecardEntries tc = new PayrollTimecardEntries();

                                    //Get the Id's of the related records, or create them
                                    getPayrollDeptType(db, db2, li, tc);
                                    getEmployeeId(db, db2, li, tc);
                                    getPunchTypeId(db, db2, li, tc);

                                    tc.PunchDate = li.punchDate;
                                    tc.Hours = li.hours;
                                    tc.PaycorCreatedDatetime = li.paycoreCreatedDatetime;
                                    tc.CreatedbyPaycorUsername = li.paycoreCreatedByUserName.Trim('"');

                                    //see if this is a new entry or not
                                    int result = (from seek in db2.PayrollTimecardEntries
                                                  where seek.EmployeeId == tc.EmployeeId &&
                                                  seek.Hours == tc.Hours &&
                                                  seek.PaycorCreatedDatetime == tc.PaycorCreatedDatetime
                                                  select seek.Id).FirstOrDefault();
                                    if (result == 0) //only add new timecard entries
                                    {
                                        db2.PayrollTimecardEntries.Add(tc);
                                        db2.SaveChanges();

                                    }
                                }
                                transaction.Commit();
                            }
                            catch (Exception ex)
                            {
                                transaction.Rollback();
                                throw ex;
                            }
                        }
                    }
                    importSuccess = true;
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return importSuccess;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...