Exemplo n.º 1
0
        public void ShowPromptsFor(CatalogItemInfo catalogItemInfo)
        {
            if (catalogItemInfo != CatalogItemInfo || State == ViewModelState.Error)
            {
                if (State == ViewModelState.Loading)
                {
                    _promptsViewModelService.CancelGetPromptViewModels(CatalogItemInfo.Path);
                }

                CatalogItemInfo = catalogItemInfo;
                State           = ViewModelState.Loading;

                foreach (var prompt in Prompts)
                {
                    prompt.PropertyChanged -= OnPromptPropertyChanged;
                }

                if (!ErrorMessage.Equals(string.Empty))
                {
                    ErrorMessage = string.Empty;
                }

                _promptsViewModelService.GetPromptViewModels(
                    catalogItemInfo.Path,
                    OnGetPromptCollectionCompleted,
                    OnErrorGettingPrompts);
            }
        }
Exemplo n.º 2
0
        public virtual void AddReport(CatalogItemInfo catalogItemInfo, ObservableCollection <PromptSelectionInfo> promptSelectionInfos)
        {
            var viewModel = _reportViewModelBuilder.Build(catalogItemInfo, promptSelectionInfos);

            Report = viewModel;
            RaisePropertyChanged("Report");
        }
Exemplo n.º 3
0
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #region 函数:Save(CatalogInfo param)
        /// <summary>保存记录</summary>
        /// <param name="param">实例<see cref="CatalogInfo"/>详细信息</param>
        /// <returns>实例<see cref="CatalogInfo"/>详细信息</returns>
        public CatalogInfo Save(CatalogInfo param)
        {
            if (string.IsNullOrEmpty(param.Id))
            {
                throw new ApplicationException("分组类别树的标识不能为空。");
            }

            CatalogItemInfo node = new CatalogItemInfo();

            node.Id = param.Id;

            node.Name = param.Name;

            node.ParentId = Guid.Empty.ToString();

            node.IsKey = true;

            MembershipManagement.Instance.CatalogItemService.Save(node);

            param.RootCatalogItemId = param.Id;

            provider.Save(param);

            return(param);
        }
Exemplo n.º 4
0
 public void Setup()
 {
     _promptsViewModel = new Mock <IPromptsViewModel>();
     _catalogItemInfo  = new CatalogItemInfo {
         Name = "Name", Path = "Path", Type = CatalogItemType.Report
     };
     _reportCatalogItemViewModel = new ReportCatalogItemViewModel(_catalogItemInfo, _promptsViewModel.Object);
 }
        // -------------------------------------------------------
        // 查询
        // -------------------------------------------------------

        #region 函数:FindOne(string id)
        /// <summary>查询某条记录</summary>
        /// <param name="id">标识</param>
        /// <returns>返回实例<see cref="CatalogItemInfo"/>的详细信息</returns>
        public CatalogItemInfo FindOne(string id)
        {
            Dictionary <string, object> args = new Dictionary <string, object>();

            args.Add("Id", StringHelper.ToSafeSQL(id));

            CatalogItemInfo param = this.ibatisMapper.QueryForObject <CatalogItemInfo>(StringHelper.ToProcedurePrefix(string.Format("{0}_FindOne", tableName)), args);

            return(param);
        }
Exemplo n.º 6
0
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #region 函数:Save(XmlDocument doc)
        /// <summary>保存记录</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string Save(XmlDocument doc)
        {
            CatalogItemInfo param = new CatalogItemInfo();

            param = (CatalogItemInfo)AjaxUtil.Deserialize(param, doc);

            this.service.Save(param);

            return(MessageObject.Stringify("0", I18n.Strings["msg_save_success"]));
        }
