コード例 #1
0
        public override void ReadJSON(JObject JObject, Dictionary <Int32, Int32> NodeMap, Dictionary <Int32, Int32> NodeTypeMap)
        {
            if (DateAnswered == DateTime.MinValue)
            {
                CswDateTime CswDateAnswered = new CswDateTime(_CswNbtResources);
                CswDateAnswered.FromClientDateTimeJObject((JObject)JObject[_DateAnsweredSubField.ToXmlNodeName(true)]);
                DateAnswered = CswDateAnswered.ToDateTime();
            }
            if (DateCorrected == DateTime.MinValue)
            {
                CswDateTime CswDateCorrected = new CswDateTime(_CswNbtResources);
                CswDateCorrected.FromClientDateTimeJObject((JObject)JObject[_DateCorrectedSubField.ToXmlNodeName(true)]);
                DateCorrected = CswDateCorrected.ToDateTime();
            }

            if (null != JObject[_AnswerSubField.ToXmlNodeName(true)] && IsAnswerEditable)
            {
                Answer = JObject[_AnswerSubField.ToXmlNodeName(true)].ToString();
            }
            if (null != JObject[_CommentsSubField.ToXmlNodeName(true)])
            {
                Comments = JObject[_CommentsSubField.ToXmlNodeName(true)].ToString();
            }
            if (null != JObject[_CorrectiveActionSubField.ToXmlNodeName(true)])
            {
                CorrectiveAction = JObject[_CorrectiveActionSubField.ToXmlNodeName(true)].ToString();
            }
        }
コード例 #2
0
ファイル: CswDateTimeTest.cs プロジェクト: crfroehlich/legacy
        public void XmlDateFormatTest()
        {
            string      d1  = "2012-11-06T09:30:15.1234";
            CswDateTime cd1 = new CswDateTime(_CswResources);

            cd1.FromXmlDateTimeFormat(d1);
            Assert.IsTrue(_checkDateTimeParts(cd1.ToDateTime(), 2012, 11, 6, 9, 30, 15, 123));

            string      d2  = "1970-01-01T00:00:00";
            CswDateTime cd2 = new CswDateTime(_CswResources);

            cd2.FromXmlDateTimeFormat(d2);
            Assert.IsTrue(_checkDateTimeParts(cd2.ToDateTime(), 1970, 1, 1, 0, 0, 0, 0));

            string      d3  = "1970-01-01T00:00:00.0000";
            CswDateTime cd3 = new CswDateTime(_CswResources);

            cd3.FromXmlDateTimeFormat(d3);
            Assert.IsTrue(_checkDateTimeParts(cd3.ToDateTime(), 1970, 1, 1, 0, 0, 0, 0));

            string      d4  = "2099-02-28T18:24:48";
            CswDateTime cd4 = new CswDateTime(_CswResources);

            cd4.FromXmlDateTimeFormat(d4);
            Assert.IsTrue(_checkDateTimeParts(cd4.ToDateTime(), 2099, 2, 28, 18, 24, 48, 0));
        } // XmlDateFormatTest()
コード例 #3
0
 public CswNbtMetaDataNodeType(CswNbtMetaDataResources CswNbtMetaDataResources, DataRow Row, CswDateTime Date)
 {
     _CswNbtMetaDataResources = CswNbtMetaDataResources;
     _Date        = Date;
     _NodeTypeRow = Row;
     _UniqueId    = CswConvert.ToInt32(Row[UniqueIdFieldName]);
 }
コード例 #4
0
        public CswNbtMetaDataFieldType(CswNbtMetaDataResources CswNbtMetaDataResources, DataRow Row, CswDateTime Date = null)
        {
            _CswNbtMetaDataResources = CswNbtMetaDataResources;
            _Date = Date;

            Reassign(Row);
        }
コード例 #5
0
        public override void ToJSON(JObject ParentObject)
        {
            CswDateTime CswDate = new CswDateTime(_CswNbtResources, DateTimeValue);

            ParentObject[_DateValueSubField.ToXmlNodeName(true)] = CswDate.ToClientAsDateTimeJObject();
            ParentObject["displaymode"] = DisplayMode.ToString();
        }
