public DomainPermissionFunctionalPermissions Put(DomainPermissionFunctionalPermissions request)
		{
			SetDomainPermissionLists(request);
			GetDomainPermissionLists(request);

			return request;
		}
		private static void SetDomainPermissionLists(DomainPermissionFunctionalPermissions request)
		{
			DomainPermissionEntity entity = GenericRepository.GetItemTopById<DomainPermissionEntity>(ConfigSettings.MongoAuthAdminDatabaseName, GenericRepository.DomainPermissionsCollection, request.DomainPermissionId);
			int[] assigned;

			if (entity != null)
			{
				assigned = new int[request.Assigned.Count];

				for (int i = 0; i < request.Assigned.Count; i++)
				{
					var obj = request.Assigned[i];
					assigned[i] = obj.Id;
				}
				entity.FunctionalPermissionIds = assigned.ToList();
				GenericRepository.Add(ConfigSettings.MongoAuthAdminDatabaseName, GenericRepository.DomainPermissionsCollection, entity);
			}
		}
		private static void GetDomainPermissionLists(DomainPermissionFunctionalPermissions request)
		{
			DomainPermissionEntity domainPermissionEntity = GenericRepository.GetItemTopById<DomainPermissionEntity>(ConfigSettings.MongoAuthAdminDatabaseName, GenericRepository.DomainPermissionsCollection, request.DomainPermissionId);
			int[] assigned = new int[] { };
			request.Assigned.Clear();
			request.UnAssigned.Clear();

			if (domainPermissionEntity != null)
			{
				if (domainPermissionEntity.FunctionalPermissionIds != null)
				{
					assigned = new int[domainPermissionEntity.FunctionalPermissionIds.Count];
					//Set assigned
					for (int i = 0; i < domainPermissionEntity.FunctionalPermissionIds.Count; i++)
					{
						var obj = GenericRepository.GetItemTopById<FunctionalPermissionEntity>(ConfigSettings.MongoAuthAdminDatabaseName, GenericRepository.FunctionalPermissionsCollection, domainPermissionEntity.FunctionalPermissionIds[i]);
						if (obj == null)
							continue;
						request.Assigned.Add(obj.TranslateToResponse());
						assigned[i] = obj.Id;
					}
				}

				//Set unassigned
				var functionalPermissions = GenericRepository.GetList<FunctionalPermissionEntity>(ConfigSettings.MongoAuthAdminDatabaseName, GenericRepository.FunctionalPermissionsCollection);
				for (int i = 0; i < functionalPermissions.Count; i++)
				{
					if (domainPermissionEntity.FunctionalPermissionIds == null || !assigned.Contains(functionalPermissions[i].Id))
					{
						request.UnAssigned.Add(functionalPermissions[i].TranslateToResponse());
					}
				}
			}
		}