예제 #1
0
        public async Task <IWorkList> CreateWorkListAsync([NotNull] IWorkListContext context)
        {
            Assert.ArgumentNotNull(context, nameof(context));

            Map map = MapView.Active.Map;

            if (!await TryPrepareSchemaCoreAsync())
            {
                return(await Task.FromResult(default(IWorkList)));
            }

            BasicFeatureLayer[] featureLayers = await Task.WhenAll(GetLayers(map).Select(EnsureStatusFieldCoreAsync));

            // create new name if worklist do not have one (stored in XML)
            UniqueName = GetWorklistId() ?? GetWorkListName(context);

            IRepository stateRepository = CreateStateRepositoryCore(context.GetPath(UniqueName), UniqueName);

            IWorkItemRepository repository = CreateItemRepositoryCore(featureLayers, stateRepository);

            return(CreateWorkListCore(repository, UniqueName));
        }
예제 #2
0
 protected abstract string GetWorkListName(IWorkListContext context);
 protected override string GetWorkListName(IWorkListContext context)
 {
     return(context.EnsureUniqueName(_workListName));
 }