コード例 #6
0
        }     // getByPk()

        public ICswNbtMetaDataObject getByPk(Int32 Pk, CswDateTime Date, bool BypassModuleCheck = false)
        {
            ICswNbtMetaDataObject ret = null;

            if (false == CswTools.IsDate(Date))
            {
                ret = getByPk(Pk, BypassModuleCheck);
            }
            else
            {
                string Sql   = "select * from " + CswNbtAuditTableAbbreviation.getAuditTableSql(_CswNbtMetaDataResources.CswNbtResources, _TableSelect.TableName, Date) + " " + _TableSelect.TableName;
                string Where = " where " + _PkColumnName + " = " + Pk.ToString();
                if (false == BypassModuleCheck)
                {
                    addModuleWhereClause(ref Where);
                }
                Sql += Where;

                CswArbitrarySelect AuditSelect = _CswNbtMetaDataResources.CswNbtResources.makeCswArbitrarySelect("MetaDataCollectionImpl_getbypk_audit_select", Sql);
                DataTable          Table       = AuditSelect.getTable();
                if (Table.Rows.Count > 0)
                {
                    ret = _makeObj(Table.Rows[0], Date, useCache: false);
                }
            }
            return(ret);
        }
コード例 #7
0
        public CswNbtNode GetNode(string NodeId, string NodeKey, CswDateTime Date = null)
        {
            CswNbtNode Node = null;

            if (!string.IsNullOrEmpty(NodeKey))
            {
                //CswNbtNodeKey RealNodeKey = new CswNbtNodeKey( CswNbtResources, FromSafeJavaScriptParam( NodeKey ) );
                CswNbtNodeKey RealNodeKey = new CswNbtNodeKey(NodeKey);
                Node = _CswNbtResources.getNode(RealNodeKey, Date);
            }
            else if (!string.IsNullOrEmpty(NodeId))
            {
                CswPrimaryKey RealNodeId = new CswPrimaryKey();
                if (CswTools.IsInteger(NodeId))
                {
                    RealNodeId.TableName  = "nodes";
                    RealNodeId.PrimaryKey = CswConvert.ToInt32(NodeId);
                }
                else
                {
                    RealNodeId.FromString(NodeId);
                }
                Node = _CswNbtResources.getNode(RealNodeId, Date);
            }
            return(Node);
        } // getNode()
コード例 #8
0
        } // _countProblems()

        public override void ToJSON(JObject ParentObject)
        {
            CswDateTime CswDate = new CswDateTime(_CswNbtResources, StartDateTime);

            ParentObject.Add(new JProperty(_StartDateTimeSubField.ToXmlNodeName(true), CswDate.ToClientAsDateTimeJObject()));

            ParentObject[_ValueSubField.ToXmlNodeName(true)] = CachedValue.ToString();
            ParentObject[_UnitsSubField.ToXmlNodeName(true)] = Units;
        }
コード例 #9
0
        }//ctor()

        /// <summary>
        /// Constructor for Object Class Prop Default Values
        /// </summary>
        public CswNbtNodePropData(CswNbtResources rsc, DataRow PropRow, DataTable PropsTable, Int32 ObjectClassPropId, CswDateTime Date)
        {
            _PropRow           = PropRow;
            _ObjectClassPropId = ObjectClassPropId;
            _PropsTable        = PropsTable;
            _Date            = Date;
            _CswNbtResources = rsc;

            initAttributes();
        }//ctor()
コード例 #10
0
        /// <summary>
        /// Constructor for Node Properties
        /// </summary>
        public CswNbtNodePropData(CswNbtResources rsc, DataRow PropRow, DataTable PropsTable, CswPrimaryKey NodeId, CswNbtMetaDataNodeTypeProp NodeTypeProp, CswDateTime Date)
        {
            _PropRow         = PropRow;
            _NodeId          = NodeId;
            _PropsTable      = PropsTable;
            _Date            = Date;
            _CswNbtResources = rsc;
            _NodeTypeProp    = NodeTypeProp;

            initAttributes();
        }//ctor()
