//private void RemoveLogicPhrase(MyProjectEntities projectContext, DataAccess.LogicPhrase logicPhrase) //{ // while (logicPhrase.Phrase1.Any()) // { // foreach (var item in logicPhrase.Phrase1.ToList()) // { // RemovePhrase(projectContext, item); // } // } // projectContext.LogicPhrase.Remove(logicPhrase); //} private void RemovePhrase(MyProjectEntities projectContext, DataAccess.Phrase item, bool removeSearchRepository) { if (item.ColumnPhraseID != null) { projectContext.ColumnPhrase.Remove(item.ColumnPhrase); // item.ColumnPhrase = null; } //else if (item.SearchRepositoryID != null) //{ // RemovePhrase(projectContext, item.SearchRepository.LogicPhrase.Phrase.First()); // // projectContext.LogicPhrase.Remove(item.SearchRepository.LogicPhrase); // //projectContext.SearchRepository.Remove(item.SearchRepository); // // item.SearchRepository = null; //} else if (item.LogicPhraseID != null) { //Phrase1 به ParentLogicPhraseID ربط دارد foreach (var litem in item.LogicPhrase.Phrase1.ToList()) { RemovePhrase(projectContext, litem, true); } if (item.LogicPhrase.SearchRepository != null) { if (removeSearchRepository) { RemoveSearchRepository(projectContext, item.LogicPhrase.SearchRepository, false); } } projectContext.LogicPhrase.Remove(item.LogicPhrase); // item.LogicPhrase = null; } projectContext.Phrase.Remove(item); }
//private DataAccess.Phrase ToLogicPhraseAsPhrase(ProxyLibrary.LogicPhrase logicPhrase) //{ // DataAccess.Phrase dbphrase = new DataAccess.Phrase(); // dbphrase.LogicPhrase = ToLogicPhrase(logicPhrase); // return dbphrase; //} private Tuple <DataAccess.ColumnPhrase, DataAccess.Phrase> ToColumnPhrase(MyProjectEntities projectContext, SearchProperty searchProperty) { DataAccess.Phrase phrase = new DataAccess.Phrase(); phrase.Type = 3; projectContext.Phrase.Add(phrase); phrase.ColumnPhrase = new ColumnPhrase(); var dbColumnPhrase = phrase.ColumnPhrase; dbColumnPhrase.ColumnID = searchProperty.ColumnID; dbColumnPhrase.EntitySearchColumnsID = searchProperty.SearchColumnID == 0 ? (int?)null : searchProperty.SearchColumnID; dbColumnPhrase.Operator = searchProperty.Operator.ToString(); dbColumnPhrase.Value = searchProperty.Value == null ? null : searchProperty.Value.ToString(); return(new Tuple <ColumnPhrase, DataAccess.Phrase>(dbColumnPhrase, phrase)); }
//private DataAccess.Phrase ToSearchRepositoryAsPhrase(DP_SearchRepository dP_SearchRepository) //{ // DataAccess.Phrase dbphrase = new DataAccess.Phrase(); // dbphrase.SearchRepository = ToSearchRepository(dP_SearchRepository); // return dbphrase; //} //private DataAccess.LogicPhrase ToLogicPhrase(ProxyLibrary.LogicPhrase logicPhrase) //{ // DataAccess.LogicPhrase dbphrase = new DataAccess.LogicPhrase(); // dbphrase.Phrase.Add(new DataAccess.Phrase()); // dbphrase.LogicPhrase = ToLogicPhrase(logicPhrase); // return dbphrase; //} private Tuple <DataAccess.LogicPhrase, DataAccess.Phrase> ToLogicPhrase(MyProjectEntities projectContext, ProxyLibrary.LogicPhraseDTO logicPhrase) { //if (logicPhrase.Phrases.Any()) //{ DataAccess.Phrase phrase = new DataAccess.Phrase(); phrase.Type = 2; projectContext.Phrase.Add(phrase); phrase.LogicPhrase = new DataAccess.LogicPhrase(); var dbLogicPhrase = phrase.LogicPhrase; SetLogicPhrase(projectContext, dbLogicPhrase, logicPhrase); return(new Tuple <DataAccess.LogicPhrase, DataAccess.Phrase>(dbLogicPhrase, phrase)); //} //else // return null; }
private void SetLogicPhrase(MyProjectEntities projectContext, DataAccess.LogicPhrase dbLogicPhrase, ProxyLibrary.LogicPhraseDTO logicPhrase) { dbLogicPhrase.AndOrType = (short)logicPhrase.AndOrType; foreach (var phrase in logicPhrase.Phrases) { DataAccess.Phrase dbPhrase = null; if (phrase is SearchProperty) { dbPhrase = ToColumnPhrase(projectContext, phrase as SearchProperty).Item2; } else if (phrase is DP_SearchRepository) { dbPhrase = CreateSearchRepository(projectContext, phrase as DP_SearchRepository); } else if (phrase is ProxyLibrary.LogicPhraseDTO) { dbPhrase = ToLogicPhrase(projectContext, phrase as ProxyLibrary.LogicPhraseDTO).Item2; } dbPhrase.LogicPhrase1 = dbLogicPhrase; } }