Exemplo n.º 1
0
        private void GetInvalidatedCacheItems()
        {
            lock (invalidatedCacheItems)
            {
                if (Response.Contains("invalidatedcacheitems"))
                {
                    Response["invalidatedcacheitems"].Merge((DataTree)invalidatedCacheItems.Clone());
                }
                else
                {
                    Response["invalidatedcacheitems"] = (DataTree)invalidatedCacheItems.Clone();
                }

                invalidatedCacheItems.Clear();
            }
        }
Exemplo n.º 2
0
        private void BuildSipmlifiedAuditTrail(string documentType, List <BsonDocument> auditDocuments)
        {
            string id = auditDocuments[0]["__originalid"].ToString();

            DataTree reportDocument = report[documentType][id];

            DataTree currentDocument = new DataTree();

            foreach (BsonDocument auditDocument in auditDocuments)
            {
                ApplyAuditTrailDocumentToReportDocument(auditDocument, currentDocument, documentType);

                // We assume all changes after manager approval are done by payroll. This is asimplification
                // and may create confusing results if approval states are switched on and off.
                if (!reportDocument["manager"].Empty)
                {
                    reportDocument["payroll"] = (DataTree)currentDocument.Clone();
                }
                else if ((bool)auditDocument.GetValue("approvedbymanager", false))
                {
                    reportDocument["manager"] = (DataTree)currentDocument.Clone();
                }
                else if ((bool)auditDocument.GetValue("approvedbyworker", false))
                {
                    reportDocument["worker"] = (DataTree)currentDocument.Clone();
                }
            }

            // Unapproved entries that haven't been deletd are shown.
            if (!reportDocument.Contains("worker") && !(bool)currentDocument["__deleted"])
            {
                reportDocument["worker"] = (DataTree)currentDocument.Clone();
            }

            // Deleted by manager
            if (!reportDocument.Contains("manager") && !(bool)reportDocument["worker"]["__deleted"] && (bool)currentDocument["__deleted"])
            {
                reportDocument["manager"] = (DataTree)currentDocument.Clone();
            }

            // Deleted by payroll
            if (!reportDocument.Contains("payroll") && !(bool)reportDocument["manager"]["__deleted"] && (bool)currentDocument["__deleted"])
            {
                reportDocument["payroll"] = (DataTree)currentDocument.Clone();
            }
        }
Exemplo n.º 3
0
 public MC2Value clone(DataTree datatree)
 {
     return((DataTree)datatree.Clone());
 }