コード例 #1
0
        public ServiceResult Validate(string type, string action, string validationCode, string ipAddress, User requestingUser)
        {
            if (!StringEx.IsSQLSafeString(type + " " + action + " " + validationCode))
            {
                _logger.InsertSecurity(type + " " + action + " " + validationCode, ipAddress, "Validate.IsSafeString:validationCode");
                return(ServiceResponse.Error("Error processing request, invalid url."));
            }

            User user = new User();

            try
            {
                user = this.GetUsers(false).FirstOrDefault(dd => dd.ProviderUserKey == validationCode &&
                                                           (dd.ProviderName == UserFlags.ProviderName.ValidateEmail ||
                                                            dd.ProviderName == UserFlags.ProviderName.SendAccountInfo ||
                                                            dd.ProviderName == UserFlags.ProviderName.ForgotPassword));
            }
            catch (Exception ex)
            {
                _logger.InsertError(ex.Message, "UserManager", "Validate.GetUsers");
                return(ServiceResponse.Error("Error occured retrieving user."));
            }

            if (user == null)
            {
                return(ServiceResponse.Error("Invalid verification code."));
            }

            if (user.Banned)
            {
                return(ServiceResponse.Error("Account is banned."));
            }

            string typeAction = string.Format("{0}_{1}", type, action);

            if (user.Approved && typeAction != "mbr_mdel")          // The email account you provided to subscribe is already on file and activated, but if mdel is in the action the user wants to delete account
            {
                return(ServiceResponse.OK("Account is approved.")); //may have been set by an admin.
            }
            user.LastActivityDate = DateTime.UtcNow;

            //Validate to subscribe.
            switch (typeAction)
            {
            case "mbr_mreg":     //member subscribe.
                user.Approved        = true;
                user.ProviderName    = "";
                user.ProviderUserKey = "";
                //Add user to customer role by default.
                //
                RoleManager rm       = new RoleManager(this._connectionKey, user);
                Role        customer = (Role)rm.GetRole("customer", user.AccountUUID);

                if (customer == null)
                {
                    _logger.InsertError("Failed to get role customer!", "UserManager", "ValidateAsync.mbr_mreg");
                    return(ServiceResponse.Error("Error saving role information. Try again later."));
                }
                else
                {
                    rm.AddUserToRole(customer.UUID, user, requestingUser);
                }
                return(Update(user));

            case "mbr_mdel":     //membership oops/remove
                user.ProviderName    = "";
                user.ProviderUserKey = "";
                user.Email           = string.Empty;
                Update(user);
                //don't purge or it may break internal references.
                return(this.Delete(user, false));

            case "mbr_pwdr":    //password reset
                return(Update(user));

            default:
                return(ServiceResponse.Error("Invalid code."));
            }
            #endregion
        }
コード例 #2
0
ファイル: CoopSteamNGUI.cs プロジェクト: DevZhav/The-Forest
    private void UpdateGameBrowser()
    {
        bool flag = false;

        if (CoopLobby.IsInLobby)
        {
            this.OpenScreen(CoopSteamNGUI.Screens.Lobby);
            this._lobbyScreen._gameNameLabel.text = StringEx.TryFormat(UiTranslationDatabase.TranslateKey("LOBBY_GAME_NAME", "LOBBY: {0}", this._allCapsTexts), new object[]
            {
                CoopLobby.Instance.Info.Name.ToUpperInvariant()
            });
            return;
        }
        this._lobbies = (from l in this._lobbies
                         where l != null && CoopLobbyManager.Lobbies.Any((CoopLobbyInfo al) => al.LobbyId.m_SteamID == l.LobbyId.m_SteamID)
                         select l).ToList <CoopLobbyInfo>();
        IEnumerable <CoopLobbyInfo> enumerable = (from nl in CoopLobbyManager.Lobbies
                                                  where !string.IsNullOrEmpty(nl.Name) && (this._allowLegacyGames || !string.IsNullOrEmpty(nl.Guid)) && !nl.IsOwner && !this._lobbies.Any((CoopLobbyInfo l) => nl.LobbyId.m_SteamID == l.LobbyId.m_SteamID)
                                                  select nl).Take(5);

        if (enumerable != null && enumerable.Any <CoopLobbyInfo>())
        {
            Vector3 localScale = this._gameBrowserScreen._rowPrefab.transform.localScale;
            foreach (CoopLobbyInfo coopLobbyInfo in enumerable)
            {
                MpGameRow mpGameRow = UnityEngine.Object.Instantiate <MpGameRow>(this._gameBrowserScreen._rowPrefab);
                mpGameRow.transform.parent     = this._gameBrowserScreen._grid.transform;
                mpGameRow.transform.localScale = localScale;
                mpGameRow._gameName.text       = coopLobbyInfo.Name;
                mpGameRow._lobby            = coopLobbyInfo;
                mpGameRow._playerLimit.text = StringEx.TryFormat("{0} / {1}", new object[]
                {
                    coopLobbyInfo.CurrentMembers,
                    coopLobbyInfo.MemberLimit
                });
                this._gameRows[coopLobbyInfo] = mpGameRow;
                mpGameRow._previousPlayed     = this._previouslyPlayedServers.Contains(mpGameRow._lobby.Guid);
                if (mpGameRow._previousPlayed)
                {
                    mpGameRow.name = "0";
                    mpGameRow._newButtonLabel.transform.parent.gameObject.SetActive(true);
                    mpGameRow._continueButtonLabel.text = "Continue";
                }
                else
                {
                    mpGameRow._newButtonLabel.transform.parent.gameObject.SetActive(false);
                    mpGameRow.name = "1";
                }
                MpGameRow mpGameRow2 = mpGameRow;
                mpGameRow2.name += coopLobbyInfo.Name.Substring(0, 6);
            }
            this._lobbies = this._lobbies.Union(enumerable).ToList <CoopLobbyInfo>();
            flag          = true;
        }
        bool flag2 = !string.IsNullOrEmpty(this._browserFilter);

        foreach (MpGameRow mpGameRow3 in this._gameRows.Values)
        {
            if (flag2)
            {
                bool flag3 = mpGameRow3._lobby.Name.ToLowerInvariant().Contains(this._browserFilter);
                if (mpGameRow3.gameObject.activeSelf != flag3)
                {
                    mpGameRow3.transform.parent = ((!flag3) ? this._gameBrowserScreen._grid.transform.parent : this._gameBrowserScreen._grid.transform);
                    mpGameRow3.gameObject.SetActive(flag3);
                    flag = true;
                }
            }
            else if (!mpGameRow3.gameObject.activeSelf)
            {
                mpGameRow3.transform.parent = this._gameBrowserScreen._grid.transform;
                mpGameRow3.gameObject.SetActive(true);
                flag = true;
            }
        }
        if (flag)
        {
            this._gameBrowserScreen._grid.Reposition();
            this._gameBrowserScreen._scrollview.UpdateScrollbars();
            this._gameBrowserScreen._scrollview.verticalScrollBar.value = 1f;
            this._gameBrowserScreen._scrollview.verticalScrollBar.value = 0f;
            if (this._gameBrowserScreen._firstSelectControl && this._gameBrowserScreen._grid.transform.childCount > 0)
            {
                this._gameBrowserScreen._firstSelectControl.ObjectToBeSelected = this._gameBrowserScreen._grid.GetChild(0).GetComponent <MpGameRow>()._continueButtonLabel.transform.parent.gameObject;
            }
        }
    }