Exemplo n.º 7
0
 public void Render(
     CatalogItemInfo catalogItemInfo
     , ObservableCollection <PromptSelectionInfo> promptSelectionInfos
     , Action <string> callBack
     , Action <string> errorCallback)
 {
     _promptSelectionServiceClient.SetPromptSelectionsAsync(
         catalogItemInfo.Path,
         promptSelectionInfos,
         r => OnSetPromptSelectionsCompleted(r, callBack),
         errorCallback);
 }
Exemplo n.º 8
0
        private string BuildShopUrl(CatalogItemInfo catalogItem, bool includeCatalog, bool includeFriendlyNames)
        {
            var route = new StringBuilder("/");

            if (IncludeLanguage)
            {
                route.Append(Context.Language.Name);
                route.Append("/");
            }

            if (includeCatalog)
            {
                route.Append(EncodeUrlToken(catalogItem.CatalogName, true));
                route.Append("/");
            }

            route.Append("shop/");

            if (includeFriendlyNames)
            {
                route.Append(EncodeUrlToken(catalogItem.CategoryName, true));
                route.Append(_urlTokenDelimiter);
            }

            route.Append(EncodeUrlToken(catalogItem.CategoryId, false));
            route.Append("/");

            if (catalogItem.ItemType == CatalogItemType.Product || catalogItem.ItemType == CatalogItemType.Variant)
            {
                if (includeFriendlyNames)
                {
                    // Replace plus (+) character with dash to prevent URL "Double Escaping" errors.
                    route.Append(EncodeUrlToken(catalogItem.ProductName.Replace("+", "-"), true));
                    route.Append(_urlTokenDelimiter);
                }

                route.Append(EncodeUrlToken(catalogItem.ProductId, false));
                route.Append("/");

                if (catalogItem.ItemType == CatalogItemType.Variant)
                {
                    if (includeFriendlyNames)
                    {
                        route.Append(EncodeUrlToken(catalogItem.VariantName, true));
                        route.Append(_urlTokenDelimiter);
                    }

                    route.Append(EncodeUrlToken(catalogItem.VariantId, false));
                }
            }

            return(route.ToString());
        }
Exemplo n.º 9
0
        private ICatalogItem GetFileInfo(string fname)
        {
            CatalogItemInfo cii      = null;
            string          infoFile = Path.ChangeExtension(fname, ".info");

            if (File.Exists(infoFile))
            {
                cii = new CatalogItemInfo(infoFile);
                return(new CatalogItem(fname, cii));
            }
            return(null);
        }
Exemplo n.º 10
0
        private CatalogItemInfo ExtractCatalogItemInfo(Item item)
        {
            Assert.ArgumentNotNull(item, nameof(item));
            var info = new CatalogItemInfo {
                CatalogName = GetCatalogName(item)
            };

            Item variantItem = null;
            Item productItem = null;
            Item categoryItem;

            if (item.IsDerived(Foundation.Commerce.Templates.Commerce.ProductVariant.Id))
            {
                info.ItemType = CatalogItemType.Variant;
                variantItem   = item;
                productItem   = item.Parent;
                categoryItem  = item.Parent.Parent;
            }
            else if (item.IsDerived(Foundation.Commerce.Templates.Commerce.Product.Id))
            {
                info.ItemType = CatalogItemType.Product;
                productItem   = item;
                categoryItem  = item.Parent;
            }
            else if (item.IsDerived(Foundation.Commerce.Templates.Commerce.Category.Id))
            {
                info.ItemType = CatalogItemType.Category;
                categoryItem  = item;
            }
            else
            {
                return(null);
            }

            if (categoryItem != null)
            {
                info.CategoryId   = categoryItem.Name.ToLowerInvariant();
                info.CategoryName = categoryItem.DisplayName;
            }
            if (productItem != null)
            {
                info.ProductId   = productItem.Name.ToLowerInvariant();
                info.ProductName = productItem.DisplayName;
            }
            if (variantItem != null)
            {
                info.VariantId   = variantItem.Name.ToLowerInvariant();
                info.VariantName = variantItem.DisplayName;
            }

            return(info);
        }
        // -------------------------------------------------------
        // 添加 删除 修改
        // -------------------------------------------------------

        #region 函数:Save(CatalogItemInfo param)
        /// <summary>保存记录</summary>
        /// <param name="param">实例<see cref="CatalogItemInfo"/>详细信息</param>
        /// <returns>实例<see cref="CatalogItemInfo"/>详细信息</returns>
        public CatalogItemInfo Save(CatalogItemInfo param)
        {
            if (!IsExist(param.Id))
            {
                Insert(param);
            }
            else
            {
                Update(param);
            }

            return((CatalogItemInfo)param);
        }
