evoapp.factory('settings', function($rootScope) { var me = this; me.settings = { //globals.settings.dateFormat: dd-MM-yyyy | yyyy-MM-dd dateFormat: 'yyyy-MM-dd', //globals.settings.dateTimeFormat dateTimeFormat: 'yyyy-MM-dd HH:mm:ss', //globals.settings.timeFormat timeFormat: 'H:i', regex: { Email: /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, //YYYY-MM-DD: /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/ //DD-MM-YYYY: /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/ Date: /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/ } }; var apply = function(userSession){ angular.forEach(userSession.Settings, function (setting) { var value = null, settingName = setting.SettingName; if(setting.IntValue != null) { value = setting.IntValue; } else if(setting.StringValue != null) { value = setting.StringValue; } else if(setting.DateTimeValue != null) { value = moment(setting.DateTimeValue).toDate(); } else if(setting.BinaryValue != null) { value = setting.BinaryValue; } else if(setting.BoolValue != null) { value = setting.BoolValue; } var properties = settingName.split('.'); if(properties.length > 1) { if(!me.settings.hasOwnProperty(properties[0])){ me.settings[properties[0]] = {}; } me.settings[properties[0]][properties[1]] = value; } else { me.settings[settingName] = value; } }); }; return { apply: apply, settings: me.settings }; });