コード例 #11
0
        } // getWhere(Where,Date)

        public ICswNbtMetaDataObject getWhereFirst(string WhereClause, CswDateTime Date = null, bool BypassModuleCheck = false)
        {
            ICswNbtMetaDataObject ret = null;
            Collection <ICswNbtMetaDataObject> Coll = getWhere(WhereClause, Date, BypassModuleCheck);

            if (Coll.Count > 0)
            {
                ret = Coll[0];
            }
            return(ret);
        } // getWhereFirst()
コード例 #12
0
        public override void ReadJSON(JObject JObject, Dictionary <Int32, Int32> NodeMap, Dictionary <Int32, Int32> NodeTypeMap)
        {
            if (null != JObject[_DateValueSubField.ToXmlNodeName(true)])
            {
                //DateValue = CswConvert.ToDateTime( JObject.Property( _DateValueSubField.ToXmlNodeName(true) ).Value );
                //DateValue = CswConvert.ToDateTime( JObject.Property( _DateValueSubField.ToXmlNodeName( true ) ).Value );

                CswDateTime CswDate = new CswDateTime(_CswNbtResources);
                CswDate.FromClientDateTimeJObject((JObject)JObject[_DateValueSubField.ToXmlNodeName(true)]);
                DateTimeValue = CswDate.ToDateTime();
            }
        }
コード例 #13
0
 public string getObjectClassPropName( Int32 ObjectClassPropId, CswDateTime Date = null )
 {
     string ret = string.Empty;
     // This fetches all of them at once.  This was done on purpose.
     // This will actually perform better in any case where you need more than one.
     Dictionary<int, string> dict = getObjectClassPropNames( Date );
     if( dict.ContainsKey( ObjectClassPropId ) )
     {
         ret = dict[ObjectClassPropId];
     }
     return ret;
 }
コード例 #14
0
        public CswNbtNode(CswNbtResources CswNbtResources, CswNbtNodeWriter CswNbtNodeWriter, Int32 NodeTypeId, CswEnumNbtNodeSpecies NodeSpecies, CswPrimaryKey NodeId, Int32 UniqueId, CswDateTime Date, bool IsTemp = false)
        {
            _CswNbtResources  = CswNbtResources;
            _CswNbtNodeWriter = CswNbtNodeWriter;
            _UniqueId         = UniqueId;
            _NodeId           = NodeId;
            _NodeTypeId       = NodeTypeId;
            _NodeSpecies      = NodeSpecies;
            _IsTemp           = IsTemp;
            _Date             = Date;

            _CswNbtNodePropColl = new CswNbtNodePropColl(CswNbtResources, this);
        }//ctor()
コード例 #15
0
        public override void ToJSON(JObject ParentObject)
        {
            JArray _CommentsJson = CommentsJson;

            foreach (JObject jr in _CommentsJson)
            {
                //converting each output row datetime to local user display format
                jr["datetime"] = new CswDateTime(_CswNbtResources, CswConvert.ToDateTime(jr["datetime"])).ToClientAsDateTimeString();
            }
            ParentObject[_CommentSubField.ToXmlNodeName(true)] = _CommentsJson;
            ParentObject["rows"]       = Rows.ToString();
            ParentObject["columns"]    = Columns.ToString();
            ParentObject["newmessage"] = "";
        }
