public string GetFullSubscriptionText(UserSubscriptionTooltip subscrTooltip, string claimStatusChangeGroup, string commentsGroup, string fieldChangeGroup, string moneyOperationGroup) { string res; if (subscrTooltip.IsDirect || subscrTooltip.HasFullParentSubscription) { res = "Вы подписаны на эту заявку"; } else if (!(subscrTooltip.ClaimStatusChange || subscrTooltip.Comments || subscrTooltip.FieldChange || subscrTooltip.MoneyOperation)) { res = "Вы не подписаны на эту заявку"; } else { res = "Вы не подписаны на эту заявку, но будете получать уведомления в случаях: <br><ul>"; if (subscrTooltip.ClaimStatusChange) { res += "<li>Изменение статуса (группа \"" + claimStatusChangeGroup + "\")</li>"; } if (subscrTooltip.Comments) { res += "<li>Комментарии (группа \"" + commentsGroup + "\")</li>"; } if (subscrTooltip.FieldChange) { res += "<li>Изменение полей заявки (группа \"" + fieldChangeGroup + "\")</li>"; } if (subscrTooltip.MoneyOperation) { res += "<li>Финансовые операции (группа \"" + moneyOperationGroup + "\")</li>"; } res += "</ul>"; } return(res); }
public UserSubscriptionTooltip GetFullSubscriptionTooltip(IEnumerable <CharacterGroup> parents, IReadOnlyCollection <UserSubscription> subscriptions, int claimId) { string claimStatusChangeGroup = ""; string commentsGroup = ""; string fieldChangeGroup = ""; string moneyOperationGroup = ""; UserSubscriptionTooltip subscrTooltip = new UserSubscriptionTooltip() { HasFullParentSubscription = false, Tooltip = "", IsDirect = false, ClaimStatusChange = false, Comments = false, FieldChange = false, MoneyOperation = false, }; subscrTooltip.IsDirect = subscriptions.FirstOrDefault(s => s.ClaimId == claimId) != null; foreach (var par in parents) { foreach (var subscr in subscriptions) { if (par.CharacterGroupId == subscr.CharacterGroupId && !(subscrTooltip.ClaimStatusChange && subscrTooltip.Comments && subscrTooltip.FieldChange && subscrTooltip.MoneyOperation)) { if (subscrTooltip.ClaimStatusChange && subscrTooltip.Comments && subscrTooltip.FieldChange && subscrTooltip.MoneyOperation) { break; } if (subscr.ClaimStatusChange && !subscrTooltip.ClaimStatusChange) { subscrTooltip.ClaimStatusChange = true; claimStatusChangeGroup = par.CharacterGroupName; } if (subscr.Comments && !subscrTooltip.Comments) { subscrTooltip.Comments = true; commentsGroup = par.CharacterGroupName; } if (subscr.FieldChange && !subscrTooltip.FieldChange) { subscrTooltip.FieldChange = true; fieldChangeGroup = par.CharacterGroupName; } if (subscr.MoneyOperation && !subscrTooltip.MoneyOperation) { subscrTooltip.MoneyOperation = true; moneyOperationGroup = par.CharacterGroupName; } } } } if (subscrTooltip.ClaimStatusChange && subscrTooltip.Comments && subscrTooltip.FieldChange && subscrTooltip.MoneyOperation) { subscrTooltip.HasFullParentSubscription = true; } subscrTooltip.Tooltip = GetFullSubscriptionText(subscrTooltip, claimStatusChangeGroup, commentsGroup, fieldChangeGroup, moneyOperationGroup); return(subscrTooltip); }