public IRemoteEntity ConvertToRemoteEntity(ISynchronizedEntity baseEntity, ODBase bpm = null) { var remoteEntityNameAttribute = baseEntity.GetType().GetTypeInfo().GetCustomAttribute <RemoteEntityName>(); if (remoteEntityNameAttribute == null) { throw new Exception("Attribute [RemoteEntityName] not found in class <" + baseEntity.GetType().Name + ">."); } return(ConvertToRemoteEntity(baseEntity, remoteEntityNameAttribute.Name, bpm)); }
public void Add_Get_Activity() { string url = "http://m-karasha/Bandle_7120_Demo_D"; string login = "******"; string password = "******"; var bpm = new ODBase(url, login, password); var baseBpmOdataRepository = new BaseBpmOdataRepository <Activity>(bpm, new BpmOdataConverter()); Assert.IsTrue(true); }
public BaseBpmOdataRepository(ODBase context, BpmOdataConverter bpmOdataConverter) { var remoteEntityNameAttribute = typeof(T).GetTypeInfo().GetCustomAttribute <RemoteEntityName>(); if (remoteEntityNameAttribute == null) { throw new Exception("Attribute [RemoteEntityName] not found in class <" + typeof(T).Name + ">."); } _collectionName = remoteEntityNameAttribute.Name; _context = context; _bpmOdataConverter = bpmOdataConverter; }
public void Sync_Add_Edit_Activity_To_Bpm() { string url = "http://m-karasha/Bandle_7120_Demo_D"; string login = "******"; string password = "******"; var bpm = new ODBase(url, login, password); var count = bpm.GetCollectionSize("Activity"); //var a = bpm.GetPage(bpm.GetCollectionPageUrl("Activity") + "Collection(guid'9cfb2535-19bf-4e63-b2dd-1ba78decc558')"); Guid activityId = Guid.NewGuid(); ODObject record = ODObject.NewObject("Activity"); //try { // record = new ODObject(bpm, "Activity", activityId.ToString()); //} catch (Exception e) { // record = ODObject.NewObject("Activity"); //} record["Title"] = "Test MK 231"; record["OwnerId"] = "410006e1-ca4e-4502-a9ec-e54d922d2c00"; record["StatusId"] = "384d4b84-58e6-df11-971b-001d60e938c6"; record["StartDate"] = "2015-12-15T16:57:12.3599795Z"; record["DueDate"] = "2015-12-15T18:57:12.3599795Z"; var result = record.Update(bpm); Guid id = ODObject.GetGuidFromEntityUrl(result, "Activity"); //ODObject record2 = new ODObject(bpm, "Activity", id.ToString()); ODObject record2 = ODObject.NewObject("Activity"); record2.Guid = id.ToString(); record2["Title"] = "Test MK 231 - NEW"; record2.Update(bpm); var newCount = bpm.GetCollectionSize("Activity"); Assert.IsTrue(newCount > count); }
public ICollection <T> GetAllChangedBetweenDatesForUser(DateTime startDate, DateTime endDate, User user) { //$select = Id, var resultCollection = new Collection <T>(); var remoteColumns = _bpmOdataConverter.GetSyncedRemoteColumns(typeof(T)); if (!remoteColumns.Contains("Id")) { remoteColumns.Add("Id"); } string selectColumns = "$select=" + string.Join(",", remoteColumns); string filter = "$filter=Owner/Id eq guid'" + user.EndSystemRecordId.ToString() + "' " + "and ModifiedOn ge datetime'" + ODBase.DateTimeToOdataString(startDate) + "' " + "and ModifiedOn lt datetime'" + ODBase.DateTimeToOdataString(endDate) + "'"; var result = _context.GetAllPages(_collectionName, selectColumns + "&" + filter); foreach (var entry in result) { ODObject item = ODBase.getObjectFromEntry(_collectionName, entry); resultCollection.Add(_bpmOdataConverter.ConvertToAcmanEntity(item, typeof(T)) as T); } return(resultCollection); }
public ActivityBpmOdataRepository(ODBase context, BpmOdataConverter bpmOdataConverter) : base(context, bpmOdataConverter) { }
public IRemoteEntity ConvertToRemoteEntity(ISynchronizedEntity baseEntity, string remoteEntityName, ODBase bpm = null) { ODObject record = ODObject.NewObject(remoteEntityName); if (baseEntity.EndSystemRecordId != null) { record.Guid = baseEntity.EndSystemRecordId.ToString(); } else { var defaultMap = GetDefaultEntityValues(remoteEntityName); if (defaultMap != null) { foreach (var map in defaultMap) { record[map.Key] = map.Value; } } } var properties = GetSyncedProperties(baseEntity); foreach (var prop in properties) { var remoteEntityColumnNameAttr = prop.GetCustomAttribute <RemoteEntityColumnName>(); var remoteEntityColumnName = remoteEntityColumnNameAttr.Name; var columnValue = prop.GetValue(baseEntity); if (!string.IsNullOrEmpty(remoteEntityColumnNameAttr.MapKey)) { var remoteColumnValue = GetMappedRemoteColumnValue(remoteEntityColumnNameAttr.MapKey, columnValue); if (remoteColumnValue != null) { record[remoteEntityColumnName] = remoteColumnValue; } } else { object result = prop.PropertyType.GetInterface("ISynchronizedEntity") == null ? columnValue : (columnValue as ISynchronizedEntity)?.EndSystemRecordId; if (result != null) { record[remoteEntityColumnName] = result; } } } return(record); }