public override Dictionary <string, object> ToUpdate(IMemoryCache memoryCache, out BaseModel updatedElement) { Dictionary <string, object> changes = new Dictionary <string, object>(); BlobContent refInCache = null; if (Id != Guid.Empty) { refInCache = CacheHelper.GetBlobContentFromCache(memoryCache, Id); if (refInCache != null) { if (Name != null && !Name.Equals(refInCache.Name)) { changes.Add("Name", Name); } if (Description != null && !Description.Equals(refInCache.Description)) { changes.Add("Description", Description); } if (!Sharing.Equals(refInCache.Sharing)) { changes.Add("Sharing", Sharing); } if (!Type.Equals(refInCache.Type)) { changes.Add("Type", Type); } if (!Subtype.Equals(refInCache.Subtype)) { changes.Add("Subtype", Subtype); } } else { refInCache = this; if (Name != null) { changes.Add("Name", Name); } if (Description != null) { changes.Add("Description", Description); } if (Sharing != null) { changes.Add("Sharing", Sharing); } if (Type != null) { changes.Add("Type", Type); } if (Subtype != null) { changes.Add("Subtype", Subtype); } } } updatedElement = refInCache; return(changes); }