Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="couchConnector"></param>
        /// <param name="document"></param>
        /// <param name="sErrorCode"></param>
        /// <param name="sErrorText"></param>
        /// <returns></returns>
        public bool SecuredAddDocument(
            SecuredCouchConnector couchConnector,
            ref Document document,
            out string sErrorCode,
            out string sErrorText)
        {
            sErrorCode = "-1";
            sErrorText = "Adding document to database failed.";

            if (document != null)
            {
                var documentStorage = (Document_Couch)document;

                byte[] btDocumentInfo;
                string sDocumentAttribute;
                bool   bDocumentReplace = false;

                if (documentStorage.GetPropertyData(Document_Couch.DocumentReplace, out sDocumentAttribute))
                {
                    bDocumentReplace = Convert.ToBoolean(sDocumentAttribute);
                    documentStorage.ClearPropertyData(Document_Couch.DocumentReplace);
                }

                if (string.IsNullOrEmpty(document.FileId))
                {
                    sErrorCode = "-1";
                    sErrorText = "Unique FileID is missing.";
                    return(false);
                }


                if (documentStorage.GetSourceData(out btDocumentInfo))
                {
                    if (!couchConnector.Document_Add(bDocumentReplace, btDocumentInfo, documentStorage.FileId,
                                                     documentStorage.FilePath, documentStorage.FileName,
                                                     documentStorage.TypeName.ToString(),
                                                     documentStorage.ChildDocs, documentStorage.MetaData))
                    {
                        sErrorText = couchConnector.Message;
                        sErrorCode = "-2";
                        return(false);
                    }
                    if (!couchConnector.Error)
                    {
                        documentStorage.SetPropertyData(Document_Couch.DocumentRevison, couchConnector.RevisionID);
                        sErrorCode = "0";
                        return(true);
                    }
                    sErrorCode = "-3";
                    sErrorText = couchConnector.Message;
                    return(false);
                }
            }
            sErrorCode = "-4";
            sErrorText = "No data in document to add";
            return(false);
        }
Exemplo n.º 2
0
        /// <summary>
        /// <param name="couchConnector"></param>
        /// <param name="document"></param>
        /// <param name="sErrorCode"></param>
        /// <param name="sErrorText"></param>
        /// <param name="liteFetch"> </param>
        /// <returns></returns>
        /// </summary>
        public bool SecuredGetDocument(
            SecuredCouchConnector couchConnector,
            ref Document document,
            out string sErrorCode,
            out string sErrorText,
            bool liteFetch = false)
        {
            sErrorCode = "-1";
            sErrorText = "Retrieving document failed.";

            if (document != null)
            {
                IDictionary objParms = couchConnector.GetDocument(document.FileId, liteFetch);

                if (!couchConnector.Error)
                {
                    foreach (DictionaryEntry objParm in objParms)
                    {
                        string sKey   = objParm.Key.ToString();
                        string sValue = objParm.Value.ToString();

                        switch (sKey)
                        {
                        case "_id":
                            document.FileId = sValue;
                            break;

                        case "_rev":
                            document.SetPropertyData(Document_Couch.DocumentRevison, sValue);
                            break;

                        case "FileData":
                            document.FileData = sValue;
                            break;

                        case "FileName":
                            document.FileName = sValue;
                            break;

                        case "FilePath":
                            document.FilePath = sValue;
                            break;

                        case "FileType":
                            var typeName = (Document.DocTypeNames)Enum.Parse(typeof(Document.DocTypeNames), sValue);
                            document.TypeName = typeName;
                            break;

                        case "ChildDocuments":
                            var lstChildDocs = new List <string>();
                            if (!string.IsNullOrEmpty(sValue))
                            {
                                string[] arChildDocs = sValue.Split(',');
                                if (arChildDocs.Length > 0)
                                {
                                    lstChildDocs.AddRange(arChildDocs);
                                }
                            }
                            document.ChildDocs.AddRange(lstChildDocs);
                            break;

                        case Document_Couch.MetaTag:
                            document.AddMetaData(sValue);
                            break;

                        default:
                            document.SetPropertyData(sKey, sValue);
                            break;
                        }
                    }
                    sErrorCode = "0";
                }
                sErrorText = couchConnector.Message;
                return(true);
            }
            return(false);
        }