Ejemplo n.º 1
0
        private static async Task <string[]> GenerateDumpListHtml(string authCode, HRMAccessFilter accessFilter, long filterId, GenMemType genType)
        {
            var list = (await SQLHelper.GetAuthUsers((int)UserStatusEnum.Dumped)).Where(a => IsValidUserForInteraction(accessFilter, a)).OrderBy(a => a.Data.CharacterName);

            return(await GenerateActualMemberEntries(list, authCode, accessFilter, (int)UserStatusEnum.Dumped, filterId, genType));
        }
Ejemplo n.º 2
0
        private static async Task <string[]> GenerateActualMemberEntries(IEnumerable <AuthUserEntity> list, string authCode, HRMAccessFilter accessFilter, int authState, long filterId,
                                                                         GenMemType genType)
        {
            try
            {
                var corpFilters  = new Dictionary <string, string>();
                var allyFilters  = new Dictionary <string, string>();
                var tmpFilters   = new List <long>();
                var sb           = new StringBuilder();
                var inspectCondi = accessFilter.CanAccessUser(authState);
                var isDumpedList = authState == (int)UserStatusEnum.Dumped;
                var canSpy       = accessFilter.CanInspectSpyUsers;
                list = filterId == 0 ? list : list.Where(a => a.Data.CorporationId == filterId || a.Data.AllianceId == filterId);
                var deleteTooltip = isDumpedList || !SettingsManager.Settings.HRMModule.UseDumpForMembers
                    ? LM.Get("hrmDeleteAuthButtonTooltip")
                    : LM.Get("hrmDumpAuthButtonTooltip");
                foreach (var item in list)
                {
                    if (genType == GenMemType.All || genType == GenMemType.Members)
                    {
                        var  noEsi        = !item.HasToken;
                        bool invalidToken = false;
                        if (item.HasToken && SettingsManager.Settings.HRMModule.ValidateTokensWhileLoading)
                        {
                            var token = await APIHelper.ESIAPI.RefreshToken(item.RefreshToken, SettingsManager.Settings.WebServerModule.CcpAppClientId,
                                                                            SettingsManager.Settings.WebServerModule.CcpAppSecret, $"From HRM | Char ID: {item.CharacterId} | Char name: {item.Data.CharacterName}");

                            invalidToken = token.Result == null;
                        }
                        var charUrl = !inspectCondi ? "#" : WebServerModule.GetHRMInspectURL(item.CharacterId, authCode);
                        sb.Append($"<div class=\"row-fluid\" style=\"margin-top: 5px;align-items:center;\">");
                        if (noEsi)
                        {
                            sb.Append($"<i class=\"fas fa-2x fa-comment-slash solo_tooltip\" tooltip-title=\"{LM.Get("hrmTooltipNoESI")}\"></i>");
                        }
                        else if (invalidToken)
                        {
                            sb.Append($"<i class=\"fas fa-2x fa-exclamation-triangle solo_tooltip\" tooltip-title=\"{LM.Get("hrmTooltipInvalidESIToken")}\" style=\"color: red;\"></i>");
                        }

                        sb.Append($"<img src=\"https://imageserver.eveonline.com/Character/{item.CharacterId}_64.jpg\" style=\"width:64px;height:64px;\"/>");
                        sb.Append($@"<a class=""btn btn-outline-info btn-block"" href=""{charUrl}"">");
                        sb.Append(
                            $@"<div class=""container""><div class=""row""><b>{item.Data.CharacterName}</b></div><div class=""row"">{item.Data.CorporationName} [{item.Data.CorporationTicker}]{(item.Data.AllianceId > 0 ? $" - {item.Data.AllianceName}[{item.Data.AllianceTicker}]" : null)}</div></div>");
                        sb.Append(@"</a>");
                        if (isDumpedList && canSpy && item.HasToken)
                        {
                            sb.Append(
                                $@"<a class=""btn btn-outline-primary flex-content{(accessFilter.CanMoveToSpies ? null : " d-none")}"" href=""{WebServerModule.GetHRM_MoveToSpiesURL(item.CharacterId, authCode)}"" style=""width:64px;height:64px;"" data-toggle=""confirmation"" tooltip-title=""{LM.Get("hrmSpyButtonTooltip")}"" confirm-title=""{LM.Get("hrmMoveToSpiesConfirm")}"" data-singleton=""true""  data-popout=""true"" data-placement=""top"">");
                            sb.Append(@"  <span class=""fas fa-user-secret fa-2x""></span>");
                            sb.Append(@"</a>");
                        }

                        if (isDumpedList)
                        {
                            sb.Append(
                                $@"<a class=""btn btn-outline-primary flex-content{(accessFilter.CanRestoreDumped ? null : " d-none")}"" href=""{WebServerModule.GetHRM_RestoreDumpedURL(item.CharacterId, authCode)}"" style=""width:64px;height:64px;"" data-toggle=""confirmation"" tooltip-title=""{LM.Get("hrmRestoreButtonTooltip")}"" confirm-title=""{LM.Get("hrmRestoreConfirm")}"" data-singleton=""true""  data-popout=""true"" data-placement=""top"">");
                            sb.Append(@"  <span class=""fas fa-trash-restore fa-2x""></span>");
                            sb.Append(@"</a>");
                        }

                        sb.Append(
                            $@"<a class=""btn btn-outline-danger flex-content{(accessFilter.CanKickUsers ? null : " d-none")}"" href=""{WebServerModule.GetHRM_DeleteCharAuthURL(item.CharacterId, authCode)}"" style=""width:64px;height:64px;"" data-toggle=""confirmation"" tooltip-title=""{deleteTooltip}"" confirm-title=""{LM.Get("hrmButDeleteUserAuthConfirm")}"" data-singleton=""true""  data-popout=""true"">");
                        sb.Append(@"  <span class=""fas fa-times-circle fa-2x""></span>");
                        sb.Append(@"</a>");
                        sb.Append($"</div>");
                    }

                    if (genType == GenMemType.All || genType == GenMemType.Filter)
                    {
                        if (!tmpFilters.Contains(item.Data.CorporationId))
                        {
                            tmpFilters.Add(item.Data.CorporationId);
                            var name  = $"{item.Data.CorporationName}[{item.Data.CorporationTicker}]";
                            var value = $@"<option value=""{item.Data.CorporationId}"">{name}</option>";
                            corpFilters.AddOnlyNew(name, value);
                        }

                        if (item.Data.AllianceId > 0 && !tmpFilters.Contains(item.Data.AllianceId))
                        {
                            tmpFilters.Add(item.Data.AllianceId);
                            var name  = $"{item.Data.AllianceName}[{item.Data.AllianceTicker}]";
                            var value = $@"<option value=""{item.Data.CorporationId}"">{name}</option>";
                            allyFilters.AddOnlyNew(name, value);
                        }
                    }
                }

                var filterSb = new StringBuilder();
                if (genType == GenMemType.All || genType == GenMemType.Filter)
                {
                    filterSb.Append($@"<option value=""0"" selected>{LM.Get("hrmEverything")}</option>");
                    foreach (var filter in allyFilters.OrderBy(a => a.Key).Select(a => a.Value))
                    {
                        filterSb.Append(filter);
                        filterSb.Append(Environment.NewLine);
                    }

                    foreach (var filter in corpFilters.OrderBy(a => a.Key).Select(a => a.Value))
                    {
                        filterSb.Append(filter);
                        filterSb.Append(Environment.NewLine);
                    }
                }

                return(new[] { sb.ToString(), filterSb.ToString() });
            }
            catch (Exception ex)
            {
                await LogHelper.LogEx(nameof(GenerateActualMemberEntries), ex, LogCat.HRM);

                await LogHelper.LogError("There was problem generating users list!", LogCat.HRM);

                return(new string[] { null, null });
            }
        }