コード例 #1
0
        public async Task <CustomerResponse <List <CustomerStatus> > > Import(IFormFile formFile, CancellationToken cancellationToken)
        {
            if (formFile == null || formFile.Length <= 0)
            {
                return(CustomerResponse <List <CustomerStatus> > .GetResult(-1, "File này đang rỗng!", 0, 0, null));
            }

            if (!Path.GetExtension(formFile.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase))
            {
                return(CustomerResponse <List <CustomerStatus> > .GetResult(-1, "Loại file này không được hỗ trợ!", 0, 0, null));
            }
            var filename = formFile.FileName;
            var list     = new List <Customer>();

            using (var stream = new MemoryStream())
            {
                await formFile.CopyToAsync(stream, cancellationToken);

                using (var package = new ExcelPackage(stream))
                {
                    ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
                    var            rowCount  = worksheet.Dimension.Rows;

                    for (int row = 3; row <= rowCount; row++)
                    {
                        Customer customer = new Customer();
                        customer.CustomerCode      = worksheet.Cells[row, 1].Value == null ? "" : worksheet.Cells[row, 1].Value.ToString().Trim();
                        customer.CustomerName      = worksheet.Cells[row, 2].Value == null ? "" : worksheet.Cells[row, 2].Value.ToString().Trim();
                        customer.CustomerMemberId  = worksheet.Cells[row, 3].Value == null ? "" : worksheet.Cells[row, 3].Value.ToString().Trim();
                        customer.CustomerGroupName = worksheet.Cells[row, 4].Value == null ? "" : worksheet.Cells[row, 4].Value.ToString().Trim();
                        customer.PhoneNumber       = worksheet.Cells[row, 5].Value == null ? "" : worksheet.Cells[row, 5].Value.ToString().Trim();
                        customer.CompanyName       = worksheet.Cells[row, 7].Value == null ? "" : worksheet.Cells[row, 7].Value.ToString().Trim();
                        customer.TaxCode           = worksheet.Cells[row, 8].Value == null ? "" : worksheet.Cells[row, 8].Value.ToString().Trim();
                        customer.Email             = worksheet.Cells[row, 9].Value == null ? "" : worksheet.Cells[row, 9].Value.ToString().Trim();
                        customer.Address           = worksheet.Cells[row, 10].Value == null ? "" : worksheet.Cells[row, 10].Value.ToString().Trim();
                        customer.Note = worksheet.Cells[row, 11].Value == null ? "" : worksheet.Cells[row, 11].Value.ToString().Trim();
                        //customer.DateOfBirth = DateTime.Parse(worksheet.Cells[row, 6].Value.ToString().Trim());

                        list.Add(customer);
                    }
                }
            }

            var rows = _customerStatusService.ProcessData(list);

            if (rows.Data.Count() > 0 || rows != null)
            {
                return(CustomerResponse <List <CustomerStatus> > .GetResult(0, "Dữ liệu đã xử lý thành công", rows.SuccessCount, rows.FailCount, rows.Data));
            }
            else
            {
                return(CustomerResponse <List <CustomerStatus> > .GetResult(1, "Có lỗi khi xử lý dữ liệu", 0, 0, null));
            }
        }
