Ejemplo n.º 1
0
        public bool Add(FileItDocument doc)
        {
            ExceptionHelper.LogDebug("In Add Cabinet Document...");
            var           result = false;
            StringBuilder sql    = new StringBuilder();

            int fileSize = 501;

            //add the document to the database
            sql.Append("INSERT INTO " + CABINETID + "_IMAGES ");
            sql.Append("(");
            sql.Append("FILENAME, DELETED, PAGENUMBER, INDEXEDON, EXTENSION, ARCHIVED, FILESIZE, PUBLIC, VERSION_NO, VERSIONID, USERID, STATIONID, BATCHNO");
            doc.Indexes.ToList().ForEach(i =>
            {
                sql.Append(", INDEX" + i.Key.ToString());
            });
            sql.Append(") VALUES (");
            sql.Append("'" + doc.FILENAME.Replace("'", "''") + "',");
            sql.Append("'" + (doc.DELETED ? "Y" : "N") + "',");
            sql.Append("'" + "1" + "',");
            sql.Append("'" + doc.INDEXEDON.ToString("MM/dd/yyyy") + "',");
            sql.Append("'" + doc.EXTENSION.ToString().Replace("'", "''") + "',");
            sql.Append("'" + doc.ARCHIVED.ToString().Replace("'", "''") + "',");
            sql.Append("'" + fileSize.ToString() + "',");
            sql.Append("'" + (doc.PUBLIC ? "Y" : "N") + "',");
            sql.Append("'" + doc.VERSION_NO.ToString().Replace("'", "''") + "',");
            sql.Append("'" + doc.VERSIONID.ToString().Replace("'", "''") + "',");
            sql.Append("'" + doc.USERID.ToString().Replace("'", "''") + "',");
            sql.Append("'" + doc.STATIONID.ToString().Replace("'", "''") + "',");
            sql.Append("'" + doc.BATCHNO.ToString().Replace("'", "''") + "'");
            ExceptionHelper.LogDebug(sql.ToString());
            doc.Indexes.ToList().ForEach(i =>
            {
                //i.Value.ToString().Replace("'", "''")
                sql.Append(", " + FireBirdHelper.FormatValue(i.Value));
            });
            sql.Append(")");

            //var t = sql.ToString();
            ExceptionHelper.LogDebug("SQL Insert:" + sql.ToString());

            if (FireBirdHelper.GenericCommand(sql.ToString(), CabinetConnectionString))
            {
                //save the file
                var folderPath = doc.AddImageFileFolderPath(OSTOREPATH);
                //make sure there are no extra . in the name
                var filePath = System.IO.Path.Combine(folderPath, doc.FILENAME + (doc.EXTENSION.IndexOf('.') > -1 ? "": ".") + doc.EXTENSION);
                if (!Directory.Exists(folderPath))
                {
                    Directory.CreateDirectory(folderPath);
                }
                FileHelper.Base64ToFile(filePath, doc.ImageBase64);
                result = true;
            }
            return(result);
        }
        public FileItResponse UploadDocuments(string user, string pass, string cabinetId, DTOs.FileItDocument[] documents)
        {
            var response = new FileItResponse();

            response.FileNameFileItID = new Dictionary <string, string>();

            using (var db = new FileItDataLayer.Models.SystemFileitEntities())
            {
                Debug("Uploading to cabinet: " + cabinetId + " " + documents.Length.ToString() + " docs");
                var cab = db.CABINETS.Single(c => c.CABINETID.Equals(cabinetId, StringComparison.CurrentCultureIgnoreCase));
                response.Success = true;
                documents.ToList().ForEach(d =>
                {
                    var filename = FileItDataLayer.Models.FileItDocument.GetNextFileName();
                    Debug("Got filename: " + filename);
                    var doc = new FileItDataLayer.Models.FileItDocument()
                    {
                        FILENAME    = filename,
                        ARCHIVED    = "N",
                        DELETED     = false,
                        ImageBase64 = d.ImageBase64,
                        EXTENSION   = System.IO.Path.GetExtension(d.FileName).Replace(".", ""),
                        INDEXEDON   = DateTime.Now,
                        PUBLIC      = true,
                        VERSION_NO  = 1,
                        VERSIONID   = "",
                        USERID      = user,
                        STATIONID   = AppGlobal.StationID,
                        BATCHNO     = "BATCH",
                        Indexes     = d.IndexInformation
                    };
                    if (!cab.Add(doc))
                    {
                        Debug("Failed to add doc.");
                        response.Success = false;
                    }
                    else
                    {
                        //TODO: retain the doc id and return
                        response.FileNameFileItID.Add(d.FileName, filename);
                    }
                });
            }
            return(response);
        }