protected Guid GetUuid(string localId, string uuidString) { if (String.IsNullOrEmpty(localId)) { return(Guid.Empty); } CorrelatedResSyncInfo[] results = _correlatedResSyncInfoStore.GetByLocalId(_resourceKindString, new string[] { localId }); if (results.Length > 0) { return(results[0].ResSyncInfo.Uuid); } Guid result; if (string.IsNullOrEmpty(uuidString)) { result = Guid.NewGuid(); } else { try { GuidConverter converter = new GuidConverter(); result = (Guid)converter.ConvertFromString(uuidString); if (Guid.Empty.Equals(result)) { result = Guid.NewGuid(); } } catch (Exception) { result = Guid.NewGuid(); } } ResSyncInfo newResSyncInfo = new ResSyncInfo(result, _originApplication, 0, string.Empty, DateTime.Now); CorrelatedResSyncInfo newCorrelation = new CorrelatedResSyncInfo(localId, newResSyncInfo); _correlatedResSyncInfoStore.Put(_resourceKindString, newCorrelation); return(result); }
private void PersistRelations(List <TransactionResult> transactions) { GuidConverter guidConverter = new GuidConverter(); foreach (TransactionResult transaction in transactions) { if (transaction.Status == TransactionStatus.Success) { SupportedResourceKinds resourceKind = GetSupportedResourceKind(transaction.EntityName); if (resourceKind == SupportedResourceKinds.None) { continue; } string uuidString = transaction.CRMID; Guid uuid = Guid.Empty; try { uuid = (Guid)guidConverter.ConvertFromString(uuidString); } catch { continue; } if (uuid == Guid.Empty) { continue; } string localId = transaction.ID; ResSyncInfo resSyncInfo = new ResSyncInfo(uuid, _context.DatasetLink + resourceKind.ToString(), -1, "", DateTime.Now); CorrelatedResSyncInfo correlatedResSyncInfo = new CorrelatedResSyncInfo(localId, resSyncInfo); // store the new correlation to the sync store _correlatedResSyncInfoStore.Put(resourceKind.ToString(), correlatedResSyncInfo); } } }