Пример #1
0
        public IHttpActionResult Save()
        {
            Dictionary <string, object> RetData = new Dictionary <string, object>();

            try
            {
                string     Folder = "";
                string     slno   = "";
                imageTools tools  = new imageTools();

                Boolean isImageFile = false;
                Boolean isPdfFile   = false;

                DataTable Dt_Record  = new DataTable();
                DataTable Dt_Records = new DataTable();

                string uploadError = "";

                Dictionary <string, object> SearchData = new Dictionary <string, object>();

                Dictionary <string, string> Files2Remove = new Dictionary <string, string>();

                var      model  = HttpContext.Current.Request.Form["record"];
                pim_docm record = JsonConvert.DeserializeObject <pim_docm>(model);

                var        columnList = HttpContext.Current.Request.Form["records"];
                tablesd [] records    = JsonConvert.DeserializeObject <tablesd[]>(columnList);


                string ServerImageURL   = Lib.GetSeverImageURL(record._globalvariables.comp_code);
                string ServerReportPath = Lib.GetReportPath(record._globalvariables.comp_code);
                string ServerImagePath  = Lib.GetImagePath(record._globalvariables.comp_code);

                using (DocService obj = new DocService())
                {
                    Dt_Record = obj.getDataTableRecord(record.doc_pkid);
                    RetData   = obj.Save(record, records, ServerImageURL);
                    slno      = RetData["slno"].ToString();
                }

                // first save to report/temp folder
                System.Web.HttpFileCollection hfc = System.Web.HttpContext.Current.Request.Files;
                string REPID = System.Guid.NewGuid().ToString().ToUpper();
                ServerReportPath = Path.Combine(ServerReportPath, System.DateTime.Now.ToString("yyyy-MM-dd"), REPID);
                string smallname = "";
                for (int iCnt = 0; iCnt <= hfc.Count - 1; iCnt++)
                {
                    isImageFile = false;
                    isPdfFile   = false;
                    if (record.doc_file_name.ToUpper() == hfc[iCnt].FileName.ToUpper())
                    {
                        if (hfc[iCnt].ContentType.ToString().ToUpper().StartsWith("IMAGE"))
                        {
                            isImageFile = true;
                            smallname   = "ts.jpg";
                        }
                        if (Path.GetExtension(hfc[iCnt].FileName).ToUpper() == ".PDF")
                        {
                            isPdfFile = true;
                            smallname = "ts.jpg";
                        }
                    }
                    SaveFile(ServerReportPath, smallname, hfc[iCnt], isImageFile, isPdfFile, record._globalvariables.comp_code);
                }

                if (smallname != "")
                {
                    using (DocService obj = new DocService())
                    {
                        obj.UpdateDocFileName(record, "doc_thumbnail", smallname);
                        RetData["thumbnail"] = smallname;
                    }
                }

                //then copy to original folder
                string sError = "";
                if (record.doc_file_name.ToString().Trim().Length > 0)
                {
                    Folder = Lib.getPath(ServerImagePath, record._globalvariables.comp_code, record.doc_table_name, record.doc_slno.ToString(), true);
                    sError = Lib.CopyFile(Path.Combine(ServerReportPath, record.doc_file_name), Path.Combine(Folder, record.doc_file_name));
                    if (sError != "")
                    {
                        uploadError += "\n" + sError;
                        using (DocService obj = new DocService())
                        {
                            obj.UpdateDocFileName(record, "doc_file_name");
                            obj.UpdateDocFileName(record, "doc_thumbnail", "");
                        }
                    }
                    if (smallname != "")
                    {
                        sError = Lib.CopyFile(Path.Combine(ServerReportPath, smallname), Path.Combine(Folder, smallname));
                    }
                }

                foreach (tablesd mRow in records)
                {
                    if (mRow.tabd_col_type == "FILE")
                    {
                        Folder = Lib.getPath(ServerImagePath, record._globalvariables.comp_code, record.doc_table_name, record.doc_slno.ToString(), true);
                        sError = Lib.CopyFile(Path.Combine(ServerReportPath, mRow.tabd_col_value), Path.Combine(Folder, mRow.tabd_col_value));
                        if (sError != "")
                        {
                            uploadError += "\n" + sError;
                            using (DocService obj = new DocService())
                            {
                                obj.UpdateDocFileName(record, "COL_" + mRow.tabd_col_name);
                            }
                        }
                    }
                }

                RetData.Add("uploaderror", uploadError);

                return(Ok(RetData));
            }
            catch (Exception Ex)
            {
                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, Ex.Message.ToString())));
            }
        }