public IAppFileSystemLoader Init(int appId, string path, ILog log) { Log.LinkTo(log); ZoneMapper.Init(log); var wrapLog = Log.Call($"{appId}, {path}, ..."); AppId = appId; try { Log.Add($"Trying to build path based on tenant. If it's in search mode, the {nameof(ITenant)} will be missing. Id: {Tenant.Id}"); EnsureTenantIsLoadedWhenDiFails(); var fullPath = Tenant.AppsRoot + "/" + path + "/" + Eav.Constants.FolderAppExtensions; Path = HostingEnvironment.MapPath(fullPath); Log.Add("System path:" + Path); } catch (Exception e) { // ignore wrapLog("error: " + e.Message); return(this); } wrapLog(null); return(this); }
public IAppFileSystemLoader Init(int appId, string path, ILog log) { Log.LinkTo(log); ZoneMapper.Init(log); var wrapLog = Log.Call($"{appId}, {path}, ..."); AppId = appId; try { Log.Add($"Trying to build path based on tenant. If it's in search mode, the {nameof(ISite)} will be missing. Id: {Site.Id}"); EnsureSiteIsLoadedWhenDiFails(); var fullPath = System.IO.Path.Combine(Site.AppsRootPhysicalFull, path, Eav.Constants.FolderAppExtensions); Path = fullPath; Log.Add("System path:" + Path); } catch (Exception e) { // ignore wrapLog("error: " + e.Message); return(this); } wrapLog(null); return(this); }
private void EnsureTenantIsLoadedWhenDiFails() { if (Tenant.Id != Eav.Constants.NullId) { return; } Log.Add("TenantId not found. Must be in search mode, will try to find correct portalsettings"); Tenant = ZoneMapper.TenantOfApp(AppId); }
/// <summary> /// find the AppIdentity of an app which is referenced by a path /// </summary> /// <param name="appPath"></param> /// <returns></returns> internal IAppIdentity GetCurrentAppIdFromPath(string appPath) { var wrapLog = Log.Call(appPath); // check zone var zid = ZoneMapper.GetZoneId(Portal.PortalId); // get app from appname var aid = AppHelpers.GetAppIdFromGuidName(zid, appPath, true); wrapLog($"found app:{aid}"); return(new AppIdentity(zid, aid)); }
public ZoneDAOImp() { mapper = new ZoneMapper(); }
public static async Task <ParsedKillMail> ParseKillmail(string input) { // Remove special formatting var lines = input.Split(new [] { '\r', '\n' }); if (lines.Any() && lines.FirstOrDefault().Contains("```")) { input = string.Join("\n", lines.Skip(1)); } input = input.Replace("**", ""); var extractedKillmail = new ParsedKillMail(); Match killmailMatch = Regex.Match(input, Pattern); if (killmailMatch.Success) { foreach (Group group in killmailMatch.Groups.Where(x => x.Success)) { switch (group.Name) { case "datetime": extractedKillmail.KilledAt = group.Value.Trim(); break; case "victimName": extractedKillmail.VictimName = group.Value.Trim(); break; case "attackerName": extractedKillmail.AttackerName = group.Value.Trim(); break; case "zone": extractedKillmail.Zone = ZoneMapper.fullZoneName(group.Value.Trim()); break; case "killingBlow": if (int.TryParse(group.Value.Trim(), out var killingBlow)) { extractedKillmail.KillingBlow = killingBlow; } break; case "overDamage": if (int.TryParse(group.Value.Trim(), out var overDamage)) { extractedKillmail.OverDamage = overDamage; } break; case "involvedText": await ParseInvolved(extractedKillmail, group.Value); break; default: break; } } // Get level and class and guild for each char var victimScraper = new CharBrowserScraper(extractedKillmail.VictimName); var attackerScraper = new CharBrowserScraper(extractedKillmail.AttackerName); await victimScraper.Fetch(); await attackerScraper.Fetch(); extractedKillmail.AttackerGuild = attackerScraper.Guild; extractedKillmail.AttackerLevel = attackerScraper.Level; extractedKillmail.AttackerClass = attackerScraper.Class; extractedKillmail.AttackerIsNpc = attackerScraper.IsNpc; extractedKillmail.VictimGuild = victimScraper.Guild; extractedKillmail.VictimLevel = victimScraper.Level; extractedKillmail.VictimClass = victimScraper.Class; extractedKillmail.VictimIsNpc = victimScraper.IsNpc; } else { return(null); } return(extractedKillmail); }