コード例 #16
0
 public override void ReadJSON(JObject JObject, Dictionary <Int32, Int32> NodeMap, Dictionary <Int32, Int32> NodeTypeMap)
 {
     if (null != JObject[_StartDateTimeSubField.ToXmlNodeName(true)])
     {
         //StartDateTime = CswConvert.ToDateTime( JObject.Property( _StartDateTimeSubField.ToXmlNodeName( true ) ).Value );
         CswDateTime CswDate = new CswDateTime(_CswNbtResources);
         CswDate.FromClientDateTimeJObject((JObject)JObject[_StartDateTimeSubField.ToXmlNodeName(true)]);
         StartDateTime = CswDate.ToDateTime();
     }
     if (null != JObject[_UnitsSubField.ToXmlNodeName(true)])
     {
         Units = JObject[_UnitsSubField.ToXmlNodeName(true)].ToString();
     }
     //PendingUpdate = true;
     RefreshCachedValue();
 }
コード例 #17
0
        private Collection <ICswNbtMetaDataObject> _makeObjs(DataTable Table, CswDateTime Date = null, bool useCache = true)
        {
            Collection <ICswNbtMetaDataObject> Coll = new Collection <ICswNbtMetaDataObject>();
            Collection <DataRow> RowsToIterate      = new Collection <DataRow>();

            // We have to iterate rows separately, because _makeObj() can remove a row
            foreach (DataRow Row in Table.Rows)
            {
                RowsToIterate.Add(Row);
            }
            foreach (DataRow Row in RowsToIterate)
            {
                Coll.Add(_makeObj(Row, Date, useCache));
            }
            return(Coll);
        } // _makeObjs()
コード例 #18
0
        public Dictionary <Int32, string> getPkDict(string Where = "", CswDateTime Date = null)
        {
            if (_PkDictsWhere == null)
            {
                _PkDictsWhere = new Dictionary <PkDictKey, Dictionary <int, string> >();
            }

            PkDictKey Key = new PkDictKey()
            {
                Date = Date, Where = Where
            };

            if (false == _PkDictsWhere.ContainsKey(Key))
            {
                DataTable Table;
                if (null == Date)
                {
                    CswCommaDelimitedString Select = new CswCommaDelimitedString();
                    Select.Add(_PkColumnName);
                    Select.Add(_NameColumnName);

                    string WhereClause = Where;
                    addModuleWhereClause(ref WhereClause);

                    Table = _TableSelect.getTable(Select, string.Empty, Int32.MinValue, WhereClause, false);
                }
                else
                {
                    string Sql = "select " + _PkColumnName + "," + _NameColumnName +
                                 "  from " + CswNbtAuditTableAbbreviation.getAuditTableSql(_CswNbtMetaDataResources.CswNbtResources, _TableSelect.TableName, Date) + " " + _TableSelect.TableName + " ";
                    addModuleWhereClause(ref Where);
                    Sql += Where;

                    CswArbitrarySelect AuditSelect = _CswNbtMetaDataResources.CswNbtResources.makeCswArbitrarySelect("MetaDataCollectionImpl_getpkdict_audit_select", Sql);
                    Table = AuditSelect.getTable();
                }
                Dictionary <Int32, string> Coll = new Dictionary <Int32, string>();
                foreach (DataRow Row in Table.Rows)
                {
                    Coll.Add(CswConvert.ToInt32(Row[_PkColumnName]), CswConvert.ToString(Row[_NameColumnName]));
                }
                _PkDictsWhere[Key] = Coll;
            }
            return(_PkDictsWhere[Key]);
        } // _PkDictsWhere(Where)
コード例 #19
0
        /// <remark>
        /// We need a NodeTypeId because the NodeId is missing from the HashKey if this is a new node we're about to add
        /// </remark>
        private CswNbtNode _getExistingNode(NodeHashKey HashKey, Int32 NodeTypeId, CswDateTime Date)
        {
            CswTimer   Timer = new CswTimer();
            CswNbtNode Node  = new CswNbtNode(_CswNbtResources, _CswNbtNodeWriter, NodeTypeId, CswEnumNbtNodeSpecies.Plain, HashKey.NodeId, _NodeHash.Count, Date);

            //bz # 7816 -- only add to the collection if the node got filled
            Node.fill();
            if (Node.Filled)
            {
                if (!_NodeHash.ContainsKey(HashKey))
                {
                    _NodeHash.Add(HashKey, Node);
                }
                _CswNbtResources.logTimerResult("CswNbtNodeCollection.makeNode on NodeId (" + HashKey.NodeId.ToString() + ")", Timer.ElapsedDurationInSecondsAsString);
            }
            else
            {
                Node = null;
            }
            return(Node);
        }
