private bool IsExist <T>(OnBoardingContext onBoardingContext, string keyOne, string keyTwo, bool isCombinedKey, T data) where T : class { if (isCombinedKey) { return(onBoardingContext.Set <T>().ToList().Any(u => GetProperty(u, keyOne).GetValue(u, null).ToString() == GetPropertyValue(data, keyOne).ToString() && GetProperty(u, keyTwo).GetValue(u, null).ToString() == GetPropertyValue(data, keyTwo).ToString())); } return(onBoardingContext.Set <T>().ToList().Any(u => GetProperty(u, keyOne).GetValue(u, null).ToString() == GetPropertyValue(data, keyOne).ToString())); }
public void SaveSeed <T>(string filePath, string primaryKey, string uniqueKey, bool isCombinedKey) where T : class { var fileData = File.ReadAllText(filePath); var entityData = new JavaScriptSerializer().Deserialize <List <T> >(fileData); using (var databaseContext = new OnBoardingContext("OnBoarding")) { entityData.ForEach((json) => { object primaryKeyValue = null; if (!string.IsNullOrEmpty(primaryKey)) { primaryKeyValue = GetPropertyValue(json, primaryKey); } if (!IsExist(databaseContext, uniqueKey, primaryKey, isCombinedKey, json) || primaryKeyValue == null || string.IsNullOrEmpty(uniqueKey)) { if (!string.IsNullOrEmpty(primaryKey) && !IsInitialLoad) { SetPropertyValue(json, "Id", Guid.NewGuid()); } var data = databaseContext.Set <T>(); data.Add(json); } }); databaseContext.SaveChanges(); } }
public object GetSerializedData <T>() where T : class { var ser = new JavaScriptSerializer(); using (var databaseContext = new OnBoardingContext("OnBoarding")) { databaseContext.Configuration.LazyLoadingEnabled = false; var data = databaseContext.Set <T>().ToList(); var json = JsonConvert.SerializeObject(data, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); var info = new UTF8Encoding(true).GetBytes(json); return(info); } }