Exemple #1
0
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        var valid = true;

        if (!FileUploadControl.HasFile)
        {
            return;
        }
        var filename       = FileUploadControl.FileName;
        var s              = filename.Split('.');
        var extension      = s[s.Length - 1];
        var saveAsFileName = "UploadKtaBatchPayment_" + DateTime.Now.ToString("yyyyMMddhhmmss") + "." + extension;
        var contenttype    = FileUploadControl.PostedFile.ContentType;
        var log            = "";

        try
        {
            if (contenttype == "application/octet-stream" || contenttype == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" || contenttype == "application/vnd.ms-excel" || contenttype == "text/csv")
            {
                FileUploadControl.SaveAs(Server.MapPath(@"../../temp/xls/") + saveAsFileName);
                log += "Upload file " + filename + " success.\t" + DateTime.Now.ToString(CultureInfo.InvariantCulture) + "\n\r";
                var uploadedPath = Server.MapPath(@"../../temp/xls/") + saveAsFileName;

                var ctr    = 0;
                var parser = new Microsoft.VisualBasic.FileIO.TextFieldParser(uploadedPath);
                parser.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited;
                parser.SetDelimiters(new string[] { "," });

                while (!parser.EndOfData)
                {
                    string[] row = parser.ReadFields();
                    if (ctr == 0)
                    {
                        ctr = 1;
                    }
                    else
                    {
                        if (row != null)
                        {
                            var employee_code = row[0];
                            var employee_name = row[1];
                            var start_date    = row[5];
                            var end_date      = row[6];
                            var Quota         = row[7];

                            if (employee_code != "Employee_NIK")
                            {
                                try
                                {
                                    //InsertXlsRowData(row);
                                    EmpLeaveBalance _dalEmpLeaveBalance = null;
                                    Hashtable       htParameters        = null;

                                    _dalEmpLeaveBalance = new EmpLeaveBalance();
                                    htParameters        = new Hashtable();
                                    var iNextId = 0;
                                    htParameters.Clear();
                                    htParameters["p_Employee_Code"] = employee_code;
                                    htParameters["p_START_DATE"]    = Utility.ToDateTime(start_date);
                                    htParameters["p_END_DATE"]      = Utility.ToDateTime(end_date);
                                    htParameters["p_Quota"]         = Quota;
                                    Utility.ApplyDefaultProp(htParameters);
                                    _dalEmpLeaveBalance.InsertTempBalance(htParameters, ref iNextId);

                                    log += "Insert Data : " + employee_code + " - " + employee_name + " Success.\t" +
                                           DateTime.Now.ToString(CultureInfo.InvariantCulture) + "\n\r";
                                }
                                catch (Exception exc)
                                {
                                    log += "Insert Data : " + employee_code + " - " + employee_name +
                                           " Failed.\t" + exc.InnerException.Message + "\t" +
                                           DateTime.Now.ToString(CultureInfo.InvariantCulture) + "\n\r";
                                    valid = false;
                                    // Utility.ShowMessageBox(this, Utility.LOAD_DATA_FAIL_MESSAGE, ex, null, null);
                                }
                            }
                        }
                    }
                }

                Utility.ShowMessageBox(this,
                                       valid ? "Upload Success" : "Upload Success but error in processing data. Check Log for detail info.",
                                       null, "lstblleaveimport.aspx");
                //BindGridUpload();
            }
            else
            {
                Utility.ShowMessageBox(this, "Error Excel Format", null, null);
            }
        }
        catch (Exception ex)
        {
            Utility.ShowMessageBox(this, "Upload Failed.", ex, null);
        }

        CreateLog(log);
    }