コード例 #20
0
        } // getWhere(Where)

        public Collection <ICswNbtMetaDataObject> getWhere(string Where, CswDateTime Date, bool BypassModuleCheck = false)
        {
            Collection <ICswNbtMetaDataObject> ret = null;

            if (false == CswTools.IsDate(Date))
            {
                ret = getWhere(Where, BypassModuleCheck);
            }
            else
            {
                string Sql = "select * from " + CswNbtAuditTableAbbreviation.getAuditTableSql(_CswNbtMetaDataResources.CswNbtResources, _TableSelect.TableName, Date) + " " + _TableSelect.TableName + " " + Where;
                if (false == BypassModuleCheck)
                {
                    addModuleWhereClause(ref Sql);
                }
                CswArbitrarySelect AuditSelect = _CswNbtMetaDataResources.CswNbtResources.makeCswArbitrarySelect("MetaDataCollectionImpl_getWhere_audit_select", Sql);
                DataTable          Table       = AuditSelect.getTable();
                ret = _makeObjs(Table, Date, useCache: false);
            }
            return(ret);
        } // getWhere(Where,Date)
コード例 #21
0
        private ICswNbtMetaDataObject _makeObj(DataRow Row, CswDateTime Date = null, bool useCache = true)
        {
            ICswNbtMetaDataObject ret = null;
            Int32 PkValue             = CswConvert.ToInt32(Row[_PkColumnName]);

            if (useCache && _Cache.ContainsKey(PkValue))
            {
                // In order to guarantee only one reference per row, use the existing reference
                // and, to prevent dirty writes, remove the row
                ret = _Cache[PkValue];
                Row.Table.Rows.Remove(Row);
            }
            else
            {
                ret = _MetaDataObjectMaker(_CswNbtMetaDataResources, Row, Date);
                if (useCache)
                {
                    _Cache[PkValue] = ret;
                }
            }
            return(ret);
        }
コード例 #22
0
        public override void ToJSON(JObject ParentObject)
        {
            ParentObject[_AnswerSubField.ToXmlNodeName(true)] = Answer;
            if (IsEditModeEditable)
            {
                ParentObject["allowedanswers"]   = "," + AllowedAnswersString;
                ParentObject["compliantanswers"] = CompliantAnswersString;
            }
            ParentObject[_CommentsSubField.ToXmlNodeName(true)]         = Comments;
            ParentObject[_CorrectiveActionSubField.ToXmlNodeName(true)] = CorrectiveAction;
            ParentObject[_IsCompliantSubField.ToXmlNodeName(true)]      = IsCompliant;

            ParentObject["isactionrequired"] = IsActionRequired;
            ParentObject["isanswereditable"] = IsAnswerEditable;

            CswDateTime CswDateAnswered = new CswDateTime(_CswNbtResources, DateAnswered);

            ParentObject[_DateAnsweredSubField.ToXmlNodeName(true)] = CswDateAnswered.ToClientAsDateTimeJObject();
            CswDateTime CswDateCorrected = new CswDateTime(_CswNbtResources, DateCorrected);

            ParentObject[_DateCorrectedSubField.ToXmlNodeName(true)] = CswDateCorrected.ToClientAsDateTimeJObject();
        }
