public int SaveEntities(ContractTypes Data) { TopContractsV01Entities context = new TopContractsV01Entities(Utilities.getTestEnvName()); TopContractsEntities.ContractType efContractType = null; foreach (TopContractsDAL10.SystemTables.ContractType contractType in Data.Entries) { if (contractType.New) { efContractType = new TopContractsEntities.ContractType(); } else { efContractType = context.ContractTypes.Where(c => c.ContractTypeID == contractType.ID).SingleOrDefault(); if (contractType.Deleted == false) { SaveDefaultEntityFields(contractType.DefaultEntityFields.ToList(), contractType.ID); SaveEntityGroup(efContractType, contractType.EntryTexts, false); } } if (contractType.Deleted == false) { efContractType.InitCommonFields(efContractType, contractType, efContractType.ContractTypesLNGs, this.organizationIdentifier); // efContractType.SelectorFieldID = (contractType.SelectorField == (long)DefaultValues.SingleRecordID ? null : contractType.SelectorField); // To be used in case of entities //Boaz 26-02-2013 efContractType.SelectorFieldID = (contractType.SelectorField == (long)DefaultValues.SingleRecordID || contractType.SelectorField == 0 ? null : contractType.SelectorField); // To be used in case of entities } if (contractType.New) { context.ContractTypes.Add(efContractType); context.SaveChanges(); // Saved the new contract type so that contract type id must be created and used. SaveEntityGroup(efContractType, contractType.EntryTexts, true); // to create a new field group and to map it with current contract type. } else { if (contractType.Deleted && efContractType != null) { // Need to be discussed with Boaz, whether the catalog type fields will be removed or LinkedEntityField will be removed. foreach (TopContractsEntities.Field efFld in context.Fields.Where(fld => fld.LinkedEntityID == contractType.ID).ToList()) { efFld.DeleteLanguageEntries(efFld, context.FieldsLNGs, efFld.FieldsLNGs); context.Fields.Remove(efFld); } //Deleted entity records,entity fields,entity,FieldGroupsContractTypesMAPs,and Contract type --Added by deepak dhamija (28/02/2013) efContractType.DeleteLanguageEntries(efContractType, context.ContractTypesLNGs, efContractType.ContractTypesLNGs); FieldGroupsContractTypesMAP cTypeMap = context.FieldGroupsContractTypesMAPs.SingleOrDefault(map => map.ContractTypeID == efContractType.ContractTypeID); if (cTypeMap != null) { //******************Condition Implemented for delete entry from FieldGroupsRolesMAP by Viplav on 15-Oct-2013********// if (context.FieldGroupsRolesMAPs.Any(ent => ent.FieldGroupID == cTypeMap.FieldGroupID)) { List<FieldGroupsRolesMAP> FieldGroupsRoleMap = context.FieldGroupsRolesMAPs.Where(t => t.FieldGroupID == cTypeMap.FieldGroupID).ToList(); foreach (FieldGroupsRolesMAP item in FieldGroupsRoleMap) context.FieldGroupsRolesMAPs.Remove(item); } //******************************************************************************************************************** TopContractsEntities.FieldGroup entityGroup = context.FieldGroups.SingleOrDefault(eg => eg.FieldGroupID == cTypeMap.FieldGroupID); if (entityGroup != null) { List<TopContractsEntities.Field> entityfield = context.Fields.Where(ef => ef.FieldGroupID == cTypeMap.FieldGroupID).ToList(); if (entityfield != null) { foreach (var flds in entityfield) { flds.DeleteLanguageEntries(flds, context.FieldsLNGs, flds.FieldsLNGs); if (flds.FieldType == (byte)FieldTypes.ListSingle) { foreach (TopContractsEntities.FieldListItem fldListItem in context.FieldListItems.Where(lstItem => lstItem.FieldID == flds.FieldID)) { fldListItem.DeleteLanguageEntries(fldListItem, context.FieldListItemsLNGs, fldListItem.FieldListItemsLNGs); context.FieldListItems.Remove(fldListItem); } } foreach (TopContractsEntities.ContractField ctFld in context.ContractFields.Where(f => f.CatalogFieldID == flds.FieldID).ToList()) { context.ContractFields.Remove(ctFld); } context.Fields.Remove(flds); } } entityGroup.DeleteLanguageEntries(entityGroup, context.FieldGroupsLNGs, entityGroup.FieldGroupsLNGs); context.FieldGroups.Remove(entityGroup); } context.FieldGroupsContractTypesMAPs.Remove(cTypeMap); } context.ContractTypes.Remove(efContractType); //end code--deepak dhamija //Commented by deepak dhamija because its not deleted the entity records and its not verify the LinkedEntityID Exist or not. //efContractType.DeleteLanguageEntries(efContractType, context.ContractTypesLNGs, efContractType.ContractTypesLNGs); //FieldGroupsContractTypesMAP cTypeMap = context.FieldGroupsContractTypesMAPs.SingleOrDefault(map => map.ContractTypeID == efContractType.ContractTypeID); //if (cTypeMap != null) //{ // TopContractsEntities.FieldGroup entityGroup = context.FieldGroups.SingleOrDefault(eg => eg.FieldGroupID == cTypeMap.FieldGroupID); // if (entityGroup != null) // { // entityGroup.DeleteLanguageEntries(entityGroup, context.FieldGroupsLNGs, entityGroup.FieldGroupsLNGs); // context.FieldGroups.Remove(entityGroup); // } // context.FieldGroupsContractTypesMAPs.Remove(cTypeMap); //} //context.ContractTypes.Remove(efContractType); if (context.ContractTypesFieldsToCreateDefaults.Any(ct => ct.ContractTypeID == contractType.ID)) { foreach (TopContractsEntities.ContractTypesFieldsToCreateDefault defEntFld in context.ContractTypesFieldsToCreateDefaults.Where(ct => ct.ContractTypeID == contractType.ID).ToList()) { context.ContractTypesFieldsToCreateDefaults.Remove(defEntFld); } } } } } return context.SaveChanges(); }
public int Save(ContractTypes Data) { TopContractsV01Entities context = new TopContractsV01Entities(Utilities.getTestEnvName()); TopContractsEntities.ContractType efContractType = null; foreach (TopContractsDAL10.SystemTables.ContractType contractType in Data.Entries) { if (contractType.New) { efContractType = new TopContractsEntities.ContractType(); //efContractType.ParentContractTypeID = ConfigurationProvider.Default.ContractTypeContracts.ContractTypeContractsID; //This parent value is used to save ContractParentID in database to make every new ContractType as Contracts efContractType.ParentContractTypeID = Utilities.contractTypeContractsID; // Code implemented by Viplav on 17 june 2013 for remove webconfig concept. } else { efContractType = context.ContractTypes.Where(c => c.ContractTypeID == contractType.ID).SingleOrDefault(); } if (contractType.Deleted == false) { efContractType.InitCommonFields(efContractType, contractType, efContractType.ContractTypesLNGs, this.organizationIdentifier); //efContractType.SelectorFieldID = contractType.SelectorField; // To be used in case of entities } if (contractType.New) context.ContractTypes.Add(efContractType); else { if (contractType.Deleted && efContractType != null) { efContractType.DeleteLanguageEntries(efContractType, context.ContractTypesLNGs, efContractType.ContractTypesLNGs); context.ContractTypes.Remove(efContractType); } } } return context.SaveChanges(); }