示例#1
0
        // Token: 0x06000313 RID: 787 RVA: 0x00011B78 File Offset: 0x0000FD78
        internal static AmDbStateInfo ReplaceProperty(AmDbStateInfo oldStateInfo, AmDbStateInfo.PropertyNames propName, string propValue)
        {
            bool          isPropExist = false;
            string        str         = oldStateInfo.ToString();
            StringBuilder sb          = new StringBuilder(500);

            AmDbStateInfo.ParseNameValuePairs(str, delegate(string name, string value)
            {
                if (AmDbStateInfo.IsMatching(name, propName))
                {
                    if (!isPropExist)
                    {
                        AmDbStateInfo.AppendNameValue(sb, propName.ToString(), propValue);
                        isPropExist = true;
                        return;
                    }
                }
                else
                {
                    AmDbStateInfo.AppendNameValue(sb, name, value);
                }
            });
            if (!isPropExist)
            {
                AmDbStateInfo.AppendNameValue(sb, propName.ToString(), propValue);
            }
            return(AmDbStateInfo.Parse(oldStateInfo.DatabaseGuid, sb.ToString()));
        }
示例#2
0
        // Token: 0x06000314 RID: 788 RVA: 0x00011D04 File Offset: 0x0000FF04
        internal static AmDbStateInfo Parse(Guid databaseGuid, string entryStr)
        {
            AmDbStateInfo stateInfo = new AmDbStateInfo(databaseGuid);

            stateInfo.IsEntryExist = true;
            AmDbStateInfo.ParseNameValuePairs(entryStr, delegate(string name, string value)
            {
                if (AmDbStateInfo.IsMatching(name, AmDbStateInfo.PropertyNames.ActiveServer))
                {
                    stateInfo.ActiveServer = new AmServerName(SharedHelper.GetNodeNameFromFqdn(value));
                    return;
                }
                if (AmDbStateInfo.IsMatching(name, AmDbStateInfo.PropertyNames.LastMountedServer))
                {
                    stateInfo.LastMountedServer = new AmServerName(SharedHelper.GetNodeNameFromFqdn(value));
                    return;
                }
                if (AmDbStateInfo.IsMatching(name, AmDbStateInfo.PropertyNames.LastMountedTime))
                {
                    DateTime lastMountedTime;
                    DateTime.TryParseExact(value, DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern, DateTimeFormatInfo.InvariantInfo, DateTimeStyles.RoundtripKind, out lastMountedTime);
                    stateInfo.LastMountedTime = lastMountedTime;
                    return;
                }
                if (AmDbStateInfo.IsMatching(name, AmDbStateInfo.PropertyNames.MountStatus))
                {
                    MountStatus mountStatus;
                    EnumUtility.TryParse <MountStatus>(value, out mountStatus, MountStatus.Dismounted);
                    stateInfo.MountStatus = mountStatus;
                    return;
                }
                if (AmDbStateInfo.IsMatching(name, AmDbStateInfo.PropertyNames.IsAdminDismounted))
                {
                    stateInfo.IsAdminDismounted = bool.Parse(value);
                    return;
                }
                if (AmDbStateInfo.IsMatching(name, AmDbStateInfo.PropertyNames.IsAutomaticActionsAllowed))
                {
                    stateInfo.IsAutomaticActionsAllowed = bool.Parse(value);
                    return;
                }
                if (AmDbStateInfo.IsMatching(name, AmDbStateInfo.PropertyNames.FailoverSequenceNumber))
                {
                    stateInfo.FailoverSequenceNumber = long.Parse(value);
                }
            });
            return(stateInfo);
        }