コード例 #23
0
        } // getPks(Where)

        public Collection <Int32> getPks(string Where, CswDateTime Date)
        {
            Collection <Int32> ret = null;

            if (false == CswTools.IsDate(Date))
            {
                ret = getPks(Where);
            }
            else
            {
                string Sql = "select " + _PkColumnName + " from " + CswNbtAuditTableAbbreviation.getAuditTableSql(_CswNbtMetaDataResources.CswNbtResources, _TableSelect.TableName, Date) + " " + _TableSelect.TableName + " ";
                addModuleWhereClause(ref Where);
                Sql += Where;

                CswArbitrarySelect AuditSelect = _CswNbtMetaDataResources.CswNbtResources.makeCswArbitrarySelect("MetaDataCollectionImpl_getpks_audit_select", Sql);
                DataTable          Table       = AuditSelect.getTable();
                ret = new Collection <Int32>();
                foreach (DataRow Row in Table.Rows)
                {
                    ret.Add(CswConvert.ToInt32(Row[_PkColumnName]));
                }
            }
            return(ret);
        } // getPks(Where)
コード例 #24
0
        } // updateNextDueDate()

        public void updateNextDueDate(bool ForceUpdate, bool DeleteFuture)
        {
            if (ForceUpdate ||
                (false == _Scheduler.NextDueDate.wasAnySubFieldModified() &&   // case 30812
                 (_Scheduler.DueDateInterval.wasAnySubFieldModified() ||
                  _Scheduler.FinalDueDate.wasAnySubFieldModified() ||
                  _CswNbtNode.New ||
                  DeleteFuture)))
            {
                DateTime CandidateNextDueDate = getNextDueDate(_CswNbtNode, _Scheduler.NextDueDate, _Scheduler.DueDateInterval, CswConvert.ToInt32(_Scheduler.WarningDays.Value), ForceUpdate, DeleteFuture);
                if (DateTime.MinValue != CandidateNextDueDate)
                {
                    DateTime FinalDueDate = _Scheduler.FinalDueDate.DateTimeValue;
                    if (DateTime.MinValue != FinalDueDate &&
                        CswDateTime.GreaterThanNoMs(CandidateNextDueDate, FinalDueDate))
                    {
                        CandidateNextDueDate = DateTime.MinValue;
                    }
                }
                _Scheduler.NextDueDate.DateTimeValue = CandidateNextDueDate;

                _UpdateFutureTasks = DeleteFuture;
            }
        } // updateNextDueDate()
コード例 #25
0
 public Dictionary<Int32, string> getObjectClassPropNames( CswDateTime Date = null )
 {
     return _CollImpl.getPkDict( Date: Date );
 }
コード例 #26
0
 public CswNbtMetaDataObjectClassProp getObjectClassProp( Int32 ObjectClassPropId, CswDateTime Date = null )
 {
     return (CswNbtMetaDataObjectClassProp) _CollImpl.getByPk( ObjectClassPropId, Date );
 }
コード例 #27
0
 public CswNbtMetaDataObjectClassProp getObjectClassProp( Int32 ObjectClassId, string ObjectClassPropName, CswDateTime Date = null )
 {
     return (CswNbtMetaDataObjectClassProp) _CollImpl.getWhereFirst( "where objectclassid = " + ObjectClassId.ToString() + " and lower(propname) = '" + CswTools.SafeSqlParam( ObjectClassPropName.ToLower() ) + "'", Date );
 }
コード例 #28
0
 public CswNbtMetaDataObjectClassProp makeObjectClassProp( CswNbtMetaDataResources Resources, DataRow Row, CswDateTime Date )
 {
     return new CswNbtMetaDataObjectClassProp( Resources, Row, Date );
 }
