Ejemplo n.º 1
0
        public override Empty ResetManager(ResetManagerInput input)
        {
            var scheme = State.SchemeInfos[input.SchemeId];

            Assert(scheme != null, "Scheme not found.");
            if (scheme == null)
            {
                return(new Empty());                // Just to avoid IDE warning.
            }
            Assert(Context.Sender == scheme.Manager, "Only scheme manager can reset manager.");
            Assert(input.NewManager.Value.Any(), "Invalid new sponsor.");

            // Transfer managing scheme id.
            var oldManagerSchemeIds = State.ManagingSchemeIds[scheme.Manager];

            oldManagerSchemeIds.SchemeIds.Remove(input.SchemeId);
            State.ManagingSchemeIds[scheme.Manager] = oldManagerSchemeIds;
            var newManagerSchemeIds = State.ManagingSchemeIds[input.NewManager] ?? new CreatedSchemeIds();

            newManagerSchemeIds.SchemeIds.Add(input.SchemeId);
            State.ManagingSchemeIds[input.NewManager] = newManagerSchemeIds;

            scheme.Manager = input.NewManager;
            State.SchemeInfos[input.SchemeId] = scheme;
            return(new Empty());
        }
Ejemplo n.º 2
0
        public override Empty ResetManager(ResetManagerInput input)
        {
            var scheme = State.SchemeInfos[input.SchemeId];

            Assert(scheme != null, "Scheme not found.");

            // ReSharper disable once PossibleNullReferenceException
            Assert(Context.Sender == scheme.Manager, "Only scheme manager can reset manager.");
            Assert(input.NewManager.Value.Any(), "Invalid new sponsor.");

            // Transfer managing scheme id.
            var oldManagerSchemeIds = State.ManagingSchemeIds[scheme.Manager];

            oldManagerSchemeIds.SchemeIds.Remove(input.SchemeId);
            State.ManagingSchemeIds[scheme.Manager] = oldManagerSchemeIds;
            var newManagerSchemeIds = State.ManagingSchemeIds[input.NewManager] ?? new CreatedSchemeIds();

            newManagerSchemeIds.SchemeIds.Add(input.SchemeId);
            State.ManagingSchemeIds[input.NewManager] = newManagerSchemeIds;

            scheme.Manager = input.NewManager;
            State.SchemeInfos[input.SchemeId] = scheme;
            return(new Empty());
        }