public Task AddNewSupplierAdditionEvent(int accommodationId, AccommodationChangeEventSources source,
                                                Dictionary <string, string> existingAccommodationSupplierCodes, string supplier, string supplierAccommodationCode)
        {
            var newSupplierAdditionLog = AccommodationChangeLogConverter.GetNewSupplierAdditionLog(accommodationId, source, existingAccommodationSupplierCodes, supplier, supplierAccommodationCode);

            return(AddAccommodationChangeLog(newSupplierAdditionLog));
        }
        public Task AddCreationEvent(int accommodationId, AccommodationChangeEventSources source, Dictionary <string, string> supplierAccommodationCodes,
                                     MultilingualAccommodation accommodation, bool isActive, DeactivationReasons deactivationReason = default)
        {
            var creationLog = AccommodationChangeLogConverter.GetCreationChangeLog(accommodationId, source, supplierAccommodationCodes, accommodation, isActive, deactivationReason);

            return(AddAccommodationChangeLog(creationLog));
        }
        public Task AddMergeEvent(int accommodationId, AccommodationChangeEventSources source, int mergedAccommodationId,
                                  Dictionary <string, string> sourceAccommodationSupplierCodes, Dictionary <string, string> mergedAccommodationSupplierCodes)
        {
            var mergeLog = AccommodationChangeLogConverter.GetMergeChangeLog(accommodationId, source, mergedAccommodationId, sourceAccommodationSupplierCodes, mergedAccommodationSupplierCodes);

            return(AddAccommodationChangeLog(mergeLog));
        }
        public Task AddActivationEvent(int accommodationId, AccommodationChangeEventSources source, DeactivationReasons deactivationReason,
                                       AccommodationKeyData?previousKeyData, AccommodationKeyData?currentKeyData)
        {
            var activationLog = AccommodationChangeLogConverter.GetActivationChangeLog(accommodationId, source, deactivationReason, previousKeyData, currentKeyData);

            return(AddAccommodationChangeLog(activationLog));
        }
        public Task AddDeactivationEvent(int accommodationId, AccommodationChangeEventSources source, DeactivationReasons deactivationReason,
                                         string?deactivationReasonDescription)
        {
            var deactivationLog = AccommodationChangeLogConverter.GetDeactivationChangeLog(accommodationId, source, deactivationReason, deactivationReasonDescription);

            return(AddAccommodationChangeLog(deactivationLog));
        }
        public void CollectNewSupplierAdditionEvent(int accommodationId, AccommodationChangeEventSources source,
                                                    Dictionary <string, string> existingAccommodationSupplierCodes, string supplier, string supplierAccommodationCode)
        {
            var newSupplierAdditionLog = AccommodationChangeLogConverter.GetNewSupplierAdditionLog(accommodationId, source, existingAccommodationSupplierCodes,
                                                                                                   supplier, supplierAccommodationCode);

            AccommodationsChangeLogs.Add(newSupplierAdditionLog);
        }
        public void CollectDeactivationEvent(int accommodationId, AccommodationChangeEventSources source, DeactivationReasons deactivationReason,
                                             string deactivationReasonService)
        {
            var deactivationLog =
                AccommodationChangeLogConverter.GetDeactivationChangeLog(accommodationId, source, deactivationReason, deactivationReasonService);

            AccommodationsChangeLogs.Add(deactivationLog);
        }
        public void CollectMergeEvent(int accommodationId, AccommodationChangeEventSources source, int mergedAccommodationId,
                                      Dictionary <string, string> sourceAccommodationSupplierCodes, Dictionary <string, string> mergedAccommodationSupplierCodes)
        {
            var mergeLog = AccommodationChangeLogConverter.GetMergeChangeLog(accommodationId, source, mergedAccommodationId, sourceAccommodationSupplierCodes,
                                                                             mergedAccommodationSupplierCodes);

            AccommodationsChangeLogs.Add(mergeLog);
        }
        public Task AddSupplierCodeRemoveEvent(int accommodationId, AccommodationChangeEventSources source, string supplier, string supplierCode,
                                               Dictionary <string, string> accommodationSupplierCodes, SupplierCodeRemoveReasons reason)
        {
            var supplierCodeRemoveLog =
                AccommodationChangeLogConverter.GetSupplierCodeRemoveChangeLog(accommodationId, source, supplier, supplierCode, accommodationSupplierCodes, reason);

            return(AddAccommodationChangeLog(supplierCodeRemoveLog));
        }
        public Task AddDuplicateAccommodationCommonSuppliersCodesRemoveEvent(int accommodationId, AccommodationChangeEventSources source,
                                                                             int sourceAccommodationId, Dictionary <string, string> duplicateAccommodationSupplierCodes, Dictionary <string, string> sourceAccommodationSupplierCodes)
        {
            var duplicateAccommodationCommonSuppliersCodesRemoveLog = AccommodationChangeLogConverter.GetDuplicateAccommodationCommonSuppliersCodesRemoveLog(
                accommodationId, source, sourceAccommodationId, duplicateAccommodationSupplierCodes, sourceAccommodationSupplierCodes);

            return(AddAccommodationChangeLog(duplicateAccommodationCommonSuppliersCodesRemoveLog));
        }
        public void CollectCreationEvent(int accommodationId, AccommodationChangeEventSources source, Dictionary <string, string> supplierAccommodationCodes,
                                         MultilingualAccommodation accommodation, bool isActive, DeactivationReasons deactivationReasons = default)
        {
            var creationLog = AccommodationChangeLogConverter.GetCreationChangeLog(accommodationId, source, supplierAccommodationCodes,
                                                                                   accommodation, isActive, deactivationReasons);

            AccommodationsChangeLogs.Add(creationLog);
        }
        public void CollectActivationEvent(int accommodationId, AccommodationChangeEventSources source, DeactivationReasons deactivationReason,
                                           AccommodationKeyData?previousKeyData = default, AccommodationKeyData?currentKeyData = default)
        {
            var activationLog =
                AccommodationChangeLogConverter.GetActivationChangeLog(accommodationId, source, deactivationReason, previousKeyData, currentKeyData);

            AccommodationsChangeLogs.Add(activationLog);
        }
        public void CollectDeactivationReasonChangeEvent(int accommodationId, AccommodationChangeEventSources source, DeactivationReasons oldDeactivationReason,
                                                         DeactivationReasons newDeactivationReason)

        {
            var changeLog = AccommodationChangeLogConverter.GetDeactivationReasonChangeLog(accommodationId, source, oldDeactivationReason,
                                                                                           newDeactivationReason);

            AccommodationsChangeLogs.Add(changeLog);
        }
        public void CollectDuplicateAccommodationCommonSuppliersCodesRemoveEvent(int accommodationId, AccommodationChangeEventSources source,
                                                                                 int sourceAccommodationId, Dictionary <string, string> duplicateAccommodationSupplierCodes,
                                                                                 Dictionary <string, string> sourceAccommodationSupplierCodes)
        {
            var duplicateAccommodationCommonSuppliersCodesRemoveLog = AccommodationChangeLogConverter.GetDuplicateAccommodationCommonSuppliersCodesRemoveLog(
                accommodationId, source, sourceAccommodationId, duplicateAccommodationSupplierCodes, sourceAccommodationSupplierCodes);

            AccommodationsChangeLogs.Add(duplicateAccommodationCommonSuppliersCodesRemoveLog);
        }
        public void CollectSupplierCodeRemoveEvent(int accommodationId, AccommodationChangeEventSources source, string supplier, string supplierCode,
                                                   Dictionary <string, string> accommodationSupplierCodes, SupplierCodeRemoveReasons reason)
        {
            var supplierCodeRemoveLog =
                AccommodationChangeLogConverter.GetSupplierCodeRemoveChangeLog(accommodationId, source, supplier, supplierCode, accommodationSupplierCodes,
                                                                               reason);

            AccommodationsChangeLogs.Add(supplierCodeRemoveLog);
        }
        public Task AddDeactivationEvents(List <int> accommodationIds, AccommodationChangeEventSources source, DeactivationReasons deactivationReason, string?deactivationReasonDescription)
        {
            var deactivationLogs = accommodationIds.Select(id => AccommodationChangeLogConverter.GetDeactivationChangeLog(id, source, deactivationReason, deactivationReasonDescription)).ToList();

            return(AddAccommodationChangeLogs(deactivationLogs));
        }
        public void CollectRemoveEvent(int accommodationId, AccommodationChangeEventSources source, AccommodationRemoveReasons reason)
        {
            var removeLog = AccommodationChangeLogConverter.GetRemoveChangeLog(accommodationId, source, reason);

            AccommodationsChangeLogs.Add(removeLog);
        }
        public Task AddRemoveEvent(int accommodationId, AccommodationChangeEventSources source, AccommodationRemoveReasons reason)
        {
            var removeLog = AccommodationChangeLogConverter.GetRemoveChangeLog(accommodationId, source, reason);

            return(AddAccommodationChangeLog(removeLog));
        }
        public Task AddLocalityChangingEvent(int accommodationId, AccommodationChangeEventSources eventSource, int previousLocalityId, int newLocalityId, AccommodationLocalityChangingReason reason)
        {
            var localityChangingLog = AccommodationChangeLogConverter.GetLocalityChangingLog(accommodationId, eventSource, previousLocalityId, newLocalityId, reason);

            return(AddAccommodationChangeLog(localityChangingLog));
        }
        public Task AddDataCorrectionEvent(int accommodationId, AccommodationChangeEventSources source, MultilingualAccommodation accommodation)
        {
            var dataCorrectionLog = AccommodationChangeLogConverter.GetDataCorrectionChangeLog(accommodationId, source, accommodation);

            return(AddAccommodationChangeLog(dataCorrectionLog));
        }
        public void CollectDataCorrectionEvent(int accommodationId, AccommodationChangeEventSources source, MultilingualAccommodation accommodation)
        {
            var changeLog = AccommodationChangeLogConverter.GetDataCorrectionChangeLog(accommodationId, source, accommodation);

            AccommodationsChangeLogs.Add(changeLog);
        }
 public void CollectLocalityChangingEvent(int accommodationId, AccommodationChangeEventSources source, int previousLocalityId, int newLocalityId,
                                          AccommodationLocalityChangingReason reason)
 {
     AccommodationChangeLogConverter.GetLocalityChangingLog(accommodationId, source, previousLocalityId, newLocalityId, reason);
 }