コード例 #29
0
        public static void wAddAuthenticationStatus(CswNbtResources CswNbtResources, CswSessionResourcesNbt CswSessionResources, CswWebSvcReturn SvcReturn, CswEnumAuthenticationStatus AuthenticationStatusIn, HttpContext HttpContext)
        {
            // ******************************************
            // IT IS VERY IMPORTANT for this function not to require the use of database resources,
            // since it occurs AFTER the call to _deInitResources(), and thus will leak Oracle connections
            // (see case 26273)
            // ******************************************
            if (null != SvcReturn)
            {
                SvcReturn.Authentication = SvcReturn.Authentication ?? new CswWebSvcSessionAuthenticateData.Authentication.Response();
                SvcReturn.Authentication.AuthenticationStatus = AuthenticationStatusIn;
                if (null != CswNbtResources)
                {
                    if (null != CswNbtResources.CswSessionManager)
                    {
                        SvcReturn.Authentication.TimeOut = CswDateTime.ToClientAsJavascriptString(CswNbtResources.CswSessionManager.TimeoutDate);
                    }
                    if (SvcReturn.Authentication.AuthenticationStatus == CswEnumAuthenticationStatus.ExpiredPassword)
                    {
                        SvcReturn.Authentication.ExpirationReset = new CswWebSvcSessionAuthenticateData.Authentication.Response.Expired();

                        ICswNbtUser CurrentUser = CswNbtResources.CurrentNbtUser;
                        SvcReturn.Authentication.ExpirationReset.UserId = CurrentUser.UserId.ToString();
                        CswNbtNodeKey FakeKey = new CswNbtNodeKey()
                        {
                            NodeId        = CurrentUser.UserId,
                            NodeSpecies   = CswEnumNbtNodeSpecies.Plain,
                            NodeTypeId    = CurrentUser.UserNodeTypeId,
                            ObjectClassId = CurrentUser.UserObjectClassId
                        };
                        SvcReturn.Authentication.ExpirationReset.UserKey = FakeKey.ToString();
                        CswPropIdAttr PasswordPropIdAttr = new CswPropIdAttr(CurrentUser.UserId, CurrentUser.PasswordPropertyId);
                        SvcReturn.Authentication.ExpirationReset.PasswordId = PasswordPropIdAttr.ToString();
                    }

                    SvcReturn.Performance               = SvcReturn.Performance ?? new CswWebSvcReturnBase.Performance();
                    SvcReturn.Performance.ServerInit    = Math.Round(CswNbtResources.ServerInitTime, 3);
                    SvcReturn.Performance.DbDeinit      = Math.Round(CswNbtResources.CswLogger.DbInitTime, 3);
                    SvcReturn.Performance.DbQuery       = Math.Round(CswNbtResources.CswLogger.DbQueryTime, 3);
                    SvcReturn.Performance.DbCommit      = Math.Round(CswNbtResources.CswLogger.DbCommitTime, 3);
                    SvcReturn.Performance.DbDeinit      = Math.Round(CswNbtResources.CswLogger.DbDeInitTime, 3);
                    SvcReturn.Performance.TreeLoaderSql = Math.Round(CswNbtResources.CswLogger.TreeLoaderSQLTime, 3);
                    SvcReturn.Performance.ServerTotal   = Math.Round(CswNbtResources.TotalServerTime, 3);

                    SvcReturn.Logging            = SvcReturn.Logging ?? new CswWebSvcReturnBase.Logging();
                    SvcReturn.Logging.CustomerId = CswNbtResources.AccessId;
                    SvcReturn.Logging.Server     = Environment.MachineName;
                    CswEnumLogLevels LogLevel = CswNbtResources.ConfigVbls.getConfigVariableValue(CswEnumConfigurationVariableNames.Logging_Level);

                    if (LogLevel == CswNbtResources.UnknownEnum)
                    {
                        LogLevel = CswEnumLogLevels.Error;
                    }
                    SvcReturn.Logging.LogLevel = LogLevel;

                    // Return any messages acquired along the way
                    if (null != CswNbtResources.Messages && CswNbtResources.Messages.Count > 0)
                    {
                        SvcReturn.Status.Messages = CswNbtResources.Messages;
                    }
                }
            }
            HttpCookie AuthStatusCookie = HttpContext.Request.Cookies["CswAuthStatus"];

            if (null == AuthStatusCookie)
            {
                AuthStatusCookie = new HttpCookie("CswAuthStatus")
                {
                    HttpOnly = true
                };
            }
            if (AuthStatusCookie.Value != AuthenticationStatusIn.ToString())
            {
                AuthStatusCookie.Value = AuthenticationStatusIn;
                HttpContext.Response.Cookies.Add(AuthStatusCookie);
            }
        } // wAddAuthenticationStatus()
