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 }
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; } } }
public string ToString(int precision) { return(StringEx.ToString(ToArray(), precision)); }
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"); }
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); }
/// <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))); }
protected override void Go() { if (!StringEx.TryParse(Key, out byte[] keyBytes))
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); } } }
/// <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); } }
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); }
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())); } }
private bool ParseDU(string v, Qualities q) { v = StringEx.RemoveReferences(v); SetValue(q, new UnitValue(v)); return(true); }
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); } }
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.")); }
public static void Write(XmlElement xml, string name, Color value) { Write(xml, name, StringEx.ColorToString(value)); }
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:"); }
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()); }
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"); }
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); }
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:"); }
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"); }
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:"); }
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(); }
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); }
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()); }
public static void Write(XmlElement xml, string name, Vector4 value) { Write(xml, name, StringEx.Vector4ToString(value)); }
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()); } }
public static void Write(XmlElement xml, string name, Quaternion value) { Write(xml, name, StringEx.QuaternionToString(value)); }
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)); }
private void TraceWindow(string category, string message, params object[] values) { lock (Sync) Trace.WriteLine(category, StringEx.FormatMessage(message, values)); }