Exemplo n.º 1
0
        private DatastoreItemList GetStoreItemList(bool cacheStoreItemList = true)
        {
            try
            {
                if (m_storeItemList == null || ConnectionTime.Elapsed.Minutes > MaxConnectionMinutes)
                {
                    ConnectionTime.Reset();
                    ProductStudio.Directory psDir = new ProductStudio.Directory();
                    psDir.Connect();

                    ProductStudio.Product psProduct     = psDir.GetProductByName(StoreID.Name);
                    DatastoreItemList     storeItemList = new DatastoreItemList();
                    storeItemList.Datastore = psProduct.Connect();

                    // Simulate outdated Product Studio error
                    //if (storeItemList.Datastore == null || storeItemList.Datastore != null)
                    //{
                    //    throw new Exception("[Product Studio] 80044005. Access to this product requires updated client components.");
                    //}

                    ConnectionTime.Start();

                    FieldDefs = storeItemList.Datastore.FieldDefinitions;

                    if (cacheStoreItemList)
                    {
                        m_storeItemList = storeItemList;
                    }
                    else
                    {
                        return(storeItemList);
                    }
                }

                return(m_storeItemList);
            }

            catch (Exception exception)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("Unable to connect to " + StoreID.Name);
                sb.AppendLine();
                sb.AppendLine(exception.Message);
                sb.AppendLine();
                Planner.Instance.WriteToEventLog(sb.ToString());

                throw new Exception(sb.ToString());
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="connectDomain"></param>
 /// <param name="productName"></param>
 /// <param name="onBehalfOf"></param>
 public PSDataAccess(string connectDomain, string productName, string onBehalfOf = null)
 {
     this.connectDomain = connectDomain;
     this.productName   = productName;
     try
     {
         this.psDirectory = new ProductStudio.Directory();
         this.psDirectory.Connect(connectDomain, "", "");
         this.psProduct   = this.psDirectory.GetProductByName(productName);
         this.psDataStore = this.psProduct.Connect("", "", onBehalfOf);
     }
     catch (Exception e)
     {
         throw new Exception(String.Format("Failed to initialize Product Studio connection for domain: {0} and product: {1}",
                                           connectDomain, productName), e);
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="connectDomain"></param>
 /// <param name="productName"></param>
 /// <param name="onBehalfOf"></param>
 public PSDataAccess(string connectDomain, string productName, string onBehalfOf = null)
 {
     this.connectDomain = connectDomain;
     this.productName = productName;
     try
     {
         this.psDirectory = new ProductStudio.Directory();
         this.psDirectory.Connect(connectDomain, "", "");
         this.psProduct = this.psDirectory.GetProductByName(productName);
         this.psDataStore = this.psProduct.Connect("", "", onBehalfOf);
     }
     catch (Exception e)
     {
         throw new Exception(String.Format("Failed to initialize Product Studio connection for domain: {0} and product: {1}",
             connectDomain, productName), e);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Clone Bug
        /// </summary>
        /// <param name="bugId"></param>
        /// <param name="targetConnectDomain"></param>
        /// <param name="targetProductName"></param>
        public void CloneBug(int bugId, string targetConnectDomain, string targetProductName)
        {
            DatastoreItem psItem      = null;
            DatastoreItem psCloneItem = null;

            ProductStudio.Directory psTargetDirectory = null;
            Product   psTargetProduct   = null;
            Datastore psTargetDataStore = null;

            try
            {
                if (targetConnectDomain != null && targetProductName != null)
                {
                    psTargetDirectory = new ProductStudio.Directory();
                    psTargetDirectory.Connect(targetConnectDomain, "", "");
                    psTargetProduct   = psTargetDirectory.GetProductByName(targetProductName);
                    psTargetDataStore = psTargetProduct.Connect("", "", "");
                }
                else
                {
                    psTargetDataStore = this.psDataStore;
                }

                psItem = this.psDataStore.GetDatastoreItem(PsDatastoreItemTypeEnum.psDatastoreItemTypeBugs, bugId, null);

                psItem.Edit(PsItemEditActionEnum.psDatastoreItemEditActionReadOnly, null, PsApplyRulesMask.psApplyRulesAll);
                // Clone the item to the targetDataStore
                psCloneItem = psItem.Clone(psTargetDataStore);
                // Save the new item
                psCloneItem.Save(true);
            }
            catch (Exception e)
            {
                throw new Exception(String.Format("Failed to clone bug {0} to {1} database.",
                                                  bugId, targetProductName), e);
            }
            finally
            {
                if (psTargetDirectory != null)
                {
                    psTargetDirectory.Disconnect();
                }
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Clone Bug
        /// </summary>
        /// <param name="bugId"></param>
        /// <param name="targetConnectDomain"></param>
        /// <param name="targetProductName"></param>
        public void CloneBug(int bugId, string targetConnectDomain, string targetProductName)
        {
            DatastoreItem psItem = null;
            DatastoreItem psCloneItem = null;
            ProductStudio.Directory psTargetDirectory = null;
            Product psTargetProduct = null;
            Datastore psTargetDataStore = null;

            try
            {
                if (targetConnectDomain != null && targetProductName != null)
                {
                    psTargetDirectory = new ProductStudio.Directory();
                    psTargetDirectory.Connect(targetConnectDomain, "", "");
                    psTargetProduct = psTargetDirectory.GetProductByName(targetProductName);
                    psTargetDataStore = psTargetProduct.Connect("", "", "");
                }
                else
                {
                    psTargetDataStore = this.psDataStore;
                }

                psItem = this.psDataStore.GetDatastoreItem(PsDatastoreItemTypeEnum.psDatastoreItemTypeBugs, bugId, null);

                psItem.Edit(PsItemEditActionEnum.psDatastoreItemEditActionReadOnly, null, PsApplyRulesMask.psApplyRulesAll);
                // Clone the item to the targetDataStore
                psCloneItem = psItem.Clone(psTargetDataStore);
                // Save the new item
                psCloneItem.Save(true);
            }
            catch (Exception e)
            {
                throw new Exception(String.Format("Failed to clone bug {0} to {1} database.",
                    bugId, targetProductName), e);
            }
            finally
            {
                if (psTargetDirectory != null)
                {
                    psTargetDirectory.Disconnect();
                }
            }
        }