Exemplo n.º 12
0
        public PromptsViewModel(IPromptsViewModelService promptsViewModelService, IReportRenderer reportRenderer)
        {
            _reportRenderer  = reportRenderer;
            _catalogItemInfo = new CatalogItemInfo {
                Name = string.Empty
            };
            _prompts = new ObservableCollection <IPrompt>();
            _promptsViewModelService = promptsViewModelService;
            _executeReport           = new RelayCommand(OnExeucteReport, ValidateAllPromptsAreReadyForReportExecution);

            MoveNext     = new RelayCommand(OnMoveNext, () => _canMoveNext);
            MovePrevious = new RelayCommand(OnMovePrevious, () => _canMovePrevious);
        }
Exemplo n.º 13
0
        private string BuildUrl(CatalogItemInfo catalogInfo, bool includeCatalog, bool includeFriendlyName)
        {
            var route = new StringBuilder("/");

            if (IncludeLanguage)
            {
                route.Append(Context.Language.Name);
                route.Append("/");
            }

            if (includeCatalog)
            {
                route.Append(EncodeUrlToken(catalogInfo.CatalogName, true));
                route.Append("/");
            }

            string itemId;
            string itemName;

            switch (catalogInfo.ItemType)
            {
            case CatalogItemType.Category:
                route.Append(RouteConfig.GetRootName(CatalogRouteRoot.Category));
                itemId   = catalogInfo.CategoryId;
                itemName = catalogInfo.CategoryName;
                break;

            case CatalogItemType.Product:
            case CatalogItemType.Variant:
                route.Append(RouteConfig.GetRootName(CatalogRouteRoot.Product));
                itemId   = catalogInfo.ProductId;
                itemName = catalogInfo.ProductName;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            route.Append("/");

            if (includeFriendlyName)
            {
                route.Append(EncodeUrlToken(itemName, true));
                route.Append(_urlTokenDelimiter);
            }

            route.Append(EncodeUrlToken(itemId, false));

            var url = route.ToString();

            return(url);
        }
Exemplo n.º 14
0
 public CatalogItemInfo GetCatalogItemInfo(string itemId, string catalogVersion, uint quantity)
 {
     for (int i = 0, len = catalogItemInfos.Length; i < len; ++i)
     {
         CatalogItemInfo catalogItemInfo = catalogItemInfos[i];
         if (catalogItemInfo.catalogVersion == catalogVersion &&
             catalogItemInfo.itemId == itemId &&
             catalogItemInfo.quantity == quantity)
         {
             return(catalogItemInfo);
         }
     }
     return(null);
 }
Exemplo n.º 15
0
        // -------------------------------------------------------
        // 查询
        // -------------------------------------------------------

        #region 函数:FindOne(XmlDocument doc)
        /// <summary>获取详细信息</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string FindOne(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            string id = XmlHelper.Fetch("id", doc);

            CatalogItemInfo param = this.service.FindOne(id);

            outString.Append("{\"data\":" + AjaxUtil.Parse <CatalogItemInfo>(param) + ",");

            outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}");

            return(outString.ToString());
        }
