/// <summary> /// Creates or updates communication. /// </summary> /// <param name="communicationItem"><see cref="CommunicationItem"/> instance.</param> private void CreateOrUpdateCommunication(CommunicationItem communicationItem) { ActualizePrimaryState(communicationItem.CommunicationTypeId); Entity communicationEntity = GetCommunicationEntity(); communicationEntity.SetColumnValue(DefCommunicationTypeColumnName + "Id", communicationItem.CommunicationTypeId); communicationEntity.SetColumnValue(NumberColumnName, communicationItem.ColumnValue); communicationEntity.SetColumnValue(PrimaryColumnName, true); communicationEntity.Save(); }
/// <summary> /// Removes communication. /// </summary> /// <param name="communicationItem"><see cref="CommunicationItem"/> instance to remove.</param> /// <remarks>Actualizes primary flag column for all records of <see cref="CommunicationItem.CommunicationTypeId"/> type.</remarks> private void RemoveCommunication(CommunicationItem communicationItem) { ActualizePrimaryState(communicationItem.CommunicationTypeId); Entity communicationEntity = CheckExists(communicationItem); if (communicationEntity != null) { communicationEntity.Delete(); } }
/// <summary> /// Checks communication exists. /// If communication entity was found, returns it. /// </summary> /// <param name="communicationItem"><see cref="CommunicationItem"/> instance.</param> /// <returns>Communication entity instance.</returns> protected virtual Entity CheckExists(CommunicationItem communicationItem) { var esq = GetDefCommunicationESQ(); ApplyTypeFilter(esq, communicationItem.CommunicationTypeId); if (communicationItem.IsNew) { ApplyValueFilter(esq, communicationItem.ColumnValue); } else if (communicationItem.IsChanged || communicationItem.IsDeleted) { ApplyValueFilter(esq, communicationItem.ColumnOldValue); } var resultCollection = esq.GetEntityCollection(UserConnection); if (resultCollection.Count > 0) { return(resultCollection.First()); } return(null); }