public CustomFieldsClient CreateCustomFieldsClient() { _customFieldsClient = new CustomFieldsClient(_binding, _endpointAddress); SetCredenticalProperties <CustomFieldsClient, CustomFields>(_customFieldsClient); return(_customFieldsClient); }
public void DeleteCustomField(string target, string field) { CustomFieldDataSet cfDS = new CustomFieldDataSet(); var RowField = this.dsGenerico.Tables[0].Select("MD_PROP_NAME ='" + field + "'").CopyToDataTable(); SvcCustomFields.CustomFieldsClient fieldTarget = new CustomFieldsClient(Binding, endPointAdress(target, "/_vti_bin/psi/CustomFields.asmx")); fieldTarget.ClientCredentials.Windows.ClientCredential = new NetworkCredential(this.User, this.PassWord, this.Domain); Guid[] fieldsArray = new Guid[1]; //fieldsArray[0] = fieldTarget.DeleteCustomFields(fieldsArray); }
/// <summary> /// Metodo para Buscar os CustomFields e LookupTable pelo metodo internal (GetLookupTable) /// </summary> /// <param name="pwaUrl"></param> /// <returns></returns> public DataSet GetCustomfields(string pwaUrl, bool getLookupTable) { //CustomFieldDataSet cfDS = new CustomFieldDataSet(); //PSLibrary.Filter cfFilter = new Microsoft.Office.Project.Server.Library.Filter(); //cfFilter.FilterTableName = cfDS.CustomFields.TableName; //foreach (var item in cfDS.CustomFields.Columns) //{ // cfFilter.Fields.Add(new PSLibrary.Filter.Field(cfDS.CustomFields.TableName, item.ToString())); //} //cfFilter.Fields.Add(new PSLibrary.Filter.Field(cfDS.CustomFields.TableName, cfDS.CustomFields.MD_PROP_IS_REQUIREDColumn.ColumnName)); //cfFilter.Fields.Add(new PSLibrary.Filter.Field(cfDS.CustomFields.TableName, cfDS.CustomFields.MD_PROP_IS_REQUIREDColumn.ColumnName)); //var fields = cfFilter.GetXml(); try { SvcCustomFields.CustomFieldsClient customFieldClient = new CustomFieldsClient(Binding, endPointAdress(pwaUrl, "/_vti_bin/psi/CustomFields.asmx")); customFieldClient.ClientCredentials.Windows.ClientCredential = new NetworkCredential(this.User, this.PassWord, this.Domain); dsGenerico = new DataSet(); dsGenerico.Tables.Add(customFieldClient.ReadCustomFields(null, false).Tables[0].Copy()); if (getLookupTable) { DataSet dsLookupTableOrigem = this.GetLookupTable(pwaUrl); if (dsLookupTableOrigem != null) { var table = dsLookupTableOrigem.Tables[0].Copy(); dsGenerico.Tables.Add(table); } } } catch (Exception ex) { throw ex; } return(dsGenerico); }
/// <summary> /// Metodo para criar o Custom Field no Detino /// </summary> /// <param name="source">Origem</param> /// <param name="target">Destino</param> /// <param name="field">Nome CustomField</param> public void CreateCustomField(string source, string target, string field, string lookupTable) { CustomFieldDataSet cfDS = new CustomFieldDataSet(); var RowField = this.dsGenerico.Tables[0].Select("MD_PROP_NAME ='" + field + "'").CopyToDataTable(); SvcCustomFields.CustomFieldsClient fieldTarget = new CustomFieldsClient(Binding, endPointAdress(target, "/_vti_bin/psi/CustomFields.asmx")); fieldTarget.ClientCredentials.Windows.ClientCredential = new NetworkCredential(this.User, this.PassWord, this.Domain); Guid cfUid = Guid.NewGuid(); foreach (DataRow item in RowField.Rows) { SvcCustomFields.CustomFieldDataSet.CustomFieldsRow cfRow = cfDS.CustomFields.NewCustomFieldsRow(); foreach (DataColumn itemColumn in RowField.Columns) { if (!cfDS.CustomFields.Columns.Contains(itemColumn.ToString())) { continue; } if (itemColumn.ToString() == "MD_LOOKUP_TABLE_UID" && lookupTable != string.Empty) { var lt = GetLookupTable(target).Tables[0].Select("LT_NAME ='" + lookupTable + "'").CopyToDataTable(); Guid lt_Uid = Guid.Parse(lt.Rows[0]["LT_UID"].ToString()); cfRow[itemColumn.ToString()] = lt_Uid; continue; } if (itemColumn.ToString().Equals("MD_PROP_UID")) { cfRow[itemColumn.ToString()] = cfUid; continue; } if (itemColumn.ToString().Equals("MD_PROP_DEFAULT_VALUE")) { continue; } if (item[itemColumn.ToString()] != null && !itemColumn.ReadOnly) { cfRow[itemColumn.ToString()] = item[itemColumn.ToString()]; } } cfDS.CustomFields.Rows.Add(cfRow); } try { bool validateOnly = false; bool autoCheckIn = true; fieldTarget.CreateCustomFields(cfDS, validateOnly, autoCheckIn); } catch (SoapException ex) { string errMess = ""; PSLibrary.PSClientError psiError = new PSLibrary.PSClientError(ex); PSLibrary.PSErrorInfo[] psiErrors = psiError.GetAllErrors(); for (int j = 0; j < psiErrors.Length; j++) { errMess += psiErrors[j].ErrId.ToString() + "\n"; } errMess += "\n" + ex.Message.ToString(); throw ex; } }
public void ClientSide() { int keyId = -1; CustomFieldsClientCollection coll = new CustomFieldsClientCollection(); switch (coll.es.Connection.ProviderSignature.DataProviderName) { case "EntitySpaces.EffiProzProvider": Assert.Ignore("Not implemented"); break; default: using (esTransactionScope scope = new esTransactionScope()) { // Setup CustomFieldsClient entity = new CustomFieldsClient(); entity = new CustomFieldsClient(); entity.FirstName = "Test"; entity.LastName = "One"; // Insert entity.Save(); keyId = entity.AutoKey.Value; Assert.AreEqual(entity.FirstName, "Test"); Assert.AreEqual(entity.LastName, "One"); Assert.AreEqual(entity.Age.Value, 20); Assert.AreEqual(entity.DateAdded.Value.Day, DateTime.UtcNow.Day); Assert.AreEqual(entity.DateModified.Value.Day, DateTime.UtcNow.Day); Assert.AreEqual(entity.AddedBy, "AddedBy Client User"); Assert.AreEqual(entity.ModifiedBy, "ModifiedBy Client User"); Assert.AreEqual(entity.EsVersion.Value, 1); // Update entity = new CustomFieldsClient(); entity.LoadByPrimaryKey(keyId); Assert.AreEqual(entity.FirstName, "Test"); Assert.AreEqual(entity.LastName, "One"); Assert.AreEqual(entity.Age.Value, 20); Assert.AreEqual(entity.DateAdded.Value.Day, DateTime.UtcNow.Day); Assert.AreEqual(entity.DateModified.Value.Day, DateTime.UtcNow.Day); Assert.AreEqual(entity.AddedBy, "AddedBy Client User"); Assert.AreEqual(entity.ModifiedBy, "ModifiedBy Client User"); Assert.AreEqual(entity.EsVersion.Value, 1); DateTime modified = entity.DateModified.Value; entity.LastName = "Two"; System.Threading.Thread.Sleep(4); entity.Save(); Assert.AreEqual(entity.FirstName, "Test"); Assert.AreEqual(entity.LastName, "Two"); Assert.AreEqual(entity.Age.Value, 20); Assert.AreEqual(entity.DateAdded.Value.Day, DateTime.UtcNow.Day); Assert.AreEqual(entity.DateModified.Value.Day, DateTime.UtcNow.Day); Assert.Greater(entity.DateModified.Value, modified); Assert.AreEqual(entity.AddedBy, "AddedBy Client User"); Assert.AreEqual(entity.ModifiedBy, "ModifiedBy Client User"); Assert.AreEqual(entity.EsVersion.Value, 2); // No Update entity = new CustomFieldsClient(); entity.LoadByPrimaryKey(keyId); DateTime added = entity.DateAdded.Value; modified = entity.DateModified.Value; entity.Save(); Assert.AreEqual(entity.FirstName, "Test"); Assert.AreEqual(entity.LastName, "Two"); Assert.AreEqual(entity.Age.Value, 20); Assert.AreEqual(entity.DateAdded.Value, added); Assert.AreEqual(entity.DateModified.Value, modified); Assert.AreEqual(entity.AddedBy, "AddedBy Client User"); Assert.AreEqual(entity.ModifiedBy, "ModifiedBy Client User"); Assert.AreEqual(entity.EsVersion.Value, 2); // Clean up entity = new CustomFieldsClient(); entity.LoadByPrimaryKey(keyId); Assert.AreEqual(entity.FirstName, "Test"); Assert.AreEqual(entity.LastName, "Two"); Assert.AreEqual(entity.Age.Value, 20); Assert.AreEqual(entity.DateAdded.Value, added); Assert.AreEqual(entity.DateModified.Value, modified); Assert.AreEqual(entity.AddedBy, "AddedBy Client User"); Assert.AreEqual(entity.ModifiedBy, "ModifiedBy Client User"); Assert.AreEqual(entity.EsVersion.Value, 2); entity.MarkAsDeleted(); entity.Save(); entity = new CustomFieldsClient(); if (entity.LoadByPrimaryKey(keyId)) { Assert.Fail("Not deleted"); } } break; } }