Exemplo n.º 16
0
        /// <summary>同步信息至 Active Directory</summary>
        /// <param name="param">分组类别信息</param>
        /// <param name="originalName">原始的名称</param>
        /// <param name="originalParentId">原始的父级标识</param>
        public int SyncToLDAP(CatalogItemInfo param, string originalName, string originalParentId)
        {
            if (LDAPConfigurationView.Instance.IntegratedMode == "ON")
            {
                if (string.IsNullOrEmpty(param.Name))
                {
                    // 角色【${Name}】名称为空,请配置相关信息。
                    return(1);
                }
                else
                {
                    string parentPath = this.GetLDAPOUPathByCatalogItemId(originalParentId);

                    // 1.原始的全局名称不为空。
                    // 2.Active Directory 上有相关对象。
                    if (!string.IsNullOrEmpty(originalName) &&
                        LDAPManagement.Instance.OrganizationUnit.IsExistName(originalName, parentPath))
                    {
                        if (param.Name != originalName)
                        {
                            // 分组类别【${Name}】的名称发生改变。
                            LDAPManagement.Instance.OrganizationUnit.Rename(
                                originalName,
                                this.GetLDAPOUPathByCatalogItemId(originalParentId),
                                param.Name);
                        }

                        if (param.ParentId != originalParentId)
                        {
                            // 分组类别【${Name}】的父级节点发生改变。
                            LDAPManagement.Instance.OrganizationUnit.MoveTo(
                                this.GetLDAPOUPathByCatalogItemId(param.Id),
                                this.GetLDAPOUPathByCatalogItemId(param.ParentId));
                        }

                        return(0);
                    }
                    else
                    {
                        LDAPManagement.Instance.OrganizationUnit.Add(param.Name, this.GetLDAPOUPathByCatalogItemId(param.ParentId));

                        // 分组类别【${Name}】创建成功。
                        return(0);
                    }
                }
            }

            return(0);
        }
Exemplo n.º 17
0
 public ReportViewModel(
     CatalogItemInfo catalogItemInfo
     , ObservableCollection <PromptSelectionInfo> selectionInfos
     , IReportExecutionService reportExecutionService
     , string serverName)
 {
     _serverName = serverName;
     _url        = string.Empty;
     reportExecutionService.Render(
         catalogItemInfo,
         selectionInfos,
         OnRender,
         OnError);
     State = ViewModelState.Loading;
 }
        private ICatalogItemViewModel CreateReportCatalogItem(CatalogItemInfo catalogItemInfo)
        {
            switch (catalogItemInfo.Type)
            {
            case CatalogItemType.Report:
                var reportViewModel = new ReportCatalogItemViewModel(catalogItemInfo, _promptsViewModel);
                return(reportViewModel);

            case CatalogItemType.Folder:
                var folderViewModel = new FolderCatalogItemViewModel(catalogItemInfo);
                return(folderViewModel);

            default:
                throw new Exception();
            }
        }
Exemplo n.º 19
0
        public static void AssertMappedCorrectlyFrom(this CatalogItemInfo source, CatalogItem catalogItem)
        {
            switch (catalogItem.Type)
            {
            case ItemTypeEnum.Report:
                Assert.AreEqual(CatalogItemType.Report, source.Type);
                break;

            case ItemTypeEnum.Folder:
                Assert.AreEqual(CatalogItemType.Folder, source.Type);
                break;

            default:
                throw new Exception();
            }

            Assert.AreEqual(catalogItem.Name, source.Name);
            Assert.AreEqual(catalogItem.Path, source.Path);
        }
Exemplo n.º 20
0
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #region 函数:Save(CatalogItemInfo param)
        /// <summary>保存记录</summary>
        /// <param name="param">实例<see cref="CatalogItemInfo"/>详细信息</param>
        /// <returns>实例<see cref="CatalogItemInfo"/>详细信息</returns>
        public CatalogItemInfo Save(CatalogItemInfo param)
        {
            if (LDAPConfigurationView.Instance.IntegratedMode == "ON")
            {
                CatalogItemInfo originalObject = FindOne(param.Id);

                if (originalObject == null)
                {
                    originalObject = param;
                }

                SyncToLDAP(param, originalObject.Name, originalObject.ParentId);
            }

            // 设置唯一识别名称
            param.DistinguishedName = this.CombineDistinguishedName(param.Name, param.ParentId);

            return(provider.Save(param));
        }