コード例 #2
0
        public async Task <CustomerResponse <List <Customer> > > Import(IFormFile formFile,
                                                                        CancellationToken cancellationToken)
        {
            //kiểm tra file null
            if (formFile == null || formFile.Length <= 0)
            {
                return(CustomerResponse <List <Customer> > .GetResult(-1, "formfile is empty"));
            }
            // kiểm tra định dạng file
            if (!Path.GetExtension(formFile.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase))
            {
                return(CustomerResponse <List <Customer> > .GetResult(-1, "Not support file extension"));
            }
            //thực hiện get dữ liệu từ file
            var list = new List <Customer>();

            using (var stream = new MemoryStream())
            {
                await formFile.CopyToAsync(stream, cancellationToken);

                using (var package = new ExcelPackage(stream))
                {
                    ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
                    var            rowCount  = worksheet.Dimension.Rows;
                    for (int row = 3; row < rowCount; row++)
                    {
                        //get ngày tháng
                        //khởi tạo biến dateTime = ngày hiện tại
                        DateTime dateTime = DateTime.Today;
                        // kiểm tra null
                        if (worksheet.Cells[row, 6].Value == null)
                        {
                            // nếu null gán = ngày hiện tại
                            dateTime = DateTime.UtcNow;
                        }
                        else
                        {   // lấy dữ liệu dateTime trong file excel và parse về kiểu Datetime
                            string sDate = worksheet.Cells[row, 6].Value.ToString();
                            //dateTime = DateTime.ParseExact(sDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                            //validate datetime
                            //- Nếu chỉ nhập năm thì ngày sinh hiển thị sẽ là 01/01/[năm]
                            //- Nếu nhập tháng/ năm thì sẽ lấy ngày là ngày 01: 01/[tháng]/[năm]
                            dateTime = (DateTime)validDateOfBirth(sDate);
                        }

                        // get email
                        //khởi tạo email = ""
                        var email = "";
                        // kiểm tra giá trị null khi lấy từ trong file excel
                        if (worksheet.Cells[row, 9].Value == null)
                        { // gán email = null nếu giá trị = null
                            email = null;
                        }
                        else
                        {// gán giá trị email = giá trị trong file excel
                            email = worksheet.Cells[row, 9].Value.ToString().Trim();
                        }
                        //thêm dữ liệu và list
                        list.Add(new Customer
                        {
                            CustomerCode      = (worksheet.Cells[row, 1].Value == null) ? "" : worksheet.Cells[row, 1].Value.ToString().Trim(),
                            FullName          = (worksheet.Cells[row, 2].Value == null) ? "" : worksheet.Cells[row, 2].Value.ToString().Trim(),
                            MemberCardCode    = (worksheet.Cells[row, 3].Value == null) ? "" : worksheet.Cells[row, 3].Value.ToString().Trim(),
                            CustomerGroupName = (worksheet.Cells[row, 4].Value == null) ? "" : worksheet.Cells[row, 4].Value.ToString().Trim(),
                            PhoneNumber       = (worksheet.Cells[row, 5].Value == null) ? "" : worksheet.Cells[row, 5].Value.ToString().Trim(),
                            //DateOfBirth = DateTime.Parse( worksheet.Cells[row, 6].Value.ToString()),
                            DateOfBirth    = dateTime,
                            CompanyName    = (worksheet.Cells[row, 7].Value == null) ? "" : worksheet.Cells[row, 7].Value.ToString().Trim(),
                            CompanyTaxCode = (worksheet.Cells[row, 8].Value == null) ? "" : worksheet.Cells[row, 8].Value.ToString().Trim(),
                            Email          = email,
                            Address        = (worksheet.Cells[row, 10].Value == null) ? "" : worksheet.Cells[row, 10].Value.ToString().Trim(),
                            Note           = (worksheet.Cells[row, 11].Value == null) ? "" : worksheet.Cells[row, 11].Value.ToString().Trim()
                        });
                    }
                }
            }
            //kiểm tra các trường mã khách hàng, tên nhóm khách hàng, số điện thoại có bị trùng lặp trong file hoặc đã tồn tại trên hệ thống
            for (var k = 0; k < list.Count; k++)
            {
                list[k].Status = null;
                //kiểm tra trùng lặp trong file
                // khởi tạo biến check Mã khách hàng:
                // false - không có trong file
                // true - có trong file
                bool checkCustomerCode = false;
                // khởi tạo biến check số điện thoại:
                // false - không có trong file
                // true - có trong file
                bool checkPhoneNumber = false;
                for (int i = k + 1; i < list.Count; i++)
                {
                    // kiểm tra trùng mã khách hàng
                    if (list[k].CustomerCode == list[i].CustomerCode)
                    {
                        checkCustomerCode = true;
                    }
                    //Kiểm tra trùng số điện thoại
                    if (list[k].PhoneNumber == list[i].PhoneNumber)
                    {
                        checkPhoneNumber = true;
                    }
                }
                //add status
                if (checkCustomerCode)
                {
                    list[k].Status += "Mã khách hàng đã trùng với mã khách hàng khách trong tệp nhập khẩu. \n";
                }
                if (checkPhoneNumber)
                {
                    list[k].Status += "Số điện thoại " + list[k].PhoneNumber + " đã trùng với số điện thoại của khách hàng khác trong tệp nhập khẩu.\n";
                }
                //kiểm tra trùng trong cơ sở dữ liệu.
                check(list[k]);
            }
            // thêm vào db
            var rowAffect = Insert(list);

            return(CustomerResponse <List <Customer> > .GetResult(0, "OK", list));
        }