コード例 #30
0
        public static void jAddAuthenticationStatus(CswNbtResources CswNbtResources, CswSessionResourcesNbt CswSessionResources, JObject SvcReturn, CswEnumAuthenticationStatus AuthenticationStatusIn, bool IsMobile = false)
        {
            if (SvcReturn != null)
            {
                SvcReturn["AuthenticationStatus"]     = AuthenticationStatusIn.ToString();
                SvcReturn["AuthenticationStatusText"] = CswEnumAuthenticationStatus.EuphamizedText[AuthenticationStatusIn];
                if (false == IsMobile)
                {
                    SvcReturn["server"] = Environment.MachineName;
                    if (null != CswNbtResources)
                    {
                        if (null != CswNbtResources.CswSessionManager)
                        {
                            SvcReturn["timeout"] = CswDateTime.ToClientAsJavascriptString(CswNbtResources.CswSessionManager.TimeoutDate);
                        }
                        if (AuthenticationStatusIn == CswEnumAuthenticationStatus.ExpiredPassword)
                        {
                            ICswNbtUser CurrentUser = CswNbtResources.CurrentNbtUser;
                            SvcReturn.Add(new JProperty("nodeid", CurrentUser.UserId.ToString()));
                            CswNbtNodeKey FakeKey = new CswNbtNodeKey()
                            {
                                NodeId        = CurrentUser.UserId,
                                NodeSpecies   = CswEnumNbtNodeSpecies.Plain,
                                NodeTypeId    = CurrentUser.UserNodeTypeId,
                                ObjectClassId = CurrentUser.UserObjectClassId
                            };
                            SvcReturn.Add(new JProperty("nodekey", FakeKey.ToString()));
                            CswPropIdAttr PasswordPropIdAttr = new CswPropIdAttr(CurrentUser.UserId, CurrentUser.PasswordPropertyId);
                            SvcReturn.Add(new JProperty("passwordpropid", PasswordPropIdAttr.ToString()));
                        }

                        SvcReturn["timer"] = new JObject();

                        SvcReturn["timer"]["serverinit"] = Math.Round(CswNbtResources.ServerInitTime, 3);
                        CswEnumLogLevels LogLevel = CswNbtResources.ConfigVbls.getConfigVariableValue(CswEnumConfigurationVariableNames.Logging_Level);
                        if (LogLevel == CswNbtResources.UnknownEnum)
                        {
                            LogLevel = CswEnumLogLevels.Error;
                        }
                        SvcReturn["LogLevel"] = LogLevel.ToString().ToLower();

                        SvcReturn["timer"]["customerid"]    = CswNbtResources.AccessId;
                        SvcReturn["timer"]["dbinit"]        = Math.Round(CswNbtResources.CswLogger.DbInitTime, 3);
                        SvcReturn["timer"]["dbquery"]       = Math.Round(CswNbtResources.CswLogger.DbQueryTime, 3);
                        SvcReturn["timer"]["dbcommit"]      = Math.Round(CswNbtResources.CswLogger.DbCommitTime, 3);
                        SvcReturn["timer"]["dbdeinit"]      = Math.Round(CswNbtResources.CswLogger.DbDeInitTime, 3);
                        SvcReturn["timer"]["treeloadersql"] = Math.Round(CswNbtResources.CswLogger.TreeLoaderSQLTime, 3);
                        SvcReturn["timer"]["servertotal"]   = Math.Round(CswNbtResources.TotalServerTime, 3);

                        // Return any messages acquired along the way
                        if (null != CswNbtResources.Messages && CswNbtResources.Messages.Count > 0)
                        {
                            JArray Messages = new JArray();
                            SvcReturn["messages"] = Messages;
                            foreach (CswWebSvcReturnBase.ErrorMessage Message in CswNbtResources.Messages)
                            {
                                Messages.Add(Message.ToJObject());
                            }
                        }
                    }//if( null != CswNbtResources )
                }
            }
        }