public int RegisterSendingApplication(SendingApplicationDto sendingApplicationDto,
                                              IEnumerable<NotificationTypeDto> notificationTypeDtos)
        {
            var notificationTypes = new List<NotificationType>();

            foreach (var notificationTypeDto in notificationTypeDtos)
            {
                var notificationType =
                    DataContext.NotificationTypes.FirstOrDefault(
                        x => x.NotificationTypeName == notificationTypeDto.NotificationTypeName);
                if (notificationType == null)
                {
                    notificationType = notificationTypeDto.ToEntity();
                    DataContext.NotificationTypes.Add(notificationType);
                    Logger.Trace("Adding a new NotificationType: {0}, for application: {1}",
                                 notificationTypeDto.NotificationTypeName, sendingApplicationDto.SendingApplicationName);
                }
                notificationType.NotificationTypeIcon = notificationTypeDto.NotificationTypeIcon;
                notificationType.NotificationTypeDisplayName = notificationTypeDto.NotificationTypeDisplayName;
                notificationTypes.Add(notificationType);
            }

            var sendingApplication =
                DataContext.SendingApplications.FirstOrDefault(
                    x => x.SendingApplicationName == sendingApplicationDto.SendingApplicationName);
            if (sendingApplication == null)
            {
                sendingApplication = sendingApplicationDto.ToEntity();
                Logger.Trace("Adding a new SendingApplication: {0}", sendingApplicationDto.SendingApplicationName);
                DataContext.SendingApplications.Add(sendingApplication);
            }
            else
            {
                sendingApplication.SendingApplicationIcon = sendingApplicationDto.SendingApplicationIcon;
            }

            sendingApplication.NotificationTypes.Clear();
            foreach (var notificationType in notificationTypes)
            {
                sendingApplication.NotificationTypes.Add(notificationType);
            }
            DataContext.SaveChanges();
            return sendingApplication.SendingApplicationId;
        }