コード例 #3
0
        public async Task <CustomerResponse <List <CustomerStatus> > > Import(IFormFile formFile, CancellationToken cancellationToken)
        {
            if (formFile == null || formFile.Length <= 0)
            {
                return(CustomerResponse <List <CustomerStatus> > .GetResult(-1, "File này đang rỗng!", 0, 0, null));
            }

            if (!Path.GetExtension(formFile.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase))
            {
                return(CustomerResponse <List <CustomerStatus> > .GetResult(-1, "Loại file này không được hỗ trợ!", 0, 0, null));
            }
            var filename = formFile.FileName;
            var list     = new List <CustomerStatus>();

            using (var stream = new MemoryStream())
            {
                await formFile.CopyToAsync(stream, cancellationToken);

                using (var package = new ExcelPackage(stream))
                {
                    ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
                    var            rowCount  = worksheet.Dimension.Rows;

                    for (int row = 3; row <= rowCount; row++)
                    {
                        Customer customer = new Customer();
                        customer.CustomerCode      = worksheet.Cells[row, 1].Value == null ? "" : worksheet.Cells[row, 1].Value.ToString().Trim();
                        customer.CustomerName      = worksheet.Cells[row, 2].Value == null ? "" : worksheet.Cells[row, 2].Value.ToString().Trim();
                        customer.CustomerMemberId  = worksheet.Cells[row, 3].Value == null ? "" : worksheet.Cells[row, 3].Value.ToString().Trim();
                        customer.CustomerGroupName = worksheet.Cells[row, 4].Value == null ? "" : worksheet.Cells[row, 4].Value.ToString().Trim();
                        customer.PhoneNumber       = worksheet.Cells[row, 5].Value == null ? "" : worksheet.Cells[row, 5].Value.ToString().Trim();
                        customer.CompanyName       = worksheet.Cells[row, 7].Value == null ? "" : worksheet.Cells[row, 7].Value.ToString().Trim();
                        customer.TaxCode           = worksheet.Cells[row, 8].Value == null ? "" : worksheet.Cells[row, 8].Value.ToString().Trim();
                        customer.Email             = worksheet.Cells[row, 9].Value == null ? "" : worksheet.Cells[row, 9].Value.ToString().Trim();
                        customer.Address           = worksheet.Cells[row, 10].Value == null ? "" : worksheet.Cells[row, 10].Value.ToString().Trim();
                        customer.Note = worksheet.Cells[row, 11].Value == null ? "" : worksheet.Cells[row, 11].Value.ToString().Trim();
                        //customer.DateOfBirth = DateTime.Parse(worksheet.Cells[row, 6].Value.ToString().Trim());

                        CustomerStatus customerStatus = new CustomerStatus();
                        customerStatus.Customer = customer;

                        customerStatus.StatusDetail = StatusData(list, customer);
                        if (customerStatus.StatusDetail != "Hợp lệ")
                        {
                            customerStatus.DataIsValid = true;
                        }
                        else
                        {
                            customerStatus.DataIsValid = false;
                        }
                        list.Add(customerStatus);

                        //list.Add(new CustomerStatus
                        //{
                        //    CustomerCode = worksheet.Cells[row, 1].Value.ToString().Trim(),
                        //    CustomerName = worksheet.Cells[row, 2].Value.ToString().Trim(),
                        //    CustomerMemberId = worksheet.Cells[row, 3].Value.ToString().Trim(),
                        //    CustomerGroupName = worksheet.Cells[row, 4].Value.ToString().Trim(),
                        //    PhoneNumber = worksheet.Cells[row, 5].Value.ToString().Trim(),
                        //    //tempDate = worksheet.Cells[row, 6].Value.ToString().Trim(),
                        //    DateOfBirth = DateTime.Parse(worksheet.Cells[row, 6].Value.ToString().Trim()),
                        //    CompanyName = worksheet.Cells[row, 7].Value.ToString().Trim(),
                        //    TaxCode = worksheet.Cells[row, 8].Value.ToString().Trim(),
                        //    Email = worksheet.Cells[row, 9].Value == null ? "" : worksheet.Cells[row, 9].Value.ToString().Trim(),
                        //    Address = worksheet.Cells[row, 10].Value == null ? "" : worksheet.Cells[row, 10].Value.ToString().Trim(),
                        //});
                    }
                }
            }

            // add list to db ..
            // here just read and return

            return(CustomerResponse <List <CustomerStatus> > .GetResult(0, "OK", 0, 0, list));
        }