public static UiView Create(IUiViewCreateIo input) { Debug.Assert(input.Id != null, "input.Id != null"); return(new UiView(input.Id.Value) { Icon = input.Icon, Tooltip = input.Tooltip }); }
public static UiView Create(IUiViewCreateIo input) { Debug.Assert(input.Id != null, "input.Id != null"); return new UiView { Id = input.Id.Value, Icon = input.Icon, Tooltip = input.Tooltip }; }
private void Handle(IAcSession acSession, IUiViewCreateIo input, bool isCommand) { var acDomain = _set._acDomain; var viewDicByFunction = _set._viewDicByFunction; var viewDicById = _set._viewDicById; var viewRepository = acDomain.RetrieveRequiredService <IRepository <UiView> >(); if (!input.Id.HasValue) { throw new ValidationException("标识是必须的"); } UiView entity; lock (Locker) { FunctionState function; if (!acDomain.FunctionSet.TryGetFunction(input.Id.Value, out function)) { throw new ValidationException("意外的功能标识,界面视图首先是个功能。请先添加界面视图对应的功能记录。"); } UiViewState view; if (acDomain.UiViewSet.TryGetUiView(input.Id.Value, out view)) { throw new ValidationException("给定标识的界面视图已经存在"); } entity = UiView.Create(input); var state = UiViewState.Create(acDomain, entity); if (!viewDicById.ContainsKey(state.Id)) { viewDicById.Add(state.Id, state); } if (!viewDicByFunction.ContainsKey(function)) { viewDicByFunction.Add(function, state); } if (isCommand) { try { viewRepository.Add(entity); viewRepository.Context.Commit(); } catch { if (viewDicById.ContainsKey(entity.Id)) { viewDicById.Remove(entity.Id); } if (viewDicByFunction.ContainsKey(function)) { viewDicByFunction.Remove(function); } viewRepository.Context.Rollback(); throw; } } } if (isCommand) { acDomain.MessageDispatcher.DispatchMessage(new UiViewAddedEvent(acSession, entity, input, isPrivate: true)); } }