protected override void Execute(NativeActivityContext context) { _context = context; ResultOutArgument.Set(context, true); var workId = WorkId.Get(_context); if (!workId.HasValue) { ShowMessage("Разработчику: В БП не указана работа"); ResultOutArgument.Set(context, false); return; } using (var mgr = IoC.Instance.Resolve <IBaseManager <Work> >()) CurrentWork = mgr.Get(workId.Value); if (CurrentWork == null) { ShowMessage("Разработчику: Не найдена работа с кодом " + workId.Value); ResultOutArgument.Set(context, false); return; } ResultOutArgument.Set(context, OpenCloseInArgumentArgument.Get(context) ? AddMe() : CloseMyWorkings()); }
private bool CheckMe(decimal?workerId) { if (!workerId.HasValue) { ShowMessage(string.Format("К пользователю '{0}' не привязан работник. Невозможно создать выполнение работы", WMSEnvironment.Instance.AuthenticatedUser.GetSignature())); return(false); } if (!OpenCloseInArgumentArgument.Get(_context)) { return(true); } var workerFilter = string.Format("{0} = {1} and {2} = {3} and {4} is null" , Working.WORKERID_RPropertyName , workerId.Value , Working.WORKID_RPropertyName , CurrentWork.GetKey() , Working.WORKINGTILLPropertyName); var warehouseCode = WarehouseCode.Get(_context); var filter = GetWorkersFilter(false); // в данном случае неважно, есть ли working filter += (!string.IsNullOrEmpty(filter) ? " and " : string.Empty) + string.Format("(workerid = {0})", workerId); Worker[] items; using (var mgr = IoC.Instance.Resolve <IBaseManager <Worker> >()) items = mgr.GetFiltered(filter, GetModeEnum.Partial).ToArray(); if (items.Length == 0) { ShowMessage( string.Format( "Сотрудник (код '{0}') не существует или не привязан к складу (код '{1}') на даты работ", workerId, warehouseCode)); return(false); } using (var mgr = IoC.Instance.Resolve <IBaseManager <Working> >()) { var workingItems = mgr.GetFiltered(workerFilter, GetModeEnum.Partial).ToArray(); if (workingItems.Length > 0) { var action = ShowMessage(string.Format("Сотрудник '{0}' уже выполняет работу (код '{1}'). Создать новую детализацию?", items.FirstOrDefault().WorkerFIO, CurrentWork.GetKey()), "Внимание!", MessageBoxButton.YesNo, MessageBoxImage.Warning); return(action == MessageBoxResult.Yes); } } return(true); }