Exemplo n.º 21
0
        public static void TryOrbitToWorkspace(ISmartSession session)
        {
            IMonitoringSubProduct msp;
            IRasterDataProvider   prd;

            GetPrd(session, out msp, out prd);
            string fname = string.Empty;

            if (prd == null)
            {
                if (msp == null || msp.ArgumentProvider == null)
                {
                    return;
                }
                object obj = msp.ArgumentProvider.GetArg("CurrentRasterFile");
                if (obj == null || !string.IsNullOrEmpty(obj.ToString()))
                {
                    return;
                }
                else
                {
                    fname = obj.ToString();
                }
            }
            else
            {
                fname = prd.fileName;
            }
            if (!File.Exists(fname))
            {
                return;
            }
            CatalogItemInfo cii = new CatalogItemInfo();

            cii.Properties.Add("ProductIdentify", "ORBIT");
            cii.Properties.Add("SubProductIdentify", "OrbitFileName");
            cii.Properties.Add("OrbitDateTime", prd.DataIdentify.OrbitDateTime);
            cii.Properties.Add("CatalogItemCN", Path.GetFileName(fname));
            cii.Properties.Add("CatalogDef", "ObritData");
            //.....
            TrySaveFileToWorkspace(null, session, fname, null, cii);
        }
Exemplo n.º 22
0
        /// <summary>格式化 Active Directory 路径</summary>
        /// <param name="groupTreeNodeId"></param>
        /// <returns></returns>
        private string FormatLDAPPath(string catalogItemId)
        {
            string path = string.Empty;

            string parentId = string.Empty;

            // OU的名称
            string name = null;

            CatalogItemInfo param = FindOne(catalogItemId);

            if (param == null)
            {
                return(string.Empty);
            }
            else
            {
                name = param.Name;

                // 组织结构的根节点OU特殊处理 默认为组织结构
                //if (CatalogItemId == tree.RootTreeNodeId)
                //{
                //    name = tree.Name;
                //}

                // 1.名称不能为空 2.父级对象标识不能为空
                if (!string.IsNullOrEmpty(name) &&
                    !string.IsNullOrEmpty(param.ParentId) && param.ParentId != Guid.Empty.ToString())
                {
                    parentId = param.ParentId;

                    path = FormatLDAPPath(parentId);

                    path = string.IsNullOrEmpty(path) ? string.Format("OU={0}", name) : string.Format("OU={0}", name) + "," + path;

                    return(path);
                }

                return(string.Format("OU={0}", name));
            }
        }
        public void SetupRender(
            CatalogItemInfo catalogItemInfo,
            ObservableCollection <PromptSelectionInfo> promptSelectionInfos)
        {
            var setup = _mock.Setup(
                m => m.Render(
                    catalogItemInfo,
                    promptSelectionInfos,
                    It.IsAny <Action <string> >(),
                    It.IsAny <Action <string> >()));

            setup.Callback <
                CatalogItemInfo,
                ObservableCollection <PromptSelectionInfo>,
                Action <string>,
                Action <string> >(
                (i, s, c, ec) =>
            {
                _callback      = c;
                _errorCallback = ec;
            });
        }
Exemplo n.º 24
0
        /// <summary>格式化组织路径</summary>
        /// <param name="id"></param>
        /// <returns></returns>
        private string FormatCatalogItemPath(string id)
        {
            string path = string.Empty;

            string parentId = string.Empty;

            string name = null;

            CatalogItemInfo param = FindOne(id);

            if (param == null)
            {
                return(string.Empty);
            }
            else
            {
                if (!string.IsNullOrEmpty(param.ParentId))
                {
                    parentId = param.ParentId;
                }

                name = param.Name;

                if (!string.IsNullOrEmpty(name))
                {
                    if (!string.IsNullOrEmpty(parentId) && parentId != Guid.Empty.ToString())
                    {
                        path = FormatCatalogItemPath(parentId);
                    }

                    path = string.IsNullOrEmpty(path) ? name : string.Format(@"{0}\{1}", path, name);

                    return(path);
                }
            }

            return(string.Empty);
        }
