public FunctionalPermissionPermissions Put(FunctionalPermissionPermissions request)
		{
			SetFunctionalPermissionLists(request);
			GetFunctionalPermissionLists(request);

			return request;
		}
		private static void SetFunctionalPermissionLists(FunctionalPermissionPermissions request)
		{
			FunctionalPermissionEntity entity = GenericRepository.GetItemTopById<FunctionalPermissionEntity>(ConfigSettings.MongoAuthAdminDatabaseName, GenericRepository.FunctionalPermissionsCollection, request.FunctionalPermissionId);
			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.PermissionIds = assigned.ToList();
				GenericRepository.Add(ConfigSettings.MongoAuthAdminDatabaseName, GenericRepository.FunctionalPermissionsCollection, entity);
			}
		}
		private static void GetFunctionalPermissionLists(FunctionalPermissionPermissions request)
		{
			FunctionalPermissionEntity functionalPermissionEntity = GenericRepository.GetItemTopById<FunctionalPermissionEntity>(ConfigSettings.MongoAuthAdminDatabaseName, GenericRepository.FunctionalPermissionsCollection, request.FunctionalPermissionId);
			int[] assigned = new int[] { };
			request.Assigned.Clear();
			request.UnAssigned.Clear();

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

				//Set unassigned roles
				var permisssions = GenericRepository.GetList<PermissionEntity>(ConfigSettings.MongoAuthAdminDatabaseName, GenericRepository.PermissionsCollection);
				for (int i = 0; i < permisssions.Count; i++)
				{
					if (functionalPermissionEntity.PermissionIds == null || !assigned.Contains(permisssions[i].Id))
					{
						request.UnAssigned.Add(permisssions[i].TranslateToResponse());
					}
				}
			}
		}