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()); }
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()); }