Указанное время не поддерживается в этом календаре (ASP Boilerplate) - PullRequest
0 голосов
/ 14 февраля 2019

Я использую ASP.Net Boilerplate v3.2.4 и у меня проблемы с загрузкой файла Excel в контроллер MVC с помощью HttpRequestBase из Angularjs v1.7.5 с использованием FileUploader

Итак, при попытке загрузить файл Excel возникло исключение, а языком сайта является арабский , например:

Указанное время не поддерживается в этом календаре.Это должно быть между 30.04.1900 00:00:00 (григорианская дата) и 16.11.2077 23:59:59 (григорианская дата) включительно.Имя параметра: время

AppServiceBase:

Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;

Код Angulrjs:

 appModule.controller('usersIndex', [ 'FileUploader', function (fileUploader) {
        var vm = this;

        vm.logoUploader = new fileUploader({
            url: "User/UploadExcel",
            headers: {
                "X-XSRF-TOKEN": abp.security.antiForgery.getToken()
            },
            queueLimit: 1,
            removeAfterUpload: true
        });

        uploader.onSuccessItem = function (item, ajaxResponse, status) {
            if (ajaxResponse.success) {
                abp.message.success("success");
            } else {
                abp.message.error("error");
            }
        };

        vm.uploadLogo = function () {
            vm.logoUploader.uploadAll();
        };
    }

Код контроллера:

    [HttpPost]
    public async Task<JsonResult> UploadExcel()
    {
        if (Request.Files.Count <= 0 || Request.Files[0] == null)
        {
            throw new UserFriendlyException(L("File_Empty_Error"));
        }

        var file = Request.Files[0];
        var usersList = new List<UserListDto>();

        using (var package = new ExcelPackage(file.InputStream))
        {
            var currentSheet = package.Workbook.Worksheets;
            var workSheet = currentSheet.First();

            usersList.Add(new UserListDto()
            {
                UserName = workSheet.Cells[1, 1].Value.ToString(),
                PhoneNumber = workSheet.Cells[1, 2].Value.ToString()
            });
        }

        return Json(new AjaxResponse(usersList));
    }

Содержимое EXCEL:

enter image description here

Я пыталсяотладка кода C # и кода Javacript и исключение не из них

Я ценю любую помощь

Спасибо

--- ОБНОВЛЕНИЕ ---

ВОЗМОЖНОЕ РЕШЕНИЕ:

Я нашел решение для себя, я использовал Dto для хранения данных перед загрузкой.И бывает, что этот Dto содержит даты, которые я не использовал напрямую, но он существует.

К сожалению, я не нашел решения проблемы культуры.

...