コード例 #3
0
 public string ToString(int precision)
 {
     return(StringEx.ToString(ToArray(), precision));
 }
コード例 #4
0
        public void GroupProgressiveByOverloadDEx()
        {
            var src    = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            var r      = src.GroupProgressiveBy(i => i > 5, FuncHelper.GetIdentityFunc <int>(), (key, group) => StringEx.Concat(group.ToArray()), null);
            var rArray = r.ToArray();

            Assert.AreEqual(rArray.Length, 2);
            Assert.AreEqual(rArray[0], "12345");
            Assert.AreEqual(rArray[1], "678910");
        }
コード例 #5
0
ファイル: Server.cs プロジェクト: mlgodzilla/Decompiled-Rust
        public static void cheatreport(ConsoleSystem.Arg arg)
        {
            BasePlayer basePlayer = arg.Player();

            if (Object.op_Equality((Object)basePlayer, (Object)null))
            {
                return;
            }
            ulong  uint64 = arg.GetUInt64(0, 0UL);
            string str    = arg.GetString(1, "");

            Debug.LogWarning((object)(basePlayer.ToString() + " reported " + (object)uint64 + ": " + StringEx.ToPrintable(str, 140)));
            // ISSUE: explicit non-virtual call
            EACServer.eacScout.SendPlayerReport(uint64.ToString(), __nonvirtual(basePlayer.net.get_connection().userid.ToString()), (PlayerReportCategory)1, str);
        }
コード例 #6
0
ファイル: XElementEx.cs プロジェクト: ly774508966/U5ABTest
 /// <summary>
 /// 从节点中读取值
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="_el"></param>
 /// <param name="_defValue"></param>
 /// <returns></returns>
 public static T ReadValueFromElement <T>(this XElement _el, T _defValue = default(T))
 {
     return((T)StringEx.GetValue(_el.Value, typeof(T)));
 }