Exemplo n.º 25
0
        /// <summary>创建新的对象</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string CreateNewObject(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            string treeViewId = XmlHelper.Fetch("treeViewId", doc);

            string parentId = XmlHelper.Fetch("parentId", doc);

            CatalogItemInfo param = new CatalogItemInfo();

            param.Id = DigitalNumberContext.Generate("Key_Guid");

            param.ParentId = string.IsNullOrEmpty(parentId) ? treeViewId : parentId;

            param.Status = 1;

            param.ModifiedDate = param.CreatedDate = DateTime.Now;

            outString.Append("{\"data\":" + AjaxUtil.Parse <CatalogItemInfo>(param) + ",");

            outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}");

            return(outString.ToString());
        }
 /// <summary>添加记录</summary>
 /// <param name="param">实例<see cref="CatalogItemInfo"/>详细信息</param>
 public void Insert(CatalogItemInfo param)
 {
     this.ibatisMapper.Insert(StringHelper.ToProcedurePrefix(string.Format("{0}_Insert", tableName)), param);
 }
Exemplo n.º 27
0
 public IReportViewModel Build(
     CatalogItemInfo catalogItemInfo,
     ObservableCollection <PromptSelectionInfo> promptSelectionInfos)
 {
     return(new ReportViewModel(catalogItemInfo, promptSelectionInfos, _reportExecutionService, _serverName));
 }
 /// <summary>修改记录</summary>
 /// <param name="param">实例<see cref="CatalogItemInfo"/>详细信息</param>
 public void Update(CatalogItemInfo param)
 {
     this.ibatisMapper.Update(StringHelper.ToProcedurePrefix(string.Format("{0}_Update", tableName)), param);
 }
Exemplo n.º 29
0
        private static void TrySaveFileToWorkspace(IMonitoringSubProduct subProduct, ISmartSession session, string fname, IExtractResult restult, CatalogItemInfo cii)
        {
            if (string.IsNullOrEmpty(fname))
            {
                return;
            }
            IMonitoringSession mession = session.MonitoringSession as IMonitoringSession;
            IWorkspace         wks     = mession.GetWorkspace();
            RasterIdentify     rst     = new RasterIdentify(fname);
            ICatalog           c       = wks.GetCatalog("CurrentExtracting");

            if (c != null)
            {
                if (cii == null)
                {
                    c.AddItem(new CatalogItem(fname, c.Definition as SubProductCatalogDef));
                }
                else
                {
                    c.AddItem(new CatalogItem(fname, cii));
                }
            }
            if (_contextEnvironment != null && subProduct != null)
            {
                rst.SubProductIdentify = subProduct.Identify;

                IExtractResultBase erb = restult as IExtractResultBase;
                if (erb != null && !string.IsNullOrEmpty(erb.OutIdentify))
                {
                    rst.SubProductIdentify = erb.OutIdentify;
                }
                GetOutFileIdentify(ref rst, subProduct);
                if (!string.IsNullOrEmpty(restult.Name) && restult.Name != rst.SubProductIdentify)
                {
                    rst.SubProductIdentify = restult.Name;
                }
                _contextEnvironment.PutContextVar(rst.SubProductIdentify, fname);
            }
        }
Exemplo n.º 30
0
 /// <summary>同步信息至 Active Directory</summary>
 /// <param name="param">角色信息</param>
 public int SyncToLDAP(CatalogItemInfo param)
 {
     return(SyncToLDAP(param, param.Name, param.ParentId));
 }