private static bool ArePartyIdsEqual(
            Model.PMode.Party pmodeParty,
            Model.Core.Party messageParty)
        {
            if (pmodeParty == null)
            {
                return(false);
            }

            return(messageParty.PartyIds.All(userPartyId => pmodeParty.PartyIds.Any(pmodePartyId =>
            {
                bool noType =
                    userPartyId.Type == Maybe <string> .Nothing &&
                    pmodePartyId?.Type == null;

                bool equalType =
                    userPartyId
                    .Type
                    .Select(t => StringComparer.OrdinalIgnoreCase.Equals(t, pmodePartyId?.Type))
                    .GetOrElse(false);

                bool equalId =
                    StringComparer
                    .OrdinalIgnoreCase
                    .Equals(userPartyId.Id, pmodePartyId?.Id);

                return equalId && (equalType || noType);
            })));
        }
示例#2
0
        private static Party CreatePartyModel(Model.PMode.Party p)
        {
            var ids =
                p.PartyIds == null
                    ? Enumerable.Empty <PartyId>()
                    : p.PartyIds
                ?.Select(id => String.IsNullOrEmpty(id.Type)
                            ? new PartyId(id.Id)
                            : new PartyId(id.Id, id.Type))
                .ToArray();

            return(new Party(p.Role, ids));
        }
示例#3
0
 /// <summary>
 /// Resolves the receiver party or ToParty from the <see cref="Model.PMode.Party"/> element.
 /// </summary>
 /// <param name="party">The party of the pmode to map to an ebMS party.</param>
 internal static Party ResolveReceiver(Model.PMode.Party party)
 {
     return(party != null?CreatePartyModel(party) : Party.DefaultTo);
 }
示例#4
0
 /// <summary>
 /// Resolves the sender party or FromParty from the <see cref="Model.PMode.Party"/> element.
 /// </summary>
 /// <param name="party">The party of the pmode to map to an ebMS party.</param>
 internal static Party ResolveSender(Model.PMode.Party party)
 {
     return(party != null?CreatePartyModel(party) : Party.DefaultFrom);
 }