コード例 #7
0
 protected override void Go()
 {
     if (!StringEx.TryParse(Key, out byte[] keyBytes))
コード例 #8
0
ファイル: 1128531.cs プロジェクト: qifanyyy/CLCDSA
        public void Solve()
        {
            var s = sc.Scan();
            var n = s.Length;

            if (n == 1)
            {
                IO.Printer.Out.WriteLine(1);
                IO.Printer.Out.WriteLine(1);
            }
            else
            {
                var t = 1;
                for (; t < n; t++)
                {
                    if (n % t != 0)
                    {
                        continue;
                    }
                    var ok = true;
                    for (int i = 0; i + t < n; i++)
                    {
                        if (s[i] != s[i + t])
                        {
                            ok = false; break;
                        }
                    }

                    if (ok)
                    {
                        break;
                    }
                }
                var per = Enumerate(2, x => new bool[n + 1]);
                for (int i = 0; i < 2; i++)
                {
                    var a = StringEx.ZAlgorithm(s);
                    for (int d = 1; d <= n; d++)
                    {
                        for (int p = d; p < n; p += d)
                        {
                            if (a[p] < d)
                            {
                                break;
                            }
                            if (p + d <= n)
                            {
                                per[i][p + d] = true;
                            }
                        }
                    }
                    s = s.Reverse().AsString();
                }
                Array.Reverse(per[1]);
                if (t == n)
                {
                    IO.Printer.Out.WriteLine(1);
                    IO.Printer.Out.WriteLine(1);
                }
                else if (t == 1)
                {
                    IO.Printer.Out.WriteLine(n);
                    IO.Printer.Out.WriteLine(1);
                }
                else
                {
                    var ans = 0;
                    IO.Printer.Out.WriteLine(2);
                    for (int i = 0; i <= n; i++)
                    {
                        if (!per[0][i] && !per[1][i])
                        {
                            ans++;
                        }
                    }
                    IO.Printer.Out.WriteLine(ans);
                }
            }
        }
コード例 #9
0
        /// <summary>
        /// Given a S7 variable type (Bool, Word, DWord, etc.), it converts the bytes in the appropriate C# format.
        /// </summary>
        /// <param name="varType"></param>
        /// <param name="bytes"></param>
        /// <param name="varCount"></param>
        /// <param name="bitAdr"></param>
        /// <returns></returns>
        private object?ParseBytes(VarType varType, byte[] bytes, int varCount, byte bitAdr = 0)
        {
            if (bytes == null || bytes.Length == 0)
            {
                return(null);
            }

            switch (varType)
            {
            case VarType.Byte:
                if (varCount == 1)
                {
                    return(bytes[0]);
                }
                else
                {
                    return(bytes);
                }

            case VarType.Word:
                if (varCount == 1)
                {
                    return(Word.FromByteArray(bytes));
                }
                else
                {
                    return(Word.ToArray(bytes));
                }

            case VarType.Int:
                if (varCount == 1)
                {
                    return(Int.FromByteArray(bytes));
                }
                else
                {
                    return(Int.ToArray(bytes));
                }

            case VarType.DWord:
                if (varCount == 1)
                {
                    return(DWord.FromByteArray(bytes));
                }
                else
                {
                    return(DWord.ToArray(bytes));
                }

            case VarType.DInt:
                if (varCount == 1)
                {
                    return(DInt.FromByteArray(bytes));
                }
                else
                {
                    return(DInt.ToArray(bytes));
                }

            case VarType.Real:
                if (varCount == 1)
                {
                    return(Types.Single.FromByteArray(bytes));
                }
                else
                {
                    return(Types.Single.ToArray(bytes));
                }

            case VarType.String:
                return(Types.String.FromByteArray(bytes));

            case VarType.StringEx:
                return(StringEx.FromByteArray(bytes));

            case VarType.Timer:
                if (varCount == 1)
                {
                    return(Timer.FromByteArray(bytes));
                }
                else
                {
                    return(Timer.ToArray(bytes));
                }

            case VarType.Counter:
                if (varCount == 1)
                {
                    return(Counter.FromByteArray(bytes));
                }
                else
                {
                    return(Counter.ToArray(bytes));
                }

            case VarType.Bit:
                if (varCount == 1)
                {
                    if (bitAdr > 7)
                    {
                        return(null);
                    }
                    else
                    {
                        return(Bit.FromByte(bytes[0], bitAdr));
                    }
                }
                else
                {
                    return(Bit.ToBitArray(bytes, varCount));
                }

            case VarType.DateTime:
                if (varCount == 1)
                {
                    return(DateTime.FromByteArray(bytes));
                }
                else
                {
                    return(DateTime.ToArray(bytes));
                }

            case VarType.DateTimeLong:
                if (varCount == 1)
                {
                    return(DateTimeLong.FromByteArray(bytes));
                }
                else
                {
                    return(DateTimeLong.ToArray(bytes));
                }

            default:
                return(null);
            }
        }
コード例 #10
0
ファイル: Terms.cs プロジェクト: rukiNyc/CSharp-Perscholas
        private bool ParseDensity(string v, Qualities q)
        {
            const string GPL = "g/L", GCM3 = Units.GramsPerCC, GRPH = "graphite:", BLK = "black:";

            if (String.IsNullOrEmpty(v))
            {
                return(false);
            }
            int            ndx, ndx2;   // General vars
            ValueQualifier vq = DoubleValue.FindQualifier(ref v);

            v = StringEx.RemoveReferences(v);
            Action <string> getAllotrope = (string n) =>
            {
                ndx = v.IndexOf(n) + n.Length; ndx2 = v.IndexOf(GCM3, ndx);
                v   = v.Substring(ndx);
                if (ndx2 > ndx)
                {
                    ndx2 -= ndx;
                    ndx2 += GCM3.Length;
                    while (ndx2 > v.Length)
                    {
                        ndx2--;
                    }
                    v = v.Substring(0, ndx2);
                }
                v  = v.Trim();
                vq = ValueQualifier.MostStableAllotrope;
            };

            switch (q.Element.Symbol)
            {             // Choose most stable allotropes:
            case "C": getAllotrope(GRPH); break;

            case "P": getAllotrope(BLK); break;

            case "S": getAllotrope("alpha:"); break;

            case "Se": getAllotrope("gray:"); break;

            case "Sn": getAllotrope("gray, α:"); break;

            case "Po": getAllotrope("alpha:"); break;

            // special case
            case "Br": v = v.Remove(0, "Br2, liquid:".Length).Trim(); break;
            }
            double d;
            string u;

            if (UnitValue.TryParse(v, out d, out u))
            {
                if (u == GPL)
                {
                    d /= 1000;
                    u  = GCM3;
                }
                q.Density = new UnitValue(d, u, vq);
                return(true);
            }
            return(false);
        }
コード例 #11
0
        public async Task <ServiceResult> SendEmailAsync()
        {
            var    app     = new AppManager(Globals.DBConnectionKey, "web", "");
            string secret  = app.GetSetting("AppKey")?.Value;
            var    gsecred = Globals.Application.AppSetting("AppKey");

            if (gsecred != secret)
            {
                throw new NotImplementedException();
            }

            var encemail = Cipher.Crypt(secret, "*****@*****.**".ToLower(), true);

            encemail = Cipher.Crypt(secret, "*****@*****.**".ToLower(), true);
            encemail = Cipher.Crypt(secret, "*****@*****.**".ToLower(), true);
            encemail = Cipher.Crypt(secret, "*****@*****.**".ToLower(), true);

            if (CurrentUser == null)
            {
                return(ServiceResponse.Error("You must be logged in to access this function."));
            }

            EmailSettings settings = new EmailSettings();

            settings.FromUserUUID = CurrentUser.UUID;

            try
            {
                string content = await Request.Content.ReadAsStringAsync();

                if (string.IsNullOrEmpty(content))
                {
                    return(ServiceResponse.Error("You must send valid email info."));
                }

                var message = JsonConvert.DeserializeObject <EmailMessage>(content);

                if (string.IsNullOrWhiteSpace(message.SendTo))
                {
                    return(ServiceResponse.Error("You must send a user id for the message."));
                }

                if (string.IsNullOrWhiteSpace(message.Body))
                {
                    return(ServiceResponse.Error("You must send comment in the message."));
                }

                UserManager userManager = new UserManager(Globals.DBConnectionKey, Request.Headers?.Authorization?.Parameter);

                switch (message.Type?.ToUpper())
                {
                case "ACCOUNT":
                    var am  = new AccountManager(Globals.DBConnectionKey, Request.Headers?.Authorization?.Parameter);
                    var res = am.Get(message.SendTo);
                    if (res.Code != 200)
                    {
                        return(res);
                    }
                    // Account account = (Account)res.Result;

                    break;

                case "SUPPORT":
                    //todo call api/Site/SendMessage

                    break;

                case "USER":

                    var resUserTO = userManager.Get(message.SendTo);
                    if (resUserTO == null || resUserTO.Code != 200)
                    {
                        return(ServiceResponse.Error("User not found for user uuid."));
                    }

                    var userTO = (User)resUserTO.Result;     // THIS SHOULD BE sand, EMAILLOG.userUUID should be this.
                    if (message.SendTo != userTO.UUID)
                    {
                        return(ServiceResponse.Error("User id doesn't match the addressed user id."));
                    }

                    //if (message.SendFrom != CurrentUser.UUID)
                    //    return ServiceResponse.Error("Current user doesn't match logged in user."); //may just set the from user = currentuser
                    break;

                case "PROFILE":
                    ProfileManager profileManager = new ProfileManager(Globals.DBConnectionKey, Request.Headers?.Authorization?.Parameter);
                    var            dbProfile      = profileManager.Get(message.SendTo);
                    if (dbProfile.Code != 200)
                    {
                        return(ServiceResponse.Error("Profile not found."));
                    }

                    var node = userManager.Get(((Profile)dbProfile.Result).UserUUID);
                    if (node.Code != 200)
                    {
                        return(node);
                    }

                    var user = (User)node.Result;
                    settings.ToUserUUID = user.UUID;

                    if (string.IsNullOrWhiteSpace(message.Subject))
                    {
                        message.Subject = "You have received a message from " + CurrentUser.Name;
                    }
                    break;

                default:

                    var res2 = userManager.GetUser(message.SendTo, false);
                    if (res2.Code != 200)
                    {
                        return(res2);
                    }

                    var toUser = (User)res2.Result;

                    if (toUser == null)
                    {
                        return(ServiceResponse.Error("User not found."));
                    }

                    settings.ToUserUUID = toUser.UUID;
                    break;
                }

                string hostPassword = Cipher.Crypt(Globals.Application.AppSetting("AppKey"), Globals.Application.AppSetting("EmailHostPassword"), false);

                settings.EncryptionKey = Globals.Application.AppSetting("AppKey");
                settings.HostPassword  = hostPassword;// Globals.Application.AppSetting("EmailHostPassword");
                settings.HostUser      = Globals.Application.AppSetting("EmailHostUser");
                settings.MailHost      = Globals.Application.AppSetting("MailHost");
                settings.MailPort      = StringEx.ConvertTo <int>(Globals.Application.AppSetting("MailPort"));
                settings.SiteDomain    = Globals.Application.AppSetting("SiteDomain");
                settings.EmailDomain   = Globals.Application.AppSetting("EmailDomain");
                settings.SiteEmail     = Globals.Application.AppSetting("SiteEmail");
                settings.UseSSL        = StringEx.ConvertTo <bool>(Globals.Application.AppSetting("UseSSL"));

                message.IpAddress = network.GetClientIpAddress(this.Request);
                return(await userManager.SendEmailAsync(message, settings));
            }
            catch (Exception ex)
            {
                Debug.Assert(false, ex.Message);
                return(ServiceResponse.Error("Failed to send message.", ex.DeserializeException()));
            }
        }
コード例 #12
0
ファイル: Terms.cs プロジェクト: rukiNyc/CSharp-Perscholas
 private bool ParseDU(string v, Qualities q)
 {
     v = StringEx.RemoveReferences(v);
     SetValue(q, new UnitValue(v));
     return(true);
 }
コード例 #13
0
ファイル: Terms.cs プロジェクト: rukiNyc/CSharp-Perscholas
        public bool ParseTerm(string value, Qualities qualities)
        {
            if (String.IsNullOrEmpty(value))
            {
                return(false);
            }
            switch (Name)
            {
            case "Density": return(ParseDensity(value, qualities));

            case "Electrical resistivity": return(ParseElectricalResistivity(value, qualities));

            case "Electron configuration": return(ParseElectronConfiguration(value, qualities));

            case "Element category": qualities.ElementCategory = ElementCategoryEx.Parse(value); return(true);

            case "Heat of fusion": return(ParseHeatOfFusion(value, qualities));

            case "Heat of vaporization": return(ParseDU(value, "kJ/mol", qualities));

            case "Magnetic ordering": qualities.MagneticOrdering = MagneticOrderingEx.Parse(value); return(true);

            case "Magnetic susceptibility": return(ParseMagneticSusceptibility(value, qualities));

            case "Molar heat capacity": return(ParseHeatCapacity(value, qualities));

            case "Period": return(ParsePeriod(value, qualities));

            case "Phase": return(ParsePhase(value, qualities));

            case "Shear modulus": return(ParseShearModulus(value, qualities));

            case "Speed of sound": return(ParseSpeedOfSound(value, qualities));

            case "Thermal conductivity": return(ParseThermalConductivity(value, qualities));

            case "Thermal expansion": return(ParseThermalExpansion(value, qualities));

            case "Van der Waals radius": return(ParseVanDerWaalsRadius(value, qualities));

            case "Vickers hardness": return(ParseVickersHardness(value, qualities));

            case "Young's modulus": return(ParseYoungsModulus(value, qualities));

            case "Boiling point": return(ParseBoilingPoint(value, qualities));

            case "Melting point": return(ParseMeltingPoint(value, qualities));

            case "Triple point": return(ParseTriplePoint(value, qualities));

            case "Critical point": return(ParseCriticalPoint(value, qualities));

            case "Covalent radius": return(ParseCovalentRadius(value, qualities));

            case "Atomic radius": return(ParseAtomicRadius(value, qualities));

            case "Bulk modulus": return(ParseBulkModulus(value, qualities));

            case "Brinell hardness": return(ParseBrinellHardness(value, qualities));

            case "Discovery": return(ParseDiscovery(value, qualities));

            case "CAS Number": return(ParseCAS(value, qualities));
            }
            switch (Type)
            {
            case "i": return(ParseInteger(value, qualities));

            case "s":
                value = StringEx.RemoveReferences(value);
                SetValue(qualities, value); return(true);

            case "xtal": return(ParseCrystalStructure(value, qualities));

            case "d": return(ParseDouble(value, qualities));

            case "ie": return(ParseIE(value, qualities));

            case "du": return(ParseDU(value, qualities));

            case "ii": return(ParseIntegers(value, qualities));

            case "t":
            case "tp":
                SetValue(qualities, value);
                return(true);

            case "grp": return(ParseGroupBlock(value, qualities));

            default:
                throw new ArgumentException("Unrecognized Type: " + Type);
            }
        }
コード例 #14
0
        public ServiceResult SetUserFlag(string userUUID, string userFlag, string flagValue, bool authorize = true)
        {
            User u;

            using (var context = new TreeMonDbContext(this._connectionKey))
            {
                u = context.GetAll <User>().FirstOrDefault(uw => uw.UUID == userUUID);
            }

            if (u == null)
            {
                return(ServiceResponse.Error("User not found."));
            }

            if (authorize)
            {
                if (!this.DataAccessAuthorized(u, "PATCH", false))
                {
                    return(ServiceResponse.Error("You are not authorized this action."));
                }
            }

            if (string.IsNullOrWhiteSpace(userFlag) || string.IsNullOrWhiteSpace(flagValue))
            {
                return(ServiceResponse.Error("You are missing a flag or value to set."));
            }

            switch (userFlag.ToUpper())
            {  // CTRL+SHIFT+U. to toggle case
            case "PROVIDERNAME":
                u.ProviderName = flagValue;
                break;

            case "PROVIDERUSERKEY":
                u.ProviderUserKey = flagValue;
                break;

            case "ACTIVE":
                u.Active = StringEx.ConvertTo <bool>(flagValue);
                break;

            case "DELETED":
                u.Deleted = StringEx.ConvertTo <bool>(flagValue);
                break;

            case "PRIVATE":
                u.Private = StringEx.ConvertTo <bool>(flagValue);
                break;

            case "ANONYMOUS":
                u.Anonymous = StringEx.ConvertTo <bool>(flagValue);
                break;

            case "APPROVED":
                u.Approved = StringEx.ConvertTo <bool>(flagValue);
                break;

            case "BANNED":
                u.Banned = StringEx.ConvertTo <bool>(flagValue);
                break;

            case "LOCKEDOUT":
                u.LockedOut = StringEx.ConvertTo <bool>(flagValue);
                if (u.LockedOut == true)
                {
                    u.LastLockoutDate = DateTime.UtcNow;
                }
                break;

            case "ONLINE":
                u.Online = StringEx.ConvertTo <bool>(flagValue);
                break;

            //case "SITEADMIN": break;// backlog this requires security validation before implementing since its a very powerfull account
            default:
                return(ServiceResponse.Error("Invalid flag."));
            }
            u.LastUpdatedDate = DateTime.UtcNow;
            using (var context = new TreeMonDbContext(this._connectionKey))
            {
                if (context.Update <User>(u) < 0)
                {
                    return(ServiceResponse.Error("Error occurred saving user " + u.Name));
                }
            }

            _logger.InsertInfo("userUUID:" + userUUID + ",userFlag:" + userFlag + ",flagValue:" + flagValue, "UserManager", "SetUserFlag");

            return(ServiceResponse.OK("User " + u.Name + " updated."));
        }
コード例 #15
0
 public static void Write(XmlElement xml, string name, Color value)
 {
     Write(xml, name, StringEx.ColorToString(value));
 }
コード例 #16
0
        public void SimpleGroupJoin()
        {
            // We're going to join on the first character in the outer sequence item
            // being equal to the second character in the inner sequence item
            string[] outer = { "first", "second", "third" };
            string[] inner = { "essence", "offer", "eating", "psalm" };

            var query = outer.GroupJoin(inner,
                                        outerElement => outerElement[0],
                                        innerElement => innerElement[1],
                                        (outerElement, innerElements) => outerElement + ":" + StringEx.Join(";", innerElements));

            query.AssertSequenceEqual("first:offer", "second:essence;psalm", "third:");
        }
コード例 #17
0
        public void GTWS()
        {
            ActiveResult vert = new ActiveResult();
            XT_JB        vo   = new XT_JB();

            vo.jbtype    = "GTWS";
            vo.time      = DateTime.Now.ToString("yyyy-MM-dd");
            vo.sd_result = 0;
            String cOrgID = StringEx.getString(request["org_id"]);

            vo.org_id  = cOrgID;
            vo.adress  = StringEx.getString(request["Address"]);
            vo.neirong = StringEx.getString(request["Content"]);
            vo.open_id = StringEx.getString(request["open_id"]);

            vo.danwei = DbManager.GetStrValue("SELECT ORG_ID FROM XT_CAMERA WHERE DEVICE_ID='" + vo.open_id + "'");
            String cAppDir  = System.Web.HttpContext.Current.Server.MapPath("~/");
            String cFileDir = cAppDir + "GTWSUpload\\";

            if (!Directory.Exists(cFileDir))
            {
                Directory.CreateDirectory(cFileDir);
            }
            String cKeyID = AutoID.getAutoID();

            vo.id    = cKeyID;
            cFileDir = cFileDir + cKeyID.Substring(0, 8) + "\\";
            if (!Directory.Exists(cFileDir))
            {
                Directory.CreateDirectory(cFileDir);
            }

            List <string> sqls = new List <string>();

            List <UploadFileInfo> FileList = this.getUploadList(cOrgID, "GTWSUpload");
            String        cFile_ID         = null;
            List <String> sqlList          = getUploadSQL(FileList);

            for (int i = 0; (sqlList != null) && (i < sqlList.Count); i++)
            {
                sqls.Add(sqlList[i]);
                if (i == 0)
                {
                    cFile_ID = FileList[i].ID;
                }
                else
                {
                    cFile_ID = cFile_ID + "," + FileList[i].ID;
                }
            }
            vo.files_id = cFile_ID;

            string vMaster = dao.Insert(vo);

            sqls.Add(vMaster);

            int          iCode = DbManager.ExecSQL(sqls);
            ActiveResult vret  = ActiveResult.Valid(iCode);

            response.Write(vret.toJSONString());
        }
コード例 #18
0
        public void CustomComparer()
        {
            // We're going to match the start of the outer sequence item
            // with the end of the inner sequence item, in a case-insensitive manner
            string[] outer = { "ABCxxx", "abcyyy", "defzzz", "ghizzz" };
            string[] inner = { "000abc", "111gHi", "222333", "333AbC" };

            var query = outer.GroupJoin(inner,
                                        outerElement => outerElement.Substring(0, 3),
                                        innerElement => innerElement.Substring(3),
                                        (outerElement, innerElements) => outerElement + ":" + StringEx.Join(";", innerElements),
                                        StringComparer.OrdinalIgnoreCase);

            // ABCxxx matches 000abc and 333AbC
            // abcyyy matches 000abc and 333AbC
            // defzzz doesn't match anything
            // ghizzz matches 111gHi
            query.AssertSequenceEqual("ABCxxx:000abc;333AbC", "abcyyy:000abc;333AbC", "defzzz:", "ghizzz:111gHi");
        }
コード例 #19
0
            protected virtual SiteMapNode CreateSiteMapNodeFromDataReader(SiteMapNode parentNode, Dictionary <string, SiteMapNodeEx> nodes, List <VirtualNode> virtualNodes, List <AddProviderNode> addProviderNodes, PageOrdinal ordinal, IDataReader r, ref string hiddenRootTreeId)
            {
                if (r.IsDBNull(ordinal.TreeId))
                {
                    throw new ProviderException("Missing node ID");
                }
                var treeId = r.GetString(ordinal.TreeId);

                if (nodes.ContainsKey(treeId))
                {
                    throw new ProviderException("Duplicate node ID");
                }
                var visible       = !r.Field <bool>(ordinal.IsHidden);
                var key           = r.Field <int>(ordinal.Key);
                var uid           = r.Field <string>(ordinal.Uid);
                var defaultTreeId = r.Field <string>(ordinal.DefaultTreeId);
                var type          = r.Field <string>(ordinal.Type);
                var id            = r.Field <string>(ordinal.Id);
                var name          = r.Field <string>(ordinal.Name);
                var sectionId     = r.Field <string>(ordinal.SectionId);
                //var attrib = r.Field<Nattrib>(ordinal.AttribStream);
                var attrib = BuildAttrib(r.Field <string>(ordinal.AttribStream));
                //
                var pageDynamism   = r.Field <string>(ordinal.PageDynamism);
                var lastModifyDate = r.Field <DateTime?>(ordinal.LastModifyDate);
                var virtualize     = r.Field <string>(ordinal.Virtualize);

                // hidden branches
                if (!visible)
                {
                    if (hiddenRootTreeId == null || !treeId.StartsWith(hiddenRootTreeId))
                    {
                        hiddenRootTreeId = treeId;
                    }
                }
                else if (hiddenRootTreeId != null)
                {
                    if (treeId.StartsWith(hiddenRootTreeId))
                    {
                        visible = false;
                    }
                    else
                    {
                        hiddenRootTreeId = null;
                    }
                }
                // make url
                Action        setRoute = null;
                SiteMapNodeEx node;

                switch (type)
                {
                case "X-AddProvider":
                    addProviderNodes.Add(new AddProviderNode(virtualize, parentNode, x =>
                    {
                        x.Title = name;
                        var externalProvider = (x.Provider as StaticSiteMapProviderEx);
                        if (externalProvider != null)
                        {
                            externalProvider.RebaseNodesRecurse(x, "/" + id);
                        }
                    }));
                    return(null);

                case "X-Section":
                    SiteMapVirtualNode virtualNode;
                    node     = virtualNode = new SiteMapSectionNode(_provider, uid, "/" + id, name);
                    setRoute = () => SetRouteInNode(_routeCreator.CreateRoutes(node, id, virtualize), node);
                    virtualNodes.Add(new VirtualNode(virtualNode, defaultTreeId));
                    break;

                case "E-Form":
                    node = new SiteMapFormNode(_provider, uid, "/" + id, name);
                    node.Set <SiteMapNodePartialProviderExtent>(new SiteMapNodePartialProviderExtent());
                    setRoute = () => SetRouteInNode(_routeCreator.CreateRoutes(node, id, virtualize), node);
                    break;

                case "E-ListDetail":
                    node = new SiteMapListDetailNode(_provider, uid, "/" + id, name);
                    node.Set <SiteMapNodePartialProviderExtent>(new SiteMapNodePartialProviderExtent());
                    setRoute = () => SetRouteInNode(_routeCreator.CreateRoutes(node, id, virtualize), node);
                    break;

                case "X-Link":
                    id = StringEx.Axb(sectionId, "/", id);
                    string linkUri;
                    if (!attrib.TryGetValue("LinkUri", out linkUri))
                    {
                        linkUri = "/";
                    }
                    node = new SiteMapLinkNode(_provider, uid, "/" + id, name)
                    {
                        LinkUri = linkUri
                    };
                    node.Set <Func <IDynamicNode, RouteData> >(nodeEx =>
                    {
                        var linkNodeEx = (nodeEx as SiteMapLinkNode);
                        if (linkNodeEx != null)
                        {
                            var context = HttpContext.Current;
                            var query   = context.Request.Url.Query;
                            context.Response.Redirect(query.Length == 0 ? linkNodeEx.LinkUri : linkNodeEx.LinkUri + query);
                        }
                        return(null);
                    });
                    break;

                case "X-Content":
                    id       = StringEx.Axb(sectionId, "/", id);
                    node     = new SiteMapPageNode(_provider, uid, "/" + id, name);
                    setRoute = () => SetRouteInNode(_routeCreator.CreateRoutes(node, id, virtualize), node);
                    break;

                default:
                    throw new InvalidOperationException();
                }
                node.Visible = visible;
                // map attrib
                if (attrib != null)
                {
                    foreach (var attribKey in attrib.Keys)
                    {
                        node[attribKey] = attrib[attribKey];
                    }
                }
                // content
                var sectionNode = GetParentNodeFromDataReader(nodes, _rootNode, ordinal, r, true);

                node.Set <SiteMapNodeContentExtent>(new SiteMapNodeContentExtent {
                    Shard = _connectShard, Key = key, TreeId = treeId, SectionNode = sectionNode, Sequence = _sequence++
                });
                var contentNode = (node as SiteMapPageNode);

                if (contentNode != null)
                {
                    contentNode.LastModifyDate = lastModifyDate;
                    contentNode.PageDynamism   = pageDynamism;
                    contentNode.PagePriority   = null;
                }
                nodes.Add(treeId, node);
                // set route last so node values are populated before routes are determined.
                if (setRoute != null)
                {
                    setRoute();
                }
                return(node);
            }
コード例 #20
0
        public void DifferentSourceTypes()
        {
            int[]    outer = { 5, 3, 7, 4 };
            string[] inner = { "bee", "giraffe", "tiger", "badger", "ox", "cat", "dog" };

            var query = outer.GroupJoin(inner,
                                        outerElement => outerElement,
                                        innerElement => innerElement.Length,
                                        (outerElement, innerElements) => outerElement + ":" + StringEx.Join(";", innerElements));

            query.AssertSequenceEqual("5:tiger", "3:bee;cat;dog", "7:giraffe", "4:");
        }
コード例 #21
0
        public void GroupProgressiveByOverloadD()
        {
            var src    = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            var r      = src.GroupProgressiveBy(i => i > 5, j => j + 1, (key, group) => StringEx.Concat(group.ToArray()), null);
            var rArray = r.ToArray();

            Assert.AreEqual(rArray.Length, 2);
            Assert.AreEqual(rArray[0], "23456");
            Assert.AreEqual(rArray[1], "7891011");
        }
コード例 #22
0
        public void NullKeys()
        {
            string[] outer = { "first", null, "second" };
            string[] inner = { "first", "null", "nothing" };
            var      query = outer.GroupJoin(inner,
                                             outerElement => outerElement,
                                             innerElement => innerElement.StartsWith("n") ? null : innerElement,
                                             (outerElement, innerElements) => outerElement + ":" + StringEx.Join(";", innerElements));

            // No matches for the null outer key
            query.AssertSequenceEqual("first:first", ":", "second:");
        }
コード例 #23
0
        public ServiceResult DeleteImages(INode n, string userUploadsFolder)
        {
            if (n == null || string.IsNullOrWhiteSpace(userUploadsFolder))
            {
                return(ServiceResponse.Error("Bad request, invalid delete parameters."));
            }

            if (!Directory.Exists(userUploadsFolder))
            {
                return(ServiceResponse.OK());//folder doesn't exist for user so nothing has been uploaded.
            }
            if (!this.DataAccessAuthorized(n, "DELETE", false))
            {
                return(ServiceResponse.Error("You are not authorized this action."));
            }

            string pathToFile = userUploadsFolder + StringEx.Substring(n.Image, _requestingUser.UUID, string.Empty);

            try
            {
                if (File.Exists(pathToFile))
                {
                    File.Delete(pathToFile);

                    FileInfo fi          = new FileInfo(pathToFile);
                    string   pathToThumb = pathToFile.Replace(fi.Extension, ".tmb" + fi.Extension);
                    if (File.Exists(pathToThumb))
                    {
                        File.Delete(pathToThumb);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.Assert(false, ex.Message);
                //todo log this
            }

            // now get settings images for this item

            AppManager am = new AppManager(this._connectionKey, "web", this.SessionKey);

            string         type     = n.GetType().Name; //todo make sure this is the same type in InventoryController.PostFile
            List <Setting> settings = am.GetSettings(type)
                                      .Where(w => w.UUIDType.EqualsIgnoreCase("ImagePath") &&
                                             w.Value == n.UUID).ToList();

            if (settings.Count == 0)
            {
                return(ServiceResponse.OK());
            }

            foreach (Setting setting in settings)
            {
                try
                {
                    pathToFile = userUploadsFolder + StringEx.Substring(setting.Image, _requestingUser.UUID, string.Empty);
                    if (string.IsNullOrWhiteSpace(pathToFile))
                    {
                        continue;
                    }

                    if (File.Exists(pathToFile))
                    {
                        File.Delete(pathToFile);
                        FileInfo fi          = new FileInfo(pathToFile);
                        string   pathToThumb = pathToFile.Replace(fi.Extension, ".tmb" + fi.Extension);

                        if (File.Exists(pathToThumb))
                        {
                            File.Delete(pathToThumb);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Debug.Assert(false, ex.Message);
                    //todo log this
                }
                am.DeleteSetting(n.UUID);
            }

            //var setting = new Setting()
            //{   // so when we query back. value == invenToryItem.UUID
            //    Value = UUID,
            //    Name = "InventoryItem",
            //    AccountUUID = this.CurrentUser.AccountUUID,
            //    Type = SettingFlags.Types.String,
            //    AppType = "web",
            //    Image = pathToImage,
            //    UUIDType = "ImagePath",
            //    DateCreated = DateTime.UtcNow,
            //    CreatedBy = CurrentUser.UUID,
            //    RoleOperation = ">=",
            //    RoleWeight =  RoleFlags.MemberRoleWeights.Member,
            //    Private = false,
            //};

            //and the thumbnail
            // ".tmb" + fi.Extension
            throw new NotImplementedException();
        }
コード例 #24
0
        public bool UpdateAnalyseFile(String cFileName)
        {
            Boolean      isUpload = false;
            JActiveTable aMaster  = new JActiveTable();
            JActiveTable aSlave   = new JActiveTable();

            aSlave.TableName  = "XT_IMG_LIST";
            aMaster.TableName = "XT_IMG_REC";

            log4net.WriteLogFile("分析线程正在运行中......");
            if (String.IsNullOrWhiteSpace(cFileName))
            {
                return(false);
            }

            String          cFileExt        = Path.GetExtension(cFileName);
            String          cREC_ID         = Path.GetFileName(cFileName).Replace(cFileExt, "");
            List <KeyValue> ImageList       = IMGAI.getImageList(cFileName, iMinVal, iMaxVal, iGrayMinVal, iGrayMaxVal);
            String          cExportFileName = Application.StartupPath + "\\" + cREC_ID + ".zip";
            int             iCode           = 0;
            Boolean         MustRemoveFile  = false;

            if ((ImageList != null) && (ImageList.Count > 0))
            {
                List <String> sqls = new List <string>();
                for (int k = 0; (ImageList != null) && (k < ImageList.Count); k++)
                {
                    Application.DoEvents();
                    KeyValue rowKey = ImageList[k];
                    aSlave.ClearField();
                    String cKeyID = StringEx.getString(k + 1000);
                    aSlave.AddField("ID", AutoID.getAutoID() + "_" + cKeyID);
                    aSlave.AddField("ALARM_FLAG", 0);
                    aSlave.AddField("REC_ID", cREC_ID);
                    aSlave.AddField("CREATE_TIME", DateUtils.getDayTimeNum());
                    aSlave.AddField("POINT_LIST", rowKey.Val);
                    sqls.Add(aSlave.getInsertSQL());
                }
                sqls.Insert(0, "DELETE FROM XT_IMG_REC WHERE REC_ID='" + cREC_ID + "'");
                iCode = WebSQL.ExecSQL(sqls);

                if (iCode > 0)
                {
                    if (File.Exists(cExportFileName))
                    {
                        SftpClient ftp = getAnalyseClient();
                        isUpload = CopyUnit.SSH_Upload(ftp, cExportFileName, "ANALYSE");
                    }
                }
                if (isUpload)
                {
                    MustRemoveFile = true;
                    log4net.WriteLogFile("UploadTask.文件上传成功!");
                }
                else
                {
                    log4net.WriteLogFile("UploadTask." + cREC_ID + ":文件上传失败!");
                }
            }
            else
            {
                log4net.WriteLogFile("UploadTask." + cREC_ID + ":图片拆分失败!");
                MustRemoveFile = true;
            }
            if (MustRemoveFile)
            {
                try
                {
                    File.Delete(cFileName);
                }
                catch (Exception ex)
                {
                    log4net.WriteLogFile(ex.Message);
                }
                try
                {
                    File.Delete(cExportFileName);
                }
                catch (Exception ex)
                {
                    log4net.WriteLogFile(ex.Message);
                }
            }

            aMaster.ClearField();
            if (iCode > 0)
            {
                aMaster.AddField("AI_FLAG", 1);
            }
            else
            {
                aMaster.AddField("AI_FLAG", 2);
            }
            iCode = WebSQL.ExecSQL(aMaster.getUpdateSQL(" REC_ID='" + cREC_ID + "' "));
            if (iCode > 0)
            {
                log4net.WriteLogFile("REC_ID为:" + cREC_ID + "的图片抠图成功!");
            }
            return(true);
        }
コード例 #25
0
        private ServiceResult SendEmail(CartView cart, Order order, FinanceAccount account, string customerEmail, string status)
        {
            if (cart == null)
            {
                return(ServiceResponse.Error("Could not send email, cart was not set."));
            }

            AppManager am           = new AppManager(this._connectionKey, "web", this.SessionKey);
            string     domain       = am.GetSetting("SiteDomain")?.Value;
            string     emailSubject = "";
            string     emailContent = "";

            //todo put this in another function

            #region get email content function

            switch (status)
            {
            case StoreFlag.OrderStatus.Recieved:
                emailSubject = "Your " + domain + " order has been recieved.";

                DocumentManager dm = new DocumentManager(this._connectionKey, SessionKey);
                emailContent = dm.GetTemplate("EmailOrderReceived").Result?.ToString();

                if (string.IsNullOrWhiteSpace(emailContent))
                {
                    return(ServiceResponse.Error("Failed to send email. Document not found."));
                }

                //use view cart for details
                emailContent = emailContent.Replace("[Order.OrderID]", order.UUID);
                emailContent = emailContent.Replace("[Order.AddedDate]", order.DateCreated.ToShortDateString());
                //See below: emailContent = emailContent.Replace( "[Order.Total]"                  ,
                emailContent = emailContent.Replace("[PaymentType.Title]", cart.PaidType);
                emailContent = emailContent.Replace("[StoreManager.PayType]", account.CurrencyName);
                emailContent = emailContent.Replace("[StoreManager.PayTypeTotal]", order.Total.ToString());
                ////emailContent = emailContent.Replace( "                               ,PayTypeSubTotal);
                //// emailContent = emailContent.Replace("[PayType.Address]", account. PayType.Address);
                emailContent = emailContent.Replace("[PayType.PictureUrl]", account.Image);
                emailContent = emailContent.Replace("[Settings.CurrencySymbol]", am.GetSetting("default.currency.symbol").Value);
                emailContent = emailContent.Replace("[Settings.SiteDomain]", domain);

                ////todo  paytype.address and qr code for btc.
                ////todo bookmark latest currency symbol
                //// string validationCode = Cipher.RandomString(12);
                ////   emailContent = emailContent.Replace("[Url.Unsubscribe]", "http://" + domain + "/FinanceAccount/ValidateEmail/?type=mbr&operation=mdel&code=" + validationCode);

                StringBuilder ShoppingCartItemsList = new StringBuilder();

                foreach (dynamic item in cart.CartItems)
                {
                    ShoppingCartItemsList.Append("<tr id=\"[item-ShoppingCartItem.Product.Id]\">".Replace("[item-ShoppingCartItem.Product.ProductID]", item.ItemUUID.ToString()));
                    ShoppingCartItemsList.Append("<td align=\"center\">[ShoppingCartItem.Title]</td>".Replace("[ShoppingCartItem.Title]", item.Name.ToString()));
                    ShoppingCartItemsList.Append("<td align=\"center\">[ShoppingCartItem.Quantity]</td>".Replace("[ShoppingCartItem.Quantity]", item.Quantity.ToString()));
                    ShoppingCartItemsList.Append("<td align=\"center\">[ShoppingCartItem.Price]</td></tr>".Replace("[ShoppingCartItem.Price]", item.Price.ToString("c")));
                }

                emailContent = emailContent.Replace("[ShoppingCartItemsList]", ShoppingCartItemsList.ToString());
                emailContent = emailContent.Replace("[Order.SubTotal]", order.SubTotal.ToString("c"));
                emailContent = emailContent.Replace("[Order.Total]", order.Total.ToString("c"));

                #endregion get email content function

                break;
            }
            string appKey        = am.GetSetting("AppKey")?.Value;
            string emailPassword = am.GetSetting("EmailHostPassword")?.Value;

            SMTP mailServer = new SMTP(this._connectionKey, new Models.Services.EmailSettings()
            {
                HostPassword  = Cipher.Crypt(appKey, emailPassword, false),
                EncryptionKey = am.GetSetting("AppKey")?.Value,
                HostUser      = am.GetSetting("EmailHostUser")?.Value,
                MailHost      = am.GetSetting("MailHost")?.Value,
                MailPort      = StringEx.ConvertTo <int>(am.GetSetting("MailPort")?.Value),
                SiteDomain    = am.GetSetting("SiteDomain")?.Value,
                EmailDomain   = am.GetSetting("EmailDomain")?.Value,
                SiteEmail     = am.GetSetting("SiteEmail")?.Value,
                UseSSL        = StringEx.ConvertTo <bool>(am.GetSetting("UseSSL")?.Value)
            });
            MailMessage mail = new MailMessage();
            try
            {
                mail.From = new MailAddress(am.GetSetting("SiteEmail")?.Value);
                mail.ReplyToList.Add(mail.From);
                mail.To.Add(customerEmail);
                mail.Subject    = emailSubject;
                mail.Body       = emailContent;
                mail.IsBodyHtml = true;
            }
            catch (Exception ex)
            {
                Debug.Assert(false, ex.Message);
                this._logger.InsertError(ex.Message, "StoreManager", "SendMail");
                return(ServiceResponse.Error("Failed to send email. "));
            }

            ServiceResult res = mailServer.SendMail(mail);
            if (res.Code != 200)
            {
                Debug.Assert(false, mailServer.ErrorMessage);
                this._logger.InsertError(mailServer.ErrorMessage, "StoreManager", "SendMail");
                return(ServiceResponse.Error("Failed to send email. "));
            }
            return(ServiceResponse.OK());
        }
コード例 #26
0
 public static void Write(XmlElement xml, string name, Vector4 value)
 {
     Write(xml, name, StringEx.Vector4ToString(value));
 }
コード例 #27
0
 private void UpdateServerInformation()
 {
     if (Global.get_SteamServer() == null)
     {
         return;
     }
     using (TimeWarning.New(nameof(UpdateServerInformation), 0.1f))
     {
         Global.get_SteamServer().set_ServerName(ConVar.Server.hostname);
         Global.get_SteamServer().set_MaxPlayers(ConVar.Server.maxplayers);
         Global.get_SteamServer().set_Passworded(false);
         Global.get_SteamServer().set_MapName(World.Name);
         string str1 = "stok";
         if (this.Restarting)
         {
             str1 = "strst";
         }
         string str2 = string.Format("born{0}", (object)Epoch.FromDateTime(SaveRestore.SaveCreatedTime));
         string str3 = string.Format("mp{0},cp{1},qp{5},v{2}{3},h{4},{6},{7}", (object)ConVar.Server.maxplayers, (object)BasePlayer.activePlayerList.Count, (object)2161, ConVar.Server.pve ? (object)",pve" : (object)string.Empty, (object)this.AssemblyHash, (object)((ServerMgr)SingletonComponent <ServerMgr> .Instance).connectionQueue.Queued, (object)str1, (object)str2) + ",oxide";
         if (Interface.get_Oxide().get_Config().get_Options().Modded != null)
         {
             str3 += ",modded";
         }
         Global.get_SteamServer().set_GameTags(str3);
         if (ConVar.Server.description != null && ConVar.Server.description.Length > 100)
         {
             string[] array = StringEx.SplitToChunks(ConVar.Server.description, 100).ToArray <string>();
             for (int index = 0; index < 16; ++index)
             {
                 if (index < array.Length)
                 {
                     Global.get_SteamServer().SetKey(string.Format("description_{0:00}", (object)index), array[index]);
                 }
                 else
                 {
                     Global.get_SteamServer().SetKey(string.Format("description_{0:00}", (object)index), string.Empty);
                 }
             }
         }
         else
         {
             Global.get_SteamServer().SetKey("description_0", ConVar.Server.description);
             for (int index = 1; index < 16; ++index)
             {
                 Global.get_SteamServer().SetKey(string.Format("description_{0:00}", (object)index), string.Empty);
             }
         }
         Global.get_SteamServer().SetKey("hash", this.AssemblyHash);
         Facepunch.Steamworks.Server steamServer1 = Global.get_SteamServer();
         uint   num  = World.Seed;
         string str4 = num.ToString();
         steamServer1.SetKey("world.seed", str4);
         Facepunch.Steamworks.Server steamServer2 = Global.get_SteamServer();
         num = World.Size;
         string str5 = num.ToString();
         steamServer2.SetKey("world.size", str5);
         Global.get_SteamServer().SetKey("pve", ConVar.Server.pve.ToString());
         Global.get_SteamServer().SetKey("headerimage", ConVar.Server.headerimage);
         Global.get_SteamServer().SetKey("url", ConVar.Server.url);
         Global.get_SteamServer().SetKey("uptime", ((int)Time.get_realtimeSinceStartup()).ToString());
         Global.get_SteamServer().SetKey("gc_mb", Performance.report.memoryAllocations.ToString());
         Global.get_SteamServer().SetKey("gc_cl", Performance.report.memoryCollections.ToString());
         Global.get_SteamServer().SetKey("fps", Performance.report.frameRate.ToString());
         Global.get_SteamServer().SetKey("fps_avg", Performance.report.frameRateAverage.ToString("0.00"));
         Global.get_SteamServer().SetKey("ent_cnt", BaseNetworkable.serverEntities.Count.ToString());
         Global.get_SteamServer().SetKey("build", BuildInfo.get_Current().get_Scm().get_ChangeId());
     }
 }
コード例 #28
0
 public static void Write(XmlElement xml, string name, Quaternion value)
 {
     Write(xml, name, StringEx.QuaternionToString(value));
 }
コード例 #29
0
    public static Item CreateByPartialName(string strName, int iAmount = 1)
    {
        ItemDefinition itemDefinition = ItemManager.itemList.Find((Predicate <ItemDefinition>)(x => x.shortname == strName));

        if (Object.op_Equality((Object)itemDefinition, (Object)null))
        {
            itemDefinition = ItemManager.itemList.Find((Predicate <ItemDefinition>)(x => StringEx.Contains(x.shortname, strName, CompareOptions.IgnoreCase)));
        }
        if (Object.op_Equality((Object)itemDefinition, (Object)null))
        {
            return((Item)null);
        }
        return(ItemManager.CreateByItemID(itemDefinition.itemid, iAmount, 0UL));
    }
コード例 #30
0
ファイル: OutputLogger.cs プロジェクト: nomada2/MvcKompAppGit
 private void TraceWindow(string category, string message, params object[] values)
 {
     lock (Sync)
         Trace.WriteLine(category, StringEx.FormatMessage(message, values));
 }