public void SetDefaultActions() { AbortReceivedAction = (abort, asc) => { asc.Logger.Log("<-- " + abort); RaiseAbortRequestReceived(abort, asc); asc.Release(); }; AssociationRequestReceivedAction = (req, asc) => { asc.Logger.Log("<-- " + req); RaiseAssociationRequestReceived(req, asc); var ctxs = asc.GetResponseContexts(req.PresentationContexts); if (ctxs.Any()) { var accept = Accept.Generate(req, ctxs); asc.UserInfo = req.UserInfo; asc.LastActive = DateTime.Now; asc.PresentationContexts = ctxs; //Simplified agreed contexts AssociationMessenger.SendAccept(accept, asc); asc.State = NetworkState.ASSOCIATION_ESTABLISHED_WAITING_ON_DATA; } else { asc.LastActive = DateTime.Now; AssociationMessenger.SendReject(asc); asc.State = NetworkState.CLOSING_ASSOCIATION; } }; AssociationAcceptanceReceivedAction = (acc, asc) => { asc.Logger.Log("<-- " + acc); RaiseAssociationAcceptanceReceived(acc, asc); asc.SetFinalContexts(acc); if (asc.PresentationContexts.Any()) { asc.UserInfo = acc.UserInfo; asc.State = NetworkState.TRANSPORT_CONNECTION_OPEN; } else { asc.Release(); } }; AssociationRejectAction = (rej, asc) => { asc.Logger.Log("<-- " + rej); RaiseAssociationRejectionReceived(rej, asc); asc.Release(); }; ReleaseRequestReceivedAction = (rel, asc) => { asc.Logger.Log("<-- " + rel); RaiseReleaseRequestReceived(rel, asc); AssociationMessenger.SendReleaseResponse(asc); asc.Release(); }; ReleaseResponseAction = (rel, asc) => { asc.Logger.Log("<-- " + rel); RaiseReleaseResponseReceived(rel, asc); asc.Release(); }; }