Ejemplo n.º 1
0
        public ReadFromExcelDto <KhachHang> ReadFromExcel(string FilePath)
        {
            ReadFromExcelDto <KhachHang> result = new ReadFromExcelDto <KhachHang>();

            var Data = ReadFile(FilePath, "DanhSachKhachHang");

            if (Data.Count <= 0 || Data[0].Count < 4)
            {
                result.ResultCode   = (int)Global.GlobalConst.ReadExcelResultCode.CantReadData;
                result.ErrorMessage = "Không đọc được dữ liệu, sai cấu trúc file hoặc dữ liệu rỗng!";
            }
            else
            {
                for (int i = 0; i < Data.Count; i++)
                {
                    try
                    {
                        string Name        = Data[i][1];
                        string PhoneNumber = Data[i][2];
                        string Address     = Data[i][3];

                        if (string.IsNullOrWhiteSpace(Name) || PhoneNumber.Length > 32 || Address.Length > 4000)
                        {
                            result.ListErrorRow.Add(Data[i]);
                        }
                        else
                        {
                            result.ListResult.Add(new KhachHang
                            {
                                Name        = Name,
                                PhoneNumber = PhoneNumber,
                                Address     = Address
                            });
                        }
                    }
                    catch
                    {
                        result.ListErrorRow.Add(Data[i]);
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
        public async Task <ReadFromExcelDto <CongViec> > ReadFromExcel(string FilePath)
        {
            // Lấy thông tin trạm dịch vụ để tra cứu Id từ mã trạm
            var TramDichVus = await _tramDichVuRepository.GetAll().ToListAsync();

            SortedList <string, int> SortedTramDichVu = new SortedList <string, int>();

            foreach (var tram in TramDichVus)
            {
                if (!SortedTramDichVu.ContainsKey(tram.Code))
                {
                    SortedTramDichVu.Add(tram.Code, tram.Id);
                }
            }

            ReadFromExcelDto <CongViec> result = new ReadFromExcelDto <CongViec>();

            var Data = ReadFile(FilePath, "DanhSachCongViec");

            if (Data.Count <= 0 || Data[0].Count < 4)
            {
                result.ResultCode   = (int)Global.GlobalConst.ReadExcelResultCode.CantReadData;
                result.ErrorMessage = "Không đọc được dữ liệu, sai cấu trúc file hoặc dữ liệu rỗng!";
            }
            else
            {
                for (int i = 0; i < Data.Count; i++)
                {
                    try
                    {
                        DateTime?NgayHen = null;
                        if (!string.IsNullOrWhiteSpace(Data[i][1]))
                        {
                            NgayHen = DateTime.FromOADate(double.Parse(Data[i][1]));
                        }

                        string SoGiaoNhan = Data[i][2];
                        string MaTram     = Data[i][3];
                        //string TenTram = Data[i][4];
                        string TenKhachHang = Data[i][5];
                        string SoDienThoai  = Data[i][6];
                        string DiaChi       = Data[i][7];
                        string TenSanPham   = Data[i][8];
                        string Model        = Data[i][9];
                        string Serial       = Data[i][10];
                        string HienTuongLoi = Data[i][11];

                        if (string.IsNullOrWhiteSpace(SoDienThoai))
                        {
                            result.ListErrorRow.Add(Data[i]);
                        }
                        else
                        {
                            var newCongViec = new CongViec
                            {
                                NgayGioHen    = NgayHen,
                                SoGiaoNhan    = SoGiaoNhan,
                                KhachHangName = TenKhachHang,
                                SoDienThoai   = SoDienThoai,
                                DiaChi        = DiaChi,
                                SanPhamName   = TenSanPham,
                                SanPhamModel  = Model,
                                SanPhamSerial = Serial,
                                NoiDung       = HienTuongLoi,

                                // các trường bắt buộc
                                TieuDe            = "",
                                ThanhTien         = 0,
                                TrangThaiId       = 0,
                                DaCapNhatLocation = false,
                                TimeId            = string.Format("{0:yyyyMM}", DateTime.Now)
                            };

                            // Kiểm tra nếu có mã trạm thì tìm TramDichVuId
                            if (!string.IsNullOrWhiteSpace(MaTram) && SortedTramDichVu.ContainsKey(MaTram))
                            {
                                newCongViec.TramDichVuId = SortedTramDichVu[MaTram];
                            }

                            // Kiểm tra Địa chỉ khác null thì tính Location
                            if (!string.IsNullOrWhiteSpace(DiaChi))
                            {
                                newCongViec.Location = await Global.GlobalFunction.GetLongLatFromAddress(_globalCache.GetGoogleApiKey(), DiaChi);
                            }

                            result.ListResult.Add(newCongViec);
                        }
                    }
                    catch
                    {
                        result.ListErrorRow.Add(Data[i]);
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Import excel.
        /// </summary>
        /// <param name="FilePath">Đường dẫn file trên server.</param>
        /// <returns>Danh sách đường dẫn.</returns>
        public async Task <string> ImportFileExcel(string FilePath)
        {
            StringBuilder returnMessage = new StringBuilder();

            returnMessage.Append("Kết quả nhập file:");
            ReadFromExcelDto <Demo> readResult = new ReadFromExcelDto <Demo>();

            // Không tìm thấy file
            if (!File.Exists(FilePath))
            {
                readResult.ResultCode = (int)GlobalConst.ReadExcelResultCode.FileNotFound;
            }

            // Đọc hết file excel
            var data = await GlobalFunction.ReadFromExcel(FilePath);

            // Không có dữ liệu
            if (data.Count <= 0)
            {
                readResult.ResultCode = (int)GlobalConst.ReadExcelResultCode.CantReadData;
            }
            else
            {
                // Đọc lần lượt từng dòng
                for (int i = 0; i < data.Count; i++)
                {
                    try
                    {
                        string ma  = data[i][0];
                        string ten = data[i][1];
                        var    checkboxTrueFalse  = data[i][2] == "1" ? true : false;
                        var    dropdownSingle     = int.Parse(data[i][3]);
                        var    autoCompleteSingle = int.Parse(data[i][4]);
                        var    newDemo            = new Demo
                        {
                            Ma  = ma,
                            Ten = ten,
                            CheckboxTrueFalse  = checkboxTrueFalse,
                            DropdownSingle     = dropdownSingle,
                            AutoCompleteSingle = autoCompleteSingle,
                        };

                        // Thêm các bản ghi hợp lệ vào db
                        await this.demoRepository.InsertAsync(newDemo);

                        // Đánh dấu các bản ghi thêm thành công
                        readResult.ListResult.Add(newDemo);
                    }
#pragma warning disable CA1031 // Do not catch general exception types
                    catch
#pragma warning restore CA1031 // Do not catch general exception types
                    {
                        // Đánh dấu các bản ghi lỗi
                        readResult.ListErrorRow.Add(data[i]);
                    }
                }
            }

            // Thông tin import
            readResult.ErrorMessage = GlobalModel.ReadExcelResultCode[readResult.ResultCode];

            // Nếu đọc file thất bại
            if (readResult.ResultCode != 200)
            {
                return(readResult.ErrorMessage);
            }
            else
            {
                // Đọc file thành công
                // Trả kết quả import
                returnMessage.Append(string.Format("\r\n\u00A0- Tổng ghi: {0}", readResult.ListResult.Count + readResult.ListErrorRow.Count));
                returnMessage.Append(string.Format("\r\n\u00A0- Số bản ghi thành công: {0}", readResult.ListResult.Count));
                returnMessage.Append(string.Format("\r\n\u00A0- Số bản ghi thất bại: {0}", readResult.ListErrorRow.Count));
            }

            return(returnMessage.ToString());
        }