public async Task <UploadConfiguration> GetUploadConfiguration(UploadConfigurationType type)
        {
            UploadConfiguration item;
            var items = await this.unitOfWork.IncidentUploadConfigurationRepository.FindByAsync(x => x.Type == type, y => y.UploadConfigurationFields);

            if (items == null || (item = items.FirstOrDefault()) == null)
            {
                return(null);
            }

            return(item);
        }
        public async Task <bool> UpdateUploadConfiguration(UploadConfiguration newItem, UploadConfigurationType type)
        {
            var item = await this.GetUploadConfiguration(type);

            if (item == null)
            {
                return(false);
            }

            item.SourceTypeId     = newItem.SourceTypeId;
            item.SqlDataSourceId  = newItem.SqlDataSourceId;
            item.FileDataSourceId = newItem.FileDataSourceId;
            item.FileName         = newItem.FileName;

            foreach (var field in item.UploadConfigurationFields)
            {
                var newField = newItem.UploadConfigurationFields?.FirstOrDefault(x => x.Id == field.Id);
                if (newField != null)
                {
                    field.SqlDataSourceFieldId  = item.SqlDataSourceId.HasValue ? newField.SqlDataSourceField?.Id : null;
                    field.FileDataSourceFieldId = item.FileDataSourceId.HasValue ? newField.FileDataSourceField?.Id : null;
                }
            }

            this.unitOfWork.IncidentUploadConfigurationRepository.Edit